github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/core/general/image_decoder/image_decoder.go (about) 1 package image_decoder 2 3 import ( 4 "bytes" 5 "fmt" 6 "image" 7 _ "image/gif" 8 _ "image/jpeg" 9 _ "image/png" 10 ) 11 12 type Image struct { 13 Width int 14 Height int 15 } 16 17 type ImageDecoder = func(fileData []byte) (Image, error) 18 19 func ImageDecoderImpl(fileData []byte) (Image, error) { 20 imageConfig, _, err := image.DecodeConfig(bytes.NewReader(fileData)) 21 if err != nil { 22 return Image{}, fmt.Errorf("error while decoding image: %w", err) 23 } 24 return Image{Width: imageConfig.Width, Height: imageConfig.Height}, nil 25 }