mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-13 16:37:29 -06:00
[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
This commit is contained in:
parent
fd837776e2
commit
697261da53
3 changed files with 74 additions and 59 deletions
|
|
@ -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 &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue