diff options
| author | Chris Lu <chris.lu@gmail.com> | 2014-07-05 00:43:41 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2014-07-05 00:43:41 -0700 |
| commit | 38231b689104aa54bfab2ba74c735b6bd107b442 (patch) | |
| tree | 99d785bccfa9d21b944e60e5459b157247929555 /go/images/resizing.go | |
| parent | fd9f924ad730f94f9022ee4b7391c0e99a14a272 (diff) | |
| download | seaweedfs-38231b689104aa54bfab2ba74c735b6bd107b442.tar.xz seaweedfs-38231b689104aa54bfab2ba74c735b6bd107b442.zip | |
return image size when client image processing
Diffstat (limited to 'go/images/resizing.go')
| -rw-r--r-- | go/images/resizing.go | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/go/images/resizing.go b/go/images/resizing.go index 6e774e1db..7e21db70b 100644 --- a/go/images/resizing.go +++ b/go/images/resizing.go @@ -9,17 +9,22 @@ import ( "image/png" ) -func Resized(ext string, data []byte, width, height int) (resized []byte) { +func Resized(ext string, data []byte, width, height int) (resized []byte, w int, h int) { if width == 0 && height == 0 { - return data + return data, 0, 0 } if srcImage, _, err := image.Decode(bytes.NewReader(data)); err == nil { bounds := srcImage.Bounds() var dstImage *image.NRGBA - if width == height && bounds.Dx() != bounds.Dy() { - dstImage = imaging.Thumbnail(srcImage, width, height, imaging.Lanczos) - } else { - dstImage = imaging.Resize(srcImage, width, height, imaging.Lanczos) + if bounds.Dx() > width && width != 0 || bounds.Dy() > height && height != 0 { + if width == height && bounds.Dx() != bounds.Dy() { + dstImage = imaging.Thumbnail(srcImage, width, height, imaging.Lanczos) + w, h = width, height + } else { + dstImage = imaging.Resize(srcImage, width, height, imaging.Lanczos) + } + }else{ + return data, bounds.Dx(), bounds.Dy() } var buf bytes.Buffer switch ext { @@ -30,7 +35,7 @@ func Resized(ext string, data []byte, width, height int) (resized []byte) { case ".gif": gif.Encode(&buf, dstImage, nil) } - return buf.Bytes() + return buf.Bytes(), dstImage.Bounds().Dx(), dstImage.Bounds().Dy() } - return data + return data, 0, 0 } |
