From f99cd17cc402373314dd77e60581c59be799db26 Mon Sep 17 00:00:00 2001 From: tsm <2418639820@qq.com> Date: Tue, 30 Apr 2024 00:11:07 +0800 Subject: [PATCH] =?UTF-8?q?demo=E6=8A=A5=E9=94=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ets/components/imageknife/Downsampling/Downsampler.ets | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/library/src/main/ets/components/imageknife/Downsampling/Downsampler.ets b/library/src/main/ets/components/imageknife/Downsampling/Downsampler.ets index 4624e6a..ab9eb3f 100644 --- a/library/src/main/ets/components/imageknife/Downsampling/Downsampler.ets +++ b/library/src/main/ets/components/imageknife/Downsampling/Downsampler.ets @@ -36,13 +36,13 @@ export class Downsampler { orientedSourceHeight = sourceWidth; } /*安卓的模式*/ - let exactScaleFactor: number = new FitCenter().getScaleFactor(orientedSourceWidth, orientedSourceHeight, targetWidth, targetHeight) + let exactScaleFactor: number = FitCenter.getScaleFactor(orientedSourceWidth, orientedSourceHeight, targetWidth, targetHeight) if (exactScaleFactor <= 0) { throw new Error("Cannot round with exactScaleFactor"); } console.log('exactScaleFactor', exactScaleFactor) /*安卓的模式*/ - let rounding: SampleSizeRounding = new FitCenter().getSampleSizeRounding(orientedSourceWidth, orientedSourceHeight, targetWidth, targetHeight) + let rounding: SampleSizeRounding = CenterOutside.getSampleSizeRounding(orientedSourceWidth, orientedSourceHeight, targetWidth, targetHeight) if (rounding == null) { throw new Error("Cannot round with null rounding"); } @@ -53,6 +53,7 @@ export class Downsampler { let scaleFactor = rounding == SampleSizeRounding.MEMORY ? Math.max(widthScaleFactor, heightScaleFactor) : Math.min(widthScaleFactor, heightScaleFactor) // 将整型的缩放因子转换为2的次幂采样大小 let powerOfTwoSampleSize: number = 0; + powerOfTwoSampleSize = Math.max(1,this.highestOneBit(scaleFactor)) if (rounding == SampleSizeRounding.MEMORY && powerOfTwoSampleSize < (1 / exactScaleFactor)) { powerOfTwoSampleSize = powerOfTwoSampleSize << 1; }