diff options
| author | 李远军 <yourchanges@gmail.com> | 2020-07-10 10:08:36 +0800 |
|---|---|---|
| committer | 李远军 <yourchanges@gmail.com> | 2020-07-10 10:08:36 +0800 |
| commit | 6608cb5f43d7b26c0f67e18907313dbc52a1eadf (patch) | |
| tree | 6c2af4e110e6780536d055050c70a57cc012a511 /weed/images/preprocess.go | |
| parent | e67096656b0fcdc313c7d8983b6ce36a54d794a3 (diff) | |
| download | seaweedfs-6608cb5f43d7b26c0f67e18907313dbc52a1eadf.tar.xz seaweedfs-6608cb5f43d7b26c0f67e18907313dbc52a1eadf.zip | |
Revert "remove fixJpgOrientation"
This reverts commit de5ca9b2
Diffstat (limited to 'weed/images/preprocess.go')
| -rw-r--r-- | weed/images/preprocess.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/weed/images/preprocess.go b/weed/images/preprocess.go new file mode 100644 index 000000000..f6f3b554d --- /dev/null +++ b/weed/images/preprocess.go @@ -0,0 +1,29 @@ +package images + +import ( + "bytes" + "io" + "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 io.ReadSeeker, w int, h int) { + ext := filepath.Ext(filename) + ext = strings.ToLower(ext) + switch ext { + case ".png", ".gif": + return Resized(ext, bytes.NewReader(data), width, height, "") + case ".jpg", ".jpeg": + data = FixJpgOrientation(data) + return Resized(ext, bytes.NewReader(data), width, height, "") + } + return bytes.NewReader(data), 0, 0 +} |
