diff options
Diffstat (limited to 'weed/images/preprocess.go')
| -rw-r--r-- | weed/images/preprocess.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/weed/images/preprocess.go b/weed/images/preprocess.go new file mode 100644 index 000000000..0d6cb2d9e --- /dev/null +++ b/weed/images/preprocess.go @@ -0,0 +1,27 @@ +package images + +import ( + "path/filepath" + "strings" +) + +/* +* 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 SeaweedFS +* + */ +func MaybePreprocessImage(filename string, data []byte, width, height int) (resized []byte, w int, h int) { + ext := filepath.Ext(filename) + ext = strings.ToLower(ext) + 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, 0, 0 +} |
