Improve the way the new canvas size is calculated

If both dimensions are given, always use those dimensions, avoiding roundoff
error.

If only one dimension is given, slightly prefer rounding the other dimension
up, to rounding it down.
This commit is contained in:
Jason Summers 2012-11-27 20:49:01 -05:00
parent 1169a8bfc3
commit cdbd68f34f

View File

@ -64,7 +64,7 @@ func Resize(width, height uint, img image.Image, interp InterpolationFunction) i
scaleX, scaleY := calcFactors(width, height, oldWidth, oldHeight) scaleX, scaleY := calcFactors(width, height, oldWidth, oldHeight)
t := Trans2{scaleX, 0, float32(oldBounds.Min.X), 0, scaleY, float32(oldBounds.Min.Y)} t := Trans2{scaleX, 0, float32(oldBounds.Min.X), 0, scaleY, float32(oldBounds.Min.Y)}
resizedImg := image.NewRGBA64(image.Rect(0, 0, int(oldWidth/scaleX), int(oldHeight/scaleY))) resizedImg := image.NewRGBA64(image.Rect(0, 0, int(0.7+oldWidth/scaleX), int(0.7+oldHeight/scaleY)))
b := resizedImg.Bounds() b := resizedImg.Bounds()
n := numJobs(b.Dy()) n := numJobs(b.Dy())