From b4c1c263622da7c709f6d807dc1c233cba06c908 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=A2=E6=9D=A1=E4=BE=A0?= Date: Mon, 1 Apr 2024 06:13:12 +0000 Subject: [PATCH 1/5] update README.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 面条侠 --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 327873a..74f9c1d 100644 --- a/README.md +++ b/README.md @@ -333,6 +333,7 @@ request.skipMemoryCache(true) | preload(request: RequestOption) | request: RequestOption | 根据用户配置参数具体执行预加载流程 | | pauseRequests() | | 全局暂停请求 | | resumeRequests() | | 全局恢复暂停 | +| isUrlExist(request: RequestOption) | request: RequestOption | 判断图片是否在 缓存和磁盘中存在,request.setCacheType(CacheType.Cache) request.setImageViewSize(this.comSize) 如果入参是缓存,需要传入值图片大小| ### 缓存策略相关 @@ -368,6 +369,15 @@ request.skipMemoryCache(true) | ScaleType.AUTO_WIDTH | int | 设置高的时候,图片宽度自适应 | | ScaleType.AUTO | int | 没有设置宽和高,图片按照自身宽高显示 | + +### CacheType类型展示效果 + +| 使用方法 | 类型 | 策略描述 | +|-------------------------|-----|-----------------------------------| +| CacheType.Cache| int | 缓存 | +| CacheType.Disk | int | 磁盘 | + + ### 图片变换相关 | 使用方法 | 类型 | 相关描述 | From 8eb51716b985dc2161275f46db1d255736c734c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98593378212=40qq=2Ecom=E2=80=99?= <‘xinxin2.wang@epro.com.cn’> Date: Mon, 1 Apr 2024 14:20:45 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=B7=B3=E8=BF=87=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=EF=BC=8C=E4=BB=8E=E5=86=85=E5=AD=98=E4=B8=AD=E5=8F=96=E5=9B=BE?= =?UTF-8?q?=E7=89=87=EF=BC=8Cmd=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/ets/pages/testImageKnifeCache.ets | 261 ++++++++++++++++++ .../resources/base/profile/main_pages.json | 3 +- .../ets/components/imageknife/ImageKnife.ets | 93 ++++++- .../components/imageknife/RequestOption.ets | 31 ++- 4 files changed, 379 insertions(+), 9 deletions(-) create mode 100644 entry/src/main/ets/pages/testImageKnifeCache.ets diff --git a/entry/src/main/ets/pages/testImageKnifeCache.ets b/entry/src/main/ets/pages/testImageKnifeCache.ets new file mode 100644 index 0000000..fd01ba4 --- /dev/null +++ b/entry/src/main/ets/pages/testImageKnifeCache.ets @@ -0,0 +1,261 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + ImageKnifeComponent, + ImageKnifeOption, + ImageKnifeGlobal, + ImageKnife, + ImageKnifeData, + RequestOption, + Size +} from '@ohos/libraryimageknife' +import image from '@ohos.multimedia.image'; +import { BusinessError } from '@ohos.base'; +import { CacheType } from '@ohos/imageknife/src/main/ets/components/imageknife/RequestOption'; + + +let imageKnife: ImageKnife | undefined = ImageKnifeGlobal.getInstance().getImageKnife(); + +@Entry +@Component +struct testImageKnifeCache { + @State url: string = ''; + @State urlGif: string = ''; + @State urlSvg: string = 'http://1.94.37.200:700/downloadSvgIamge'; + @State urlPng: string = 'http://octodex.github.com/images/catstello.png'; + @State urlJpg: string = 'https://img0.baidu.com/it/u=2361645450,2439934461&fm=253&fmt=auto&app=138&f=JPEG?w=919&h=500'; + @State urlBmp: string = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAHuApIDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAUGAwQHAQII/8QARBAAAQMCBAQDBQYEBAUEAwEAAQACAwQRBRIhMQYTQVEiYXEUMoGRoQdCUrHB0RUjYvAzQ+HxJHKCkrIWJWOiU3PSwv/EABoBAQACAwEAAAAAAAAAAAAAAAADBAECBQb/xAAyEQEAAgIBAwMCAwcFAQEAAAAAAQIDEQQSITEFE0EiUTJhgRQjcZGhscEzQuHw8dFS/9oADAMBAAIRAxEAPwD8/oiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIPeq3aXD6isJEET5CAXHI29gNST2C02DxK+YJUNi4TrHsYC6MuEjdLPDxl18gCfkFFlvNY3CxgxRk3tRHMs6y+b6qbocJdiMr7vbHEy2aRwJ1JsAANyeywYvhUmGVj4Hua/LYh7b2IIuDrqsxkrM9PyxfBaImfhFIvbFMp7KRA8REQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREHqWTqtiGmkncGMY5zibBrRckpuI8tq1m3hropCtwitoGg1VLNCDsXtso86LETE+C1ZjyIizwQPnkYyNpc5xsAOpWWIiZl8xQyTPDI2Oc52gAFyV8PYWPLTuDZSdTLHSROp6d4c7aSUff8AIH8P5rShidUShrQSSbAAbrXq7blJ0bnpjyz0NFNWSZY23DRdzibNaO5J0CtvsDqfCf4fSsfNPK4OkeGkNb6k7C3e25PZa0WE1LKaligje87yhmobLc2DjtewGnqrBieIsosNlyZY5pY2WDoyQ+9i5trZRY+K+uoVHNmm1orXu63H43RXcomkFHTwPpeW+e7m6s/zH9x5DUD1v5LLVUtZxBh9PDmZNVQOLXPmeGuIOzcx97a+9wtykxOjmoI6+anEL4p2te9ouHPy9ALW2uf1upZkDMTpopYKdr4ZLXhdHaPXTMLWyuJB0B079FWvltS25harjreOlRm8MGkzy4q59JExxZlLbyPcNw0frstl+A4VX4fPLhstSyohbnMVRlIePIjqrniNEyrga6rijnbTvMbOUHXZHYWFtL+uoCjK+AQ8PythfHBCxjmxC5JJzWcCbauIO400K2ry7W1377/RHbiUiJ05dI2z7L4WzVQPikOYEHzFlrLrRO424OSs1tMS8REWWj1ECzx075CAATdJmIbVrNu0MC9sSrJQcKV1QwSSMbTx9XTG2ne26zS0GAUBLZq2eskHSmaGt/7ioZz13qO8p441tblVMpX2I3HQAknopuSowMasoqtx7OqAB/4rSnxC8fKgijgZ1yC7j6uOq3i0z8NLY618yjiLGxRxBtZL3K8W6EREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQerxer1jbushDaoqV1VO2Ng1ceuw81PT4kzBojS4c7JLtLUD3z/SD90eixUjP4dhrpyLSvZm16A6NHxNz6BQE0he65JPqode5bv4hbnWKv5sklXK5r2Z3ZXm7hfda4aXHQIBdWDAcLNVKZpGt5LAbZ9nvto3z/ALut72jHXcosdLZraQTYnE7KXZEaDDPaDpLPdkfkzqfjt81ZThtP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L23hEbhc6kHr6qSI+uLW76YxzPXu87j9dKxieE17McfilM7I5rxNE46ut003st2ejdXVcVc2mjYysi5VTEPCA8bnsCLX13UjhlBW0uHviqagujDrxvkFyw/mQey8rapzWimp435nfdAs5/r2CknNabar8f2WaxuemNTMfP5NOnho8HikZBK9znbuedL9gP7KkMOoKqrlEkoLW9G/uvvCOHXGZtVWeKW+mbZvorlAyKJoijaeaQcvh0+a111W35RZ+VXFGqd5+7HQU7YIszraagdwOpWOfEY4oGM991g8tG5J11XmIVRpYzytXtZmJJs0Dp/fb1VQqsSbOzlwVLS52sj3kNc8nvfYLa1tR01UMWL3Z67+GnxnU4hV4PL7JUMaZZBHMMwbzAR4WNcemh066Li1Xh2JRTu5lHUs/wCaJ37Ke4vx6bEsTfRU87pKSOTLEwCwJsATbqSb7qIjdPSuyPxV8JabFkb3ut5aaL0HAwWw4u/mVfk5ItPRXxDTgw2srphBFDI+Umwja0k39F7inD+IYO8MrqWWBzhmaHttceS6JwhxThVC4w4jPNK8sLW1kserBpdml3ZTvc7dlr/aFxJheJYfT0FA41HLkMjpy0gDS1hfX19FtHKzftEY4p9P3aX42OcfVLlexReu3Xi6bjS8REQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBEQIPeql6ClZUUNcXM8UMQka/scwFvQ5voolou4LpHBWD09XhlWypa4iqbyhlIBABBBF/6rfJV+TmjDTqlb4uGcttOdFhD7WVgw7A2yQxTVHMImP8ALjj3cL2vfpre3ey2eIeHv4ZxE/Dqeb2k5mhrg3KSXAaEdDqp+nq6KGGlh5ofLTsER/lnK4i4Nu4N7KHNyN44tT5W8HDiLzFkHiOCR0tCaylL2hjm5mueHghxIBa4AX1BBHput/hrj/EcGY2mJZUUzdopdco7NO49NluV7aeqwStgFO6mbA3mB2Zx8Q0DSD0NzYdCueuvHLotaUryMc1vG0mWZ49414foiForqZtYyZjWThjo7DMNToD5bj9lt01OyGjkEAc+Iv5IaG6xfiIPbdUv7MsXNVSzYfUtMsbQ1kRAuYw46k/0g29CVfcVmosKo6iN5dJa7zCy4vto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OPlbbotyGgkp2fz8WMo65G3t8StGnhroYxlc/kgaOFU3IB63so+txugonXkdHVzD7jHZw31cdPldcKceTJaYj+z0cZqUr5W2mlheMjppKmPqH2eFuMo8MY4vimkpnd2uP7qoYFxPHitfHRTU7YzJpEWyODQ62gcO2nSxV4oqVzYw9/KDfKIN+puVQ5OO+GdWnS3hyxeN1l5FM+GVvJnmqjbZgsPiSVKwyVdQP57mxs/A11z8TssUtTBTQl8szI2DdziAPkvaacVLQ+PNyjs5wtf0H7qjM/Om9u8b0mqUR08edpaCRoXfmoLiDESYHMiswP0aSbF5J6fuvauu/wCKbAwnmAWygX+fS3qq3xGycUjp6ZrpajOA1zy3J3JFzYkaaHa97KXj4pyXjfhW6IpPXae7mvEdc52LzRskc6COQhjdgO/1vr1UXi2JmuZTxNYWQU0fLiaTcgElxJPUkklTWKUkeFUzJakRz11Q5zi13iaxnfzJN9dRp1VYqpmTSBzIxGLatbtfyXscEV6Y1Hh5/mZLTady1URFYc8REQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBZGyObsSsa9RmJmPDN7Q+1l8Olc7clfCLGobTktPmUvgRz4pTMLi0OlaCb+YXTpeJXxRF8osQcrItiT5/r2XH4ZTE+4VrjxyjxAMdiIliqWgA1ETQ4Seb2G2vmDr2uqHM4sZZiZjw6fC5UUrqVgp69+I4oKmtkzwwAuDb6G3YeuitWF4+0UM1dUStZq43PuxMboNPX5lc89twuBjrYi54y5crKd1yPjYDZROIY86enFHTtMVK12bIXXLj3cf02CqW4EZfpmNQu258VjvKX4o41qsVnfHC98NJfSJptm83dz+SrtLj9fRF/s1XLEH+8GOIB9Qot7i46r5XUx8bHjpFYjs5Gbm5b23ttVVdPVyulmlfI95u5z3XJWoiKeIiI1Cra02nciIiNROiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgL0OI6rxEH1nd3S68RGdy8RERgREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQf/2Q=='; + @State urlWebp: string = 'https://img0.baidu.com/it/u=2851883234,283312733&fm=253&fmt=auto&app=138&f=PNG?w=1200&h=392'; + @State imagePixelMap: PixelMap | undefined = undefined; + @State imagePixelMap_: PixelMap | undefined = undefined; + private index_: number = -1; + private tempSize: number = 200; + private comSize: Size = { + width: this.tempSize, + height: this.tempSize, + } + @State imageKnifeOption: ImageKnifeOption = + { + loadSrc: $r('app.media.icon'), + + placeholderSrc: $r('app.media.icon_loading'), + errorholderSrc: $r('app.media.icon_failed') + }; + + hasUrlCache(request: RequestOption) { + let index: number = 0 + let timeId = -1; + imageKnife?.isUrlExist(request).then((data: ImageKnifeData) => { + clearTimeout(timeId); + if (data.isPixelMap()) { + if (data.drawPixelMap) { + let pixelmap = data.drawPixelMap.imagePixelMap + if (pixelmap) { + + if (this.index_ == 1) { + this.imagePixelMap = pixelmap; + } else if (this.index_ == 2) { + this.imagePixelMap_ = pixelmap; + } + } + } + } + if (data.isGIFFrame()) { + if (data.drawGIFFrame) { + if (data.drawGIFFrame.imageGIFFrames) { + let renderGif = () => { + if (data.drawGIFFrame) { + if (data.drawGIFFrame.imageGIFFrames) { + let pixelmap = data.drawGIFFrame.imageGIFFrames[index].drawPixelMap + let delay = data.drawGIFFrame.imageGIFFrames[index].delay + if (pixelmap) { + if (this.index_ == 1) { + this.imagePixelMap = pixelmap; + } else if (this.index_ == 2) { + this.imagePixelMap_ = pixelmap; + } + } + index++; + if (index == data.drawGIFFrame.imageGIFFrames.length - 1) { + index = 0 + } + timeId = setTimeout(renderGif, data!.drawGIFFrame!.imageGIFFrames![index].delay) + } + } + } + renderGif() + } + } + } + }).catch((err: BusinessError) => { + + }); + + } + + build() { + Scroll() { + Column() { + + Text('图片内存和磁盘读取').fontSize(30); + Text('加载的缓存时候关闭掉网络').fontSize(15); + + Row() { + Button('png') + .onClick(() => { + this.index_ = 0; + this.url = this.urlPng; + this.imageKnifeOption = + { + loadSrc: this.url, + placeholderSrc: $r('app.media.icon_loading'), + errorholderSrc: $r('app.media.icon_failed') + } + }) + + Button('bmp') + .onClick(() => { + this.index_ = 0; + this.url = this.urlBmp; + this.imageKnifeOption = + { + loadSrc: this.url, + placeholderSrc: $r('app.media.icon_loading'), + errorholderSrc: $r('app.media.icon_failed') + } + }) + + Button('webp') + .onClick(() => { + this.index_ = 0; + this.url = this.urlWebp; + this.imageKnifeOption = + { + loadSrc: this.url, + placeholderSrc: $r('app.media.icon_loading'), + errorholderSrc: $r('app.media.icon_failed') + } + }) + + Button('jpg') + .onClick(() => { + this.index_ = 0; + this.url = this.urlJpg; + this.imageKnifeOption = + { + loadSrc: this.url, + placeholderSrc: $r('app.media.icon_loading'), + errorholderSrc: $r('app.media.icon_failed') + } + }) + + Button('gif') + .onClick(() => { + this.index_ = 0; + this.url = this.urlGif; + this.imageKnifeOption = + { + loadSrc: this.url, + placeholderSrc: $r('app.media.icon_loading'), + errorholderSrc: $r('app.media.icon_failed') + } + }) + + Button('svg') + .onClick(() => { + this.index_ = 0; + this.url = this.urlSvg; + this.imageKnifeOption = + { + loadSrc: this.url, + placeholderSrc: $r('app.media.icon_loading'), + errorholderSrc: $r('app.media.icon_failed') + } + }) + + } + + + Row() { + Button('缓存图片') + .onClick(() => { + this.index_ = 1; + let request = new RequestOption(); + request.load(this.url) + .setImageViewSize(this.comSize) + .setCacheType(CacheType.Cache); + this.hasUrlCache(request); + + }) + + Button('磁盘图片') + .onClick(() => { + this.index_ = 2; + let request = new RequestOption(); + request.load(this.url) + .setImageViewSize(this.comSize) + .setCacheType(CacheType.Disk); + this.hasUrlCache(request); + + }) + } + + Text('网络图').fontSize(15); + ImageKnifeComponent({ imageKnifeOption: this.imageKnifeOption }) + .width(200) + .height(200) + .backgroundColor(Color.Orange) + Text('缓存图').fontSize(15); + + ImageKnifeComponent({ + imageKnifeOption: { + loadSrc: this.imagePixelMap as image.PixelMap + } + }) + .width(200) + .height(200) + .backgroundColor(Color.Orange) + Text('磁盘图').fontSize(15); + ImageKnifeComponent({ + imageKnifeOption: { + loadSrc: this.imagePixelMap_ as image.PixelMap + } + }) + .width(200) + .height(200) + .backgroundColor(Color.Orange) + + } + .alignItems(HorizontalAlign.Center) + .width('100%') + + } + .width('100%') + .height('100%') + } + + aboutToAppear() { + + } + + aboutToDisappear() { + + } + + onBackPress() { + + } +} \ No newline at end of file diff --git a/entry/src/main/resources/base/profile/main_pages.json b/entry/src/main/resources/base/profile/main_pages.json index 12657f6..e6ac6e4 100644 --- a/entry/src/main/resources/base/profile/main_pages.json +++ b/entry/src/main/resources/base/profile/main_pages.json @@ -46,6 +46,7 @@ "pages/testImageKnifeAutoWidthPage", "pages/testImageKnifeAutoHeightPage", "pages/testPriorityComponent", - "pages/testReusePhotoPage" + "pages/testReusePhotoPage", + "pages/testImageKnifeCache" ] } \ No newline at end of file diff --git a/library/src/main/ets/components/imageknife/ImageKnife.ets b/library/src/main/ets/components/imageknife/ImageKnife.ets index 30eb5be..76569df 100644 --- a/library/src/main/ets/components/imageknife/ImageKnife.ets +++ b/library/src/main/ets/components/imageknife/ImageKnife.ets @@ -16,7 +16,7 @@ import { DiskLruCache } from "../cache/DiskLruCache" import { EngineKeyFactories } from "../cache/key/EngineKeyFactories" import { EngineKeyInterface } from "../cache/key/EngineKeyInterface" -import { RequestOption, Size } from "../imageknife/RequestOption" +import { CacheType, RequestOption, Size } from "../imageknife/RequestOption" import { AsyncCallback } from "../imageknife/interface/AsyncCallback" import { PlaceHolderManager } from "../imageknife/holder/PlaceHolderManager" import { RetryHolderManager } from "../imageknife/holder/RetryHolderManager" @@ -49,6 +49,10 @@ import { ObjectKey } from './ObjectKey' import { TaskParams } from './TaskParams' import { Constants } from './constants/Constants' import { TransformUtils } from './transform/TransformUtils' +import { GIFParseImpl } from './utils/gif/GIFParseImpl' +import { IParseImage } from './interface/IParseImage' +import { ParseImageUtil } from './utils/ParseImageUtil' +import { SVGParseImpl } from './utils/svg/SVGParseImpl' export class ImageKnife { static readonly SEPARATOR: string = '/' @@ -78,8 +82,10 @@ export class ImageKnife { defaultLifeCycle: IDrawLifeCycle | undefined = undefined; // 开发者可配置全局缓存 engineKeyImpl: EngineKeyInterface; + private mParseImageUtil: IParseImage; private constructor() { + this.mParseImageUtil = new ParseImageUtil(); this.runningMaps = new EasyLinkedHashMap(); this.pendingMaps = new EasyLinkedHashMap(); @@ -322,6 +328,91 @@ export class ImageKnife { return this.parseSource(request); } + + public isUrlExist(request: RequestOption): Promise { + + return new Promise((resolve, reject) => { + this.generateDataCacheKey(request); + let loadComplete = (imageKnifeData: ImageKnifeData) => { + resolve(imageKnifeData); + } + let loadError = (err ?: BusinessError | string) => { + reject(undefined); + } + this.loadMemoryCacheAndDiskFrom(request, loadComplete, loadError); + }) + } + + loadMemoryCacheAndDiskFrom(request: RequestOption, onComplete: (imageKnifeData: ImageKnifeData) => void | PromiseLike, onError: (err?: BusinessError | string) => void) { + + if (request.cacheType == CacheType.Cache) { + + let cache = this.memoryCacheProxy.loadMemoryCache(request.generateCacheKey, true); + if (cache == null || typeof cache == 'undefined') { + onError("No data in cache!") + }else { + cache.waitSaveDisk = false; + //2.网络缓存有数据,返回 + onComplete(cache); + } + + }else if (request.cacheType == CacheType.Disk){ + let cached: ArrayBuffer = DiskLruCache.getFileCacheByFile((ImageKnifeGlobal.getInstance() + .getHapContext() as common.UIAbilityContext).filesDir as string, request.generateDataKey) as ArrayBuffer; + + if (cached != null) { + + let filetype: string | null = this.fileTypeUtil.getFileType(cached); + + if (filetype == null) { + onError('请检查数据源'); + return; + } + + if (!this.fileTypeUtil.isImage(cached)) { + onError('暂不支持的类型!类型=' + filetype); + } + + if (ImageKnifeData.GIF == filetype && !request.dontAnimateFlag) { + let gifParseImpl = new GIFParseImpl() + gifParseImpl.parseGifs(cached, (data?: GIFFrame[], err?: BusinessError | string) => { + if (err) { + onError(err) + } + LogUtil.log("gifProcess data is null:" + (data == null)); + if (!!data) { + let imageKnifeData = ImageKnifeData.createImageGIFFrame(ImageKnifeType.GIFFRAME, data); + LogUtil.log('gifProcess 生成gif 返回数据类型') + onComplete(imageKnifeData) + } else { + onError('Parse GIF callback data is null, you need check callback data!') + } + }) + + } else if (ImageKnifeData.SVG == filetype) { + let svgParseImpl = new SVGParseImpl() + let success = (value: PixelMap) => { + let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, value); + onComplete(imageKnifeData); + } + svgParseImpl.parseSvg(request, cached, success, onError) + } else { + //5.磁盘有数据,解析错误返回onError + let success = (value: PixelMap) => { + let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, value); + onComplete(imageKnifeData); + } + this.mParseImageUtil.parseImage(cached, success, onError) + } + + } else { + //6.磁盘无数据,返回onError + onError("No data in disk cache!") + } + } + } + + generateDataCacheKey(request: RequestOption) { let factories: EngineKeyInterface; let cacheKey: string; diff --git a/library/src/main/ets/components/imageknife/RequestOption.ets b/library/src/main/ets/components/imageknife/RequestOption.ets index 001d464..b46d2be 100644 --- a/library/src/main/ets/components/imageknife/RequestOption.ets +++ b/library/src/main/ets/components/imageknife/RequestOption.ets @@ -64,14 +64,23 @@ export interface Size { height: number } +export enum CacheType { + //缓存 + Cache, + //磁盘 + Disk +} + export interface DetachFromLayout { detach: () => void } + export enum Priority { HIGH = 0, MEDIUM = 1, LOW = 2 } + export class RequestOption { // 遍历添加图片http请求头 headers: Map = new Map(); @@ -85,6 +94,8 @@ export class RequestOption { addHeaderMap(map: Map) { this.headers = map; } + + cacheType: CacheType = CacheType.Disk; // 优先级 priority: Priority = Priority.MEDIUM; uuid: string = '' // 唯一标识 @@ -129,7 +140,7 @@ export class RequestOption { // 下载原始文件地址 downloadFilePath: string = ""; //磁盘缓存文件路径 - diskMemoryCachePath: string =""; + diskMemoryCachePath: string = ""; // 网络文件下载统一存放 networkCacheFolder: string = "ImageKnifeNetworkFolder" // 主线图片 状态变化 是否加载完成 @@ -164,12 +175,15 @@ export class RequestOption { this.moduleContext = ctx; } } + setPriority(priority: Priority) { this.priority = priority } - setTransformations( array:Array>){ + + setTransformations(array: Array>) { this.transformations = array; } + generateUUID(): string { let d = new Date().getTime(); const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(new RegExp("[xy]", "g"), (c) => { @@ -197,6 +211,11 @@ export class RequestOption { return this; } + setCacheType(cacheType: CacheType) { + this.cacheType = cacheType; + return this; + } + getFilesPath() { return this.filesPath; } @@ -477,7 +496,7 @@ export class RequestOption { } // 占位图解析成功 - placeholderOnComplete = (imageKnifeData:ImageKnifeData) => { + placeholderOnComplete = (imageKnifeData: ImageKnifeData) => { LogUtil.log("placeholderOnComplete has called!"); LogUtil.log("Main Image is Ready:" + this.loadMainReady); if (!this.loadMainReady && !(this.loadErrorReady || this.loadRetryReady) && !this.loadThumbnailReady) { @@ -511,7 +530,7 @@ export class RequestOption { LogUtil.log("缩略图解析失败 error =" + error) } // 加载失败 占位图解析成功 - errorholderOnComplete = (imageKnifeData:ImageKnifeData) => { + errorholderOnComplete = (imageKnifeData: ImageKnifeData) => { // 如果有错误占位图 先解析并保存在RequestOption中 等到加载失败时候进行调用 this.errorholderData = imageKnifeData; if (this.loadErrorReady) { @@ -524,7 +543,7 @@ export class RequestOption { errorholderOnError = (error: BusinessError | string) => { LogUtil.log("失败占位图解析失败 error =" + error) } - retryholderOnComplete = (imageKnifeData:ImageKnifeData) => { + retryholderOnComplete = (imageKnifeData: ImageKnifeData) => { this.retryholderData = imageKnifeData; if (this.loadRetryReady) { if (this.retryholderFunc != undefined) { @@ -535,7 +554,6 @@ export class RequestOption { retryholderOnError = (error: BusinessError | string) => { LogUtil.log("重试占位图解析失败 error =" + error) } - loadComplete = (imageKnifeData: ImageKnifeData) => { this.loadMainReady = true; // 三级缓存数据加载成功 @@ -586,7 +604,6 @@ export class RequestOption { } } } - // 图片文件落盘之后会自动去寻找下一个数据加载 removeCurrentAndSearchNext = () => { if (ImageKnifeGlobal.getInstance().getImageKnife() != undefined) { From f3a864789d430d09eff108af470ece6f08155cef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=A2=E6=9D=A1=E4=BE=A0?= Date: Mon, 1 Apr 2024 09:21:42 +0000 Subject: [PATCH 3/5] update entry/src/main/ets/pages/testImageKnifeCache.ets. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 面条侠 --- entry/src/main/ets/pages/testImageKnifeCache.ets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entry/src/main/ets/pages/testImageKnifeCache.ets b/entry/src/main/ets/pages/testImageKnifeCache.ets index fd01ba4..e338991 100644 --- a/entry/src/main/ets/pages/testImageKnifeCache.ets +++ b/entry/src/main/ets/pages/testImageKnifeCache.ets @@ -37,7 +37,7 @@ struct testImageKnifeCache { @State urlSvg: string = 'http://1.94.37.200:700/downloadSvgIamge'; @State urlPng: string = 'http://octodex.github.com/images/catstello.png'; @State urlJpg: string = 'https://img0.baidu.com/it/u=2361645450,2439934461&fm=253&fmt=auto&app=138&f=JPEG?w=919&h=500'; - @State urlBmp: string = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAJQAlAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAHuApIDASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAUGAwQHAQII/8QARBAAAQMCBAQDBQYEBAUEAwEAAQACAwQRBRIhMQYTQVEiYXEUMoGRoQdCUrHB0RUjYvAzQ+HxJHKCkrIWJWOiU3PSwv/EABoBAQACAwEAAAAAAAAAAAAAAAADBAECBQb/xAAyEQEAAgIBAwMCAwcFAQEAAAAAAQIDEQQSITEFE0EiUTJhgRQjcZGhscEzQuHw8dFS/9oADAMBAAIRAxEAPwD8/oiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIPeq3aXD6isJEET5CAXHI29gNST2C02DxK+YJUNi4TrHsYC6MuEjdLPDxl18gCfkFFlvNY3CxgxRk3tRHMs6y+b6qbocJdiMr7vbHEy2aRwJ1JsAANyeywYvhUmGVj4Hua/LYh7b2IIuDrqsxkrM9PyxfBaImfhFIvbFMp7KRA8REQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREHqWTqtiGmkncGMY5zibBrRckpuI8tq1m3hropCtwitoGg1VLNCDsXtso86LETE+C1ZjyIizwQPnkYyNpc5xsAOpWWIiZl8xQyTPDI2Oc52gAFyV8PYWPLTuDZSdTLHSROp6d4c7aSUff8AIH8P5rShidUShrQSSbAAbrXq7blJ0bnpjyz0NFNWSZY23DRdzibNaO5J0CtvsDqfCf4fSsfNPK4OkeGkNb6k7C3e25PZa0WE1LKaligje87yhmobLc2DjtewGnqrBieIsosNlyZY5pY2WDoyQ+9i5trZRY+K+uoVHNmm1orXu63H43RXcomkFHTwPpeW+e7m6s/zH9x5DUD1v5LLVUtZxBh9PDmZNVQOLXPmeGuIOzcx97a+9wtykxOjmoI6+anEL4p2te9ouHPy9ALW2uf1upZkDMTpopYKdr4ZLXhdHaPXTMLWyuJB0B079FWvltS25harjreOlRm8MGkzy4q59JExxZlLbyPcNw0frstl+A4VX4fPLhstSyohbnMVRlIePIjqrniNEyrga6rijnbTvMbOUHXZHYWFtL+uoCjK+AQ8PythfHBCxjmxC5JJzWcCbauIO400K2ry7W1377/RHbiUiJ05dI2z7L4WzVQPikOYEHzFlrLrRO424OSs1tMS8REWWj1ECzx075CAATdJmIbVrNu0MC9sSrJQcKV1QwSSMbTx9XTG2ne26zS0GAUBLZq2eskHSmaGt/7ioZz13qO8p441tblVMpX2I3HQAknopuSowMasoqtx7OqAB/4rSnxC8fKgijgZ1yC7j6uOq3i0z8NLY618yjiLGxRxBtZL3K8W6EREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQerxer1jbushDaoqV1VO2Ng1ceuw81PT4kzBojS4c7JLtLUD3z/SD90eixUjP4dhrpyLSvZm16A6NHxNz6BQE0he65JPqode5bv4hbnWKv5sklXK5r2Z3ZXm7hfda4aXHQIBdWDAcLNVKZpGt5LAbZ9nvto3z/ALut72jHXcosdLZraQTYnE7KXZEaDDPaDpLPdkfkzqfjt81ZThtP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L23hEbhc6kHr6qSI+uLW76YxzPXu87j9dKxieE17McfilM7I5rxNE46ut003st2ejdXVcVc2mjYysi5VTEPCA8bnsCLX13UjhlBW0uHviqagujDrxvkFyw/mQey8rapzWimp435nfdAs5/r2CknNabar8f2WaxuemNTMfP5NOnho8HikZBK9znbuedL9gP7KkMOoKqrlEkoLW9G/uvvCOHXGZtVWeKW+mbZvorlAyKJoijaeaQcvh0+a111W35RZ+VXFGqd5+7HQU7YIszraagdwOpWOfEY4oGM991g8tG5J11XmIVRpYzytXtZmJJs0Dp/fb1VQqsSbOzlwVLS52sj3kNc8nvfYLa1tR01UMWL3Z67+GnxnU4hV4PL7JUMaZZBHMMwbzAR4WNcemh066Li1Xh2JRTu5lHUs/wCaJ37Ke4vx6bEsTfRU87pKSOTLEwCwJsATbqSb7qIjdPSuyPxV8JabFkb3ut5aaL0HAwWw4u/mVfk5ItPRXxDTgw2srphBFDI+Umwja0k39F7inD+IYO8MrqWWBzhmaHttceS6JwhxThVC4w4jPNK8sLW1kserBpdml3ZTvc7dlr/aFxJheJYfT0FA41HLkMjpy0gDS1hfX19FtHKzftEY4p9P3aX42OcfVLlexReu3Xi6bjS8REQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBEQIPeql6ClZUUNcXM8UMQka/scwFvQ5voolou4LpHBWD09XhlWypa4iqbyhlIBABBBF/6rfJV+TmjDTqlb4uGcttOdFhD7WVgw7A2yQxTVHMImP8ALjj3cL2vfpre3ey2eIeHv4ZxE/Dqeb2k5mhrg3KSXAaEdDqp+nq6KGGlh5ofLTsER/lnK4i4Nu4N7KHNyN44tT5W8HDiLzFkHiOCR0tCaylL2hjm5mueHghxIBa4AX1BBHput/hrj/EcGY2mJZUUzdopdco7NO49NluV7aeqwStgFO6mbA3mB2Zx8Q0DSD0NzYdCueuvHLotaUryMc1vG0mWZ49414foiForqZtYyZjWThjo7DMNToD5bj9lt01OyGjkEAc+Iv5IaG6xfiIPbdUv7MsXNVSzYfUtMsbQ1kRAuYw46k/0g29CVfcVmosKo6iN5dJa7zCy4vto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OPlbbotyGgkp2fz8WMo65G3t8StGnhroYxlc/kgaOFU3IB63so+txugonXkdHVzD7jHZw31cdPldcKceTJaYj+z0cZqUr5W2mlheMjppKmPqH2eFuMo8MY4vimkpnd2uP7qoYFxPHitfHRTU7YzJpEWyODQ62gcO2nSxV4oqVzYw9/KDfKIN+puVQ5OO+GdWnS3hyxeN1l5FM+GVvJnmqjbZgsPiSVKwyVdQP57mxs/A11z8TssUtTBTQl8szI2DdziAPkvaacVLQ+PNyjs5wtf0H7qjM/Om9u8b0mqUR08edpaCRoXfmoLiDESYHMiswP0aSbF5J6fuvauu/wCKbAwnmAWygX+fS3qq3xGycUjp6ZrpajOA1zy3J3JFzYkaaHa97KXj4pyXjfhW6IpPXae7mvEdc52LzRskc6COQhjdgO/1vr1UXi2JmuZTxNYWQU0fLiaTcgElxJPUkklTWKUkeFUzJakRz11Q5zi13iaxnfzJN9dRp1VYqpmTSBzIxGLatbtfyXscEV6Y1Hh5/mZLTady1URFYc8REQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBZGyObsSsa9RmJmPDN7Q+1l8Olc7clfCLGobTktPmUvgRz4pTMLi0OlaCb+YXTpeJXxRF8osQcrItiT5/r2XH4ZTE+4VrjxyjxAMdiIliqWgA1ETQ4Seb2G2vmDr2uqHM4sZZiZjw6fC5UUrqVgp69+I4oKmtkzwwAuDb6G3YeuitWF4+0UM1dUStZq43PuxMboNPX5lc89twuBjrYi54y5crKd1yPjYDZROIY86enFHTtMVK12bIXXLj3cf02CqW4EZfpmNQu258VjvKX4o41qsVnfHC98NJfSJptm83dz+SrtLj9fRF/s1XLEH+8GOIB9Qot7i46r5XUx8bHjpFYjs5Gbm5b23ttVVdPVyulmlfI95u5z3XJWoiKeIiI1Cra02nciIiNROiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgL0OI6rxEH1nd3S68RGdy8RERgREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQf/2Q=='; + @State urlBmp: string = ''; @State urlWebp: string = 'https://img0.baidu.com/it/u=2851883234,283312733&fm=253&fmt=auto&app=138&f=PNG?w=1200&h=392'; @State imagePixelMap: PixelMap | undefined = undefined; @State imagePixelMap_: PixelMap | undefined = undefined; From 7de28d594db948a52ab1151f9fc3d17972c27499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=A2=E6=9D=A1=E4=BE=A0?= Date: Mon, 1 Apr 2024 09:23:34 +0000 Subject: [PATCH 4/5] update entry/src/main/ets/pages/testImageKnifeCache.ets. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 面条侠 --- entry/src/main/ets/pages/testImageKnifeCache.ets | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/entry/src/main/ets/pages/testImageKnifeCache.ets b/entry/src/main/ets/pages/testImageKnifeCache.ets index e338991..e47427f 100644 --- a/entry/src/main/ets/pages/testImageKnifeCache.ets +++ b/entry/src/main/ets/pages/testImageKnifeCache.ets @@ -33,12 +33,12 @@ let imageKnife: ImageKnife | undefined = ImageKnifeGlobal.getInstance().getImage @Component struct testImageKnifeCache { @State url: string = ''; - @State urlGif: string = ''; + @State urlGif: string = 'https://octodex.github.com/images/daftpunktocat-guy.gif'; @State urlSvg: string = 'http://1.94.37.200:700/downloadSvgIamge'; @State urlPng: string = 'http://octodex.github.com/images/catstello.png'; - @State urlJpg: string = 'https://img0.baidu.com/it/u=2361645450,2439934461&fm=253&fmt=auto&app=138&f=JPEG?w=919&h=500'; - @State urlBmp: string = ''; - @State urlWebp: string = 'https://img0.baidu.com/it/u=2851883234,283312733&fm=253&fmt=auto&app=138&f=PNG?w=1200&h=392'; + @State urlJpg: string = 'https://hbimg.huabanimg.com/cc6af25f8d782d3cf3122bef4e61571378271145735e9-vEVggB'; + @State urlBmp: string = 'https://img-blog.csdn.net/20140514114029140'; + @State urlWebp: string = 'https://hbimg.huabanimg.com/95a6d37a39aa0b70d48fa18dc7df8309e2e0e8e85571e-x4hhks_fw658/format/webp'; @State imagePixelMap: PixelMap | undefined = undefined; @State imagePixelMap_: PixelMap | undefined = undefined; private index_: number = -1; From b08b5cca2e892440e5a7164c852bfd77ec919ea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=A2=E6=9D=A1=E4=BE=A0?= Date: Mon, 1 Apr 2024 09:33:14 +0000 Subject: [PATCH 5/5] update entry/src/main/ets/pages/testImageKnifeCache.ets. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 面条侠 --- entry/src/main/ets/pages/testImageKnifeCache.ets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/entry/src/main/ets/pages/testImageKnifeCache.ets b/entry/src/main/ets/pages/testImageKnifeCache.ets index e47427f..8988a9a 100644 --- a/entry/src/main/ets/pages/testImageKnifeCache.ets +++ b/entry/src/main/ets/pages/testImageKnifeCache.ets @@ -33,9 +33,9 @@ let imageKnife: ImageKnife | undefined = ImageKnifeGlobal.getInstance().getImage @Component struct testImageKnifeCache { @State url: string = ''; - @State urlGif: string = 'https://octodex.github.com/images/daftpunktocat-guy.gif'; + @State urlGif: string = 'https://gd-hbimg.huaban.com/e0a25a7cab0d7c2431978726971d61720732728a315ae-57EskW_fw658'; @State urlSvg: string = 'http://1.94.37.200:700/downloadSvgIamge'; - @State urlPng: string = 'http://octodex.github.com/images/catstello.png'; + @State urlPng: string = 'https://img-blog.csdnimg.cn/20191215043500229.png'; @State urlJpg: string = 'https://hbimg.huabanimg.com/cc6af25f8d782d3cf3122bef4e61571378271145735e9-vEVggB'; @State urlBmp: string = 'https://img-blog.csdn.net/20140514114029140'; @State urlWebp: string = 'https://hbimg.huabanimg.com/95a6d37a39aa0b70d48fa18dc7df8309e2e0e8e85571e-x4hhks_fw658/format/webp';