18 lines
450 B
Go
18 lines
450 B
Go
|
package nums
|
||
|
|
||
|
import "image"
|
||
|
|
||
|
// AspectRatio returns geometry that conforms to the aspect ratio.
|
||
|
func AspectRatio(srcRect image.Point, toResize uint64) image.Point {
|
||
|
w, h := int(toResize), getRatioSize(int(toResize), srcRect.Y, srcRect.X)
|
||
|
if srcRect.X < srcRect.Y {
|
||
|
w, h = getRatioSize(int(toResize), srcRect.X, srcRect.Y), int(toResize)
|
||
|
}
|
||
|
return image.Point{w, h}
|
||
|
}
|
||
|
|
||
|
func getRatioSize(a, b, c int) int {
|
||
|
d := a * b / c
|
||
|
return (d + 1) & -1
|
||
|
}
|