From 8f573659757bbb6a778a25df4a7aafe8a062dc95 Mon Sep 17 00:00:00 2001 From: nyne Date: Wed, 25 Jun 2025 19:32:05 +0800 Subject: [PATCH] Fix image resizing calculation to use square root for scaling factor --- server/service/image.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/service/image.go b/server/service/image.go index 99b7f77..b4447a5 100644 --- a/server/service/image.go +++ b/server/service/image.go @@ -5,6 +5,7 @@ import ( "errors" "github.com/disintegration/imaging" "image" + "math" "net/http" "nysoure/server/dao" "nysoure/server/model" @@ -232,7 +233,7 @@ func getOrCreateResampledImage(i model.Image) ([]byte, error) { return imgData, nil // No need to resample if the image is small enough } - scale := float64(resampledMaxPixels) / float64(pixels) + scale := math.Sqrt(float64(resampledMaxPixels) / float64(pixels)) dstWidth := int(float64(img.Bounds().Dx()) * scale) dstHeight := int(float64(img.Bounds().Dy()) * scale) dstImg := imaging.Resize(img, dstWidth, dstHeight, imaging.Lanczos)