1. refactor, move image resizing to its own package

2. make code compile
This commit is contained in:
Chris Lu
2014-05-14 23:44:19 -07:00
parent 5367d96512
commit f7d6909b6f
6 changed files with 54 additions and 61 deletions

39
go/images/images.go Normal file
View File

@@ -0,0 +1,39 @@
package images
import (
"bytes"
"github.com/disintegration/imaging"
"image"
"image/gif"
"image/jpeg"
"image/png"
)
func FixJpgOrientation() {
}
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
}