diff options
author | 2024-07-31 20:43:39 +0200 | |
---|---|---|
committer | 2024-07-31 18:43:39 +0000 | |
commit | 697261da53cdb0b4230cb800d71bf333b367bff4 (patch) | |
tree | c02e2a2ae736c8ecbc306d3965420393f30f2a94 /internal/media/util.go | |
parent | [feature] Implement Mastodon-compatible roles (#3136) (diff) | |
download | gotosocial-697261da53cdb0b4230cb800d71bf333b367bff4.tar.xz |
[chore] Take account of rotation data when calculating full size image dimensions (#3159)
* [chore] Take account of rotation data when calculating full size image dimensions
* boobies
Diffstat (limited to 'internal/media/util.go')
-rw-r--r-- | internal/media/util.go | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/internal/media/util.go b/internal/media/util.go index dd445844d..7e84b4cdc 100644 --- a/internal/media/util.go +++ b/internal/media/util.go @@ -35,15 +35,13 @@ import ( "github.com/disintegration/imaging" ) -// thumbSize returns the dimensions to use for an input -// image of given width / height, for its outgoing thumbnail. -// This attempts to maintains the original image aspect ratio. -func thumbSize(width, height int, aspect float32, rotation int) (int, int) { - const ( - maxThumbWidth = 512 - maxThumbHeight = 512 - ) - +// displayDimensions takes account of the +// given rotation data to return width and +// height values as the image will be displayed. +func displayDimensions( + width, height int, + rotation int, +) (int, int) { // If image is rotated by // any odd multiples of 90, // flip width / height to @@ -51,9 +49,20 @@ func thumbSize(width, height int, aspect float32, rotation int) (int, int) { switch rotation { case -90, 90, -270, 270: width, height = height, width - aspect = 1 / aspect } + return width, height +} + +// thumbSize returns the dimensions to use for an input +// image of given width / height, for its outgoing thumbnail. +// This attempts to maintains the original image aspect ratio. +func thumbSize(width, height int, aspect float32) (int, int) { + const ( + maxThumbWidth = 512 + maxThumbHeight = 512 + ) + switch { // Simplest case, within bounds! case width < maxThumbWidth && |