From 6dba3cc038d8adfc35d893a4ed94aa001fe9c0b0 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Thu, 11 Jun 2026 23:31:49 -0700 Subject: Fix a bug where image is stretched with -m block --- icat.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'icat.go') diff --git a/icat.go b/icat.go index d1f7388..2b69170 100644 --- a/icat.go +++ b/icat.go @@ -234,14 +234,15 @@ func medianCut(img image.Image) color.Palette { func printImg(img image.Image, maxX, maxY, pixelX, pixelY int) error { x := min(img.Bounds().Dx(), maxX) y := min(img.Bounds().Dy(), maxY) - if x != img.Bounds().Dx() || y != img.Bounds().Dy() { - // Try not to stretch the image. - if y == 0 || x != 0 && img.Bounds().Dy()*x <= img.Bounds().Dx()*y*pixelY/pixelX { - y = divRound(img.Bounds().Dy()*x*pixelX, img.Bounds().Dx()*pixelY) - } else { - x = divRound(img.Bounds().Dx()*y*pixelY, pixelX*img.Bounds().Dy()) - } + // Try not to stretch the image. + if y == 0 || x != 0 && img.Bounds().Dy()*x*pixelX <= img.Bounds().Dx()*y*pixelY { + y = divRound(img.Bounds().Dy()*x*pixelX, img.Bounds().Dx()*pixelY) + } else { + x = divRound(img.Bounds().Dx()*y*pixelY, pixelX*img.Bounds().Dy()) + } + + if x != img.Bounds().Dx() || y != img.Bounds().Dy() { dst := image.NewRGBA(image.Rect(0, 0, x, y)) draw.BiLinear.Scale(dst, dst.Bounds(), img, img.Bounds(), draw.Src, nil) img = dst -- cgit v1.3.1