summaryrefslogtreecommitdiff
path: root/internal/media/util.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-07-31 20:43:39 +0200
committerLibravatar GitHub <noreply@github.com>2024-07-31 18:43:39 +0000
commit697261da53cdb0b4230cb800d71bf333b367bff4 (patch)
treec02e2a2ae736c8ecbc306d3965420393f30f2a94 /internal/media/util.go
parent[feature] Implement Mastodon-compatible roles (#3136) (diff)
downloadgotosocial-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.go29
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 &&