From 815c2273a7c2f8e8acb407ca5133d271e25337af Mon Sep 17 00:00:00 2001 From: zenggaofeng Date: Thu, 14 Mar 2024 19:18:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=98=E5=88=B6=E5=9B=BE=E7=89=87=E8=B0=83?= =?UTF-8?q?=E7=94=A8getImageInfo=E6=94=B9=E7=94=A8=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3getImageInfoSync=E5=92=8C=E5=88=A0=E9=99=A4ru?= =?UTF-8?q?nning=E9=98=9F=E5=88=97=E8=AE=BE=E7=BD=AElog=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zenggaofeng --- CHANGELOG.md | 2 + .../ets/components/imageknife/ImageKnife.ets | 2 +- .../imageknife/ImageKnifeComponent.ets | 84 +++++++++++++++---- 3 files changed, 73 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 994da34..eb2e0fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ - 修复概率出现jscrash问题 - 修复进度条问题 - 修复单帧gif图片加载失败 +- removeRunning删除running队列log设置开关 +- 绘制图片调用getImageInfo改用同步接口getImageInfoSync ## 2.1.2-rc.10 - 修复部分gif图片识别成静态图 diff --git a/library/src/main/ets/components/imageknife/ImageKnife.ets b/library/src/main/ets/components/imageknife/ImageKnife.ets index 523ec1e..380bfce 100644 --- a/library/src/main/ets/components/imageknife/ImageKnife.ets +++ b/library/src/main/ets/components/imageknife/ImageKnife.ets @@ -416,7 +416,7 @@ export class ImageKnife { } else { this.runningMaps.remove(request.uuid); - console.log('dodo runningMaps length =' + this.runningMaps.size()) + LogUtil.log('dodo runningMaps length =' + this.runningMaps.size()) let previousRequest = request; this.loadNextPending(previousRequest); } diff --git a/library/src/main/ets/components/imageknife/ImageKnifeComponent.ets b/library/src/main/ets/components/imageknife/ImageKnifeComponent.ets index 860b698..1f2df12 100644 --- a/library/src/main/ets/components/imageknife/ImageKnifeComponent.ets +++ b/library/src/main/ets/components/imageknife/ImageKnifeComponent.ets @@ -474,8 +474,9 @@ export struct ImageKnifeComponent { drawPlaceholder(context: CanvasRenderingContext2D, data: ImageKnifeData, imageKnifeOption: ImageKnifeOption, compWidth: number, compHeight: number, setGifTimeId?: (timeId: number) => void) { LogUtil.log('ImageKnifeComponent default drawPlaceholder start!') - - data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // API12 getImageInfoSync同步 + if(data.drawPixelMap?.imagePixelMap != undefined) { + let imageInfo = data.drawPixelMap?.imagePixelMap.getImageInfoSync() LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height) let scaleType = (typeof imageKnifeOption.placeholderScaleType == 'number') ? imageKnifeOption.placeholderScaleType : ScaleType.FIT_CENTER context.save(); @@ -483,7 +484,17 @@ export struct ImageKnifeComponent { ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) context.restore(); LogUtil.log('ImageKnifeComponent default drawPlaceholder end!') - }) + } + // getImageInfo异步 + // data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height) + // let scaleType = (typeof imageKnifeOption.placeholderScaleType == 'number') ? imageKnifeOption.placeholderScaleType : ScaleType.FIT_CENTER + // context.save(); + // context.clearRect(0, 0, compWidth, compHeight) + // ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) + // context.restore(); + // LogUtil.log('ImageKnifeComponent default drawPlaceholder end!') + // }) } drawProgress(context: CanvasRenderingContext2D, progress: number, imageKnifeOption: ImageKnifeOption, compWidth: number, compHeight: number, setGifTimeId?: (timeId: number) => void) { @@ -529,8 +540,9 @@ export struct ImageKnifeComponent { drawThumbSizeMultiplier(context: CanvasRenderingContext2D, data: ImageKnifeData, imageKnifeOption: ImageKnifeOption, compWidth: number, compHeight: number, setGifTimeId?: (timeId: number) => void) { LogUtil.log('ImageKnifeComponent default drawThumbSizeMultiplier start!') - - data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // API12 getImageInfoSync同步 + if(data.drawPixelMap?.imagePixelMap != undefined) { + let imageInfo = data.drawPixelMap?.imagePixelMap.getImageInfoSync() LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height) let scaleType = (typeof imageKnifeOption.thumbSizeMultiplierScaleType == 'number') ? imageKnifeOption.thumbSizeMultiplierScaleType : ScaleType.FIT_CENTER context.save(); @@ -538,13 +550,25 @@ export struct ImageKnifeComponent { ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) context.restore(); LogUtil.log('ImageKnifeComponent default drawThumbSizeMultiplier end!') - }) + } + // getImageInfo异步 + // data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height) + // let scaleType = (typeof imageKnifeOption.thumbSizeMultiplierScaleType == 'number') ? imageKnifeOption.thumbSizeMultiplierScaleType : ScaleType.FIT_CENTER + // context.save(); + // context.clearRect(0, 0, compWidth, compHeight) + // ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) + // context.restore(); + // LogUtil.log('ImageKnifeComponent default drawThumbSizeMultiplier end!') + // }) } drawMainSource(context: CanvasRenderingContext2D, data: ImageKnifeData, imageKnifeOption: ImageKnifeOption, compWidth: number, compHeight: number, setGifTimeId?: (timeId: number) => void) { LogUtil.log('ImageKnifeComponent default drawMainSource start!') if (data.isPixelMap()) { - data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // API12 getImageInfoSync同步 + if(data.drawPixelMap?.imagePixelMap != undefined) { + let imageInfo = data.drawPixelMap?.imagePixelMap.getImageInfoSync() let scaleType = (typeof imageKnifeOption.mainScaleType == 'number') ? imageKnifeOption.mainScaleType : ScaleType.FIT_CENTER LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height + 'scaleType=' + scaleType) context.save(); @@ -552,7 +576,17 @@ export struct ImageKnifeComponent { ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) context.restore(); LogUtil.log('ImageKnifeComponent default drawMainSource end!') - }) + } + // getImageInfo异步 + // data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // let scaleType = (typeof imageKnifeOption.mainScaleType == 'number') ? imageKnifeOption.mainScaleType : ScaleType.FIT_CENTER + // LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height + 'scaleType=' + scaleType) + // context.save(); + // context.clearRect(0, 0, compWidth, compHeight) + // ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) + // context.restore(); + // LogUtil.log('ImageKnifeComponent default drawMainSource end!') + // }) if (data.drawPixelMap != undefined) { data.drawPixelMap.isShowOnComponent = true; this.detachFromLayoutPixelMap = data.drawPixelMap.detachFromLayoutPixelMap; @@ -568,8 +602,9 @@ export struct ImageKnifeComponent { drawRetryholder(context: CanvasRenderingContext2D, data: ImageKnifeData, imageKnifeOption: ImageKnifeOption, compWidth: number, compHeight: number, setGifTimeId?: (timeId: number) => void) { LogUtil.log('ImageKnifeComponent default drawRetryholder start!') - - data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // API12 getImageInfoSync同步 + if(data.drawPixelMap?.imagePixelMap != undefined) { + let imageInfo = data.drawPixelMap?.imagePixelMap.getImageInfoSync() LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height) let scaleType = (typeof imageKnifeOption.retryholderScaleType == 'number') ? imageKnifeOption.retryholderScaleType : ScaleType.FIT_CENTER context.save(); @@ -577,13 +612,24 @@ export struct ImageKnifeComponent { ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) context.restore(); LogUtil.log('ImageKnifeComponent default drawRetryholder end!') - }) + } + // getImageInfo异步 + // data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height) + // let scaleType = (typeof imageKnifeOption.retryholderScaleType == 'number') ? imageKnifeOption.retryholderScaleType : ScaleType.FIT_CENTER + // context.save(); + // context.clearRect(0, 0, compWidth, compHeight) + // ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) + // context.restore(); + // LogUtil.log('ImageKnifeComponent default drawRetryholder end!') + // }) } drawErrorholder(context: CanvasRenderingContext2D, data: ImageKnifeData, imageKnifeOption: ImageKnifeOption, compWidth: number, compHeight: number, setGifTimeId?: (timeId: number) => void) { LogUtil.log('ImageKnifeComponent default drawErrorholder start!') - - data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // API12 getImageInfoSync同步 + if(data.drawPixelMap?.imagePixelMap != undefined) { + let imageInfo = data.drawPixelMap?.imagePixelMap.getImageInfoSync() LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height) let scaleType = (typeof imageKnifeOption.errorholderSrcScaleType == 'number') ? imageKnifeOption.errorholderSrcScaleType : ScaleType.FIT_CENTER context.save(); @@ -591,7 +637,17 @@ export struct ImageKnifeComponent { ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) context.restore(); LogUtil.log('ImageKnifeComponent default drawErrorholder end!') - }) + } + // getImageInfo异步 + // data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => { + // LogUtil.log('ImageKnifeComponent imageinfo width =' + imageInfo.size.width + ' height=' + imageInfo.size.height) + // let scaleType = (typeof imageKnifeOption.errorholderSrcScaleType == 'number') ? imageKnifeOption.errorholderSrcScaleType : ScaleType.FIT_CENTER + // context.save(); + // context.clearRect(0, 0, compWidth, compHeight) + // ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0) + // context.restore(); + // LogUtil.log('ImageKnifeComponent default drawErrorholder end!') + // }) } requestAddTransform(request: RequestOption) {