aboutsummaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2014-07-04 18:03:48 -0700
committerChris Lu <chris.lu@gmail.com>2014-07-04 18:03:48 -0700
commitfd9f924ad730f94f9022ee4b7391c0e99a14a272 (patch)
tree5e8df56a07b655f9810e3d2e622c7da5dd69c8b9 /go
parentd85b1d70db305b48678eaea3ce0588fa21c6733a (diff)
downloadseaweedfs-fd9f924ad730f94f9022ee4b7391c0e99a14a272.tar.xz
seaweedfs-fd9f924ad730f94f9022ee4b7391c0e99a14a272.zip
add a convenient function to preprocess images on client side.
Diffstat (limited to 'go')
-rw-r--r--go/images/preprocess.go25
-rw-r--r--go/images/resizing.go2
2 files changed, 26 insertions, 1 deletions
diff --git a/go/images/preprocess.go b/go/images/preprocess.go
new file mode 100644
index 000000000..b5907b1b8
--- /dev/null
+++ b/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
+}
diff --git a/go/images/resizing.go b/go/images/resizing.go
index f5077c1fd..6e774e1db 100644
--- a/go/images/resizing.go
+++ b/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)