Add auto fixing jpg file orientation.

This commit is contained in:
Chris Lu
2014-05-15 00:30:46 -07:00
parent f7d6909b6f
commit 025589adf8
4 changed files with 207 additions and 3 deletions

36
go/images/resizing.go Normal file
View File

@@ -0,0 +1,36 @@
package images
import (
"bytes"
"github.com/disintegration/imaging"
"image"
"image/gif"
"image/jpeg"
"image/png"
)
func Resized(ext string, data []byte, width, height int) (resized []byte) {
if width == 0 && height == 0 {
return data
}
if srcImage, _, err := image.Decode(bytes.NewReader(data)); err == nil {
bounds := srcImage.Bounds()
var dstImage *image.NRGBA
if width == height && bounds.Dx() != bounds.Dy() {
dstImage = imaging.Thumbnail(srcImage, width, height, imaging.Lanczos)
} else {
dstImage = imaging.Resize(srcImage, width, height, imaging.Lanczos)
}
var buf bytes.Buffer
switch ext {
case ".png":
png.Encode(&buf, dstImage)
case ".jpg":
jpeg.Encode(&buf, dstImage, nil)
case ".gif":
gif.Encode(&buf, dstImage, nil)
}
return buf.Bytes()
}
return data
}