add a convenient function to preprocess images on client side.

This commit is contained in:
Chris Lu
2014-07-04 18:03:48 -07:00
parent d85b1d70db
commit fd9f924ad7
2 changed files with 26 additions and 1 deletions

25
go/images/preprocess.go Normal file
View File

@@ -0,0 +1,25 @@
package images
import (
"path/filepath"
)
/*
* Preprocess image files on client side.
* 1. possibly adjust the orientation
* 2. resize the image to a width or height limit
* 3. remove the exif data
* Call this function on any file uploaded to weedfs
*
*/
func MaybePreprocessImage(filename string, data []byte, width, height int) (resized []byte) {
ext := filepath.Ext(filename)
switch ext {
case ".png", ".gif":
return Resized(ext, data, width, height)
case ".jpg", ".jpeg":
data = FixJpgOrientation(data)
return Resized(ext, data, width, height)
}
return data
}

View File

@@ -25,7 +25,7 @@ func Resized(ext string, data []byte, width, height int) (resized []byte) {
switch ext {
case ".png":
png.Encode(&buf, dstImage)
case ".jpg":
case ".jpg", ".jpeg":
jpeg.Encode(&buf, dstImage, nil)
case ".gif":
gif.Encode(&buf, dstImage, nil)