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  }