Browse Source

add a convenient function to preprocess images on client side.

pull/2/head
Chris Lu 11 years ago
parent
commit
fd9f924ad7
  1. 25
      go/images/preprocess.go
  2. 2
      go/images/resizing.go

25
go/images/preprocess.go

@ -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
}

2
go/images/resizing.go

@ -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)

Loading…
Cancel
Save