diff --git a/CHANGELOG.md b/CHANGELOG.md index 09786290..d5fad815 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ ### Fix - Fix Client Hints behavior. `Width` is physical size, so we should divide it by `DPR` value. +- Fix scale-on-load in some rare cases. ## [3.0.0.beta1] - 2021-10-01 ### Added diff --git a/processing/scale_on_load.go b/processing/scale_on_load.go index 894665a5..d2f7cdbc 100644 --- a/processing/scale_on_load.go +++ b/processing/scale_on_load.go @@ -59,12 +59,12 @@ func scaleOnLoad(pctx *pipelineContext, img *vips.Image, po *options.ProcessingO newWidth, newHeight, _, _ := extractMeta(img, po.Rotate, po.AutoRotate) pctx.wscale = float64(pctx.srcWidth) * pctx.wscale / float64(newWidth) - if pctx.srcWidth == imath.Scale(pctx.srcWidth, pctx.wscale) { + if newWidth == imath.Scale(newWidth, pctx.wscale) { pctx.wscale = 1.0 } pctx.hscale = float64(pctx.srcHeight) * pctx.hscale / float64(newHeight) - if pctx.srcHeight == imath.Scale(pctx.srcHeight, pctx.hscale) { + if newHeight == imath.Scale(newHeight, pctx.hscale) { pctx.hscale = 1.0 }