From ddd11477f7a2efbcc8464d5af8d8909bd73e6a4e Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Fri, 26 Dec 2025 23:53:49 +0800 Subject: [PATCH] =?UTF-8?q?Lower=20image=20target=20size=20to=20reduce=20m?= =?UTF-8?q?oir=C3=A9=20patterns?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This partially reverts commit 63164dc70a133a87cdebb9c6b460e096f40d998c. --- app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt b/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt index dd3af861c..7c3aa6c49 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/image/Image.kt @@ -32,8 +32,9 @@ import coil3.request.CachePolicy import coil3.request.ErrorResult import coil3.request.SuccessResult import coil3.request.allowHardware -import coil3.size.Dimension +import coil3.request.maxBitmapSize import coil3.size.Precision +import coil3.size.Scale import coil3.size.Size import coil3.size.SizeResolver import com.ehviewer.core.files.openFileDescriptor @@ -90,8 +91,10 @@ class Image private constructor(image: CoilImage, private val src: ImageSource) } companion object { - private val targetWidth = appCtx.resources.displayMetrics.widthPixels * 3 - private val sizeResolver = SizeResolver(Size(targetWidth, Dimension.Undefined)) + private val sizeResolver = with(appCtx.resources.displayMetrics) { + val targetSize = minOf(widthPixels, heightPixels) * 4 / 3 + SizeResolver(Size(targetSize, targetSize)) + } private suspend fun Either.decodeCoil(checkExtraneousAds: Boolean): CoilImage { val request = with(appCtx) { @@ -99,7 +102,9 @@ class Image private constructor(image: CoilImage, private val src: ImageSource) onLeft { data(it.source) } onRight { data(it.source.toUri()) } size(sizeResolver) + scale(Scale.FILL) precision(Precision.INEXACT) + maxBitmapSize(Size.ORIGINAL) allowHardware(false) hardwareThreshold(Settings.hardwareBitmapThreshold.value) maybeCropBorder(Settings.cropBorder.value)