From 630b0df4489cfec5dc2ddff283ba2504feb55740 Mon Sep 17 00:00:00 2001 From: madixin Date: Sat, 9 Nov 2024 14:54:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E6=96=AD=E5=92=8C=E5=A4=84=E7=90=86im?= =?UTF-8?q?ageSource.getImageInfo=E4=B8=BA=E7=A9=BA=E7=9A=84=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=EF=BC=8C=E8=BF=94=E5=9B=9E=E9=94=99=E8=AF=AF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: madixin --- CHANGELOG.md | 4 +++- library/src/main/ets/ImageKnifeLoader.ets | 21 ++++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ff4069..4e7310c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## 3.2.0 -- PixelMap size exceeds the maximum value of memory cache and is not cached +- Fix bug: PixelMap size exceeds the maximum value of memory cache and is not cached +- Dealing with exception scenarios where imageSource.getImageInfo return undefined + ## 3.2.0-rc.2 - Added callback information for image loading - Added the interface for obtaining the upper limit and size of the current cache and the number of images corresponding to the current cache diff --git a/library/src/main/ets/ImageKnifeLoader.ets b/library/src/main/ets/ImageKnifeLoader.ets index 34aff71..bbb57ce 100644 --- a/library/src/main/ets/ImageKnifeLoader.ets +++ b/library/src/main/ets/ImageKnifeLoader.ets @@ -123,7 +123,12 @@ export class ImageKnifeLoader { return } - let size = (await imageSource.getImageInfo()).size + let imageInfoSync = imageSource.getImageInfoSync() + if (imageInfoSync == undefined){ + ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource") + return + } + let size = imageInfoSync.size callBackData.imageWidth = size.width; callBackData.imageHeight = size.height; try { @@ -194,7 +199,12 @@ export class ImageKnifeLoader { return } - let size = (await imageSource.getImageInfo()).size + let imageInfoSync = imageSource.getImageInfoSync() + if (imageInfoSync == undefined){ + ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource") + return + } + let size = imageInfoSync.size let scale = size.height / size.width let hValue = Math.round(request.componentHeight); let wValue = Math.round(request.componentWidth); @@ -265,7 +275,12 @@ export class ImageKnifeLoader { } let frameCount = await imageSource.getFrameCount() - let size = (await imageSource.getImageInfo()).size + let imageInfoSync = imageSource.getImageInfoSync() + if (imageInfoSync == undefined){ + ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource") + return + } + let size = imageInfoSync.size callBackData.frameCount = frameCount; callBackData.imageWidth = size.width; callBackData.imageHeight = size.height;