diff --git a/CHANGELOG.md b/CHANGELOG.md index 03d1df1..391ba62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ -## 3.0.0-rc.10 +## 3.0.0 - 修复图形变换的闪退问题 +- 自定义下载customGetImage改为仅主图支持 +- 修改网络请求requestInStream配置优先返回arraybuffer +- 新增ColorFilter属性 ## 3.0.0-rc.9 - 修复Resource类型$r(变量无法)加载 diff --git a/README.md b/README.md index 509435a..1ee760b 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,8 @@ ImageKnifeComponent({ | signature | String | 自定义缓存关键字(可选) | | headerOption | Array | 设置请求头(可选) | | transformation | PixelMapTransformation | 图片变换(可选) | +| drawingColorFilter | ColorFilter | drawing.ColorFilter | 图片变换(可选) | +| onComplete | (event:EventImage | undefined) => voi | 颜色滤镜效果(可选) | | onLoadListener | onLoadStart: () => void、onLoadSuccess: (data: string | PixelMap | undefined) => void、onLoadFailed: (err: string) => void| 监听图片加载成功与失败 | ### ImageKnife接口 diff --git a/entry/src/main/ets/pages/SingleImage.ets b/entry/src/main/ets/pages/SingleImage.ets index 27fc019..b7fc9b3 100644 --- a/entry/src/main/ets/pages/SingleImage.ets +++ b/entry/src/main/ets/pages/SingleImage.ets @@ -15,6 +15,7 @@ import { ImageKnifeComponent,BlurTransformation } from '@ohos/libraryimageknife'; import fs from '@ohos.file.fs'; import image from '@ohos.multimedia.image'; +import { common2D, drawing } from '@kit.ArkGraphics2D'; @Entry @Component @@ -23,6 +24,8 @@ struct SingleImage { scroller: Scroller = new Scroller; localFile: string = getContext(this).filesDir + "/icon.png" @State pixelMap:PixelMap | undefined = undefined; + @State DrawingColorFilter: ColorFilter | undefined = undefined + private color: common2D.Color = { alpha: 255, red: 255, green: 0, blue: 0 }; aboutToAppear(): void { // 拷贝本地文件 let icon: Uint8Array = getContext(this).resourceManager.getMediaContentSync($r("app.media.startIcon")); @@ -44,12 +47,15 @@ struct SingleImage { .fontWeight(FontWeight.Bold) ImageKnifeComponent({ imageKnifeOption: { - loadSrc: $r(this.resource), + loadSrc: $r("app.media.svgSample"), placeholderSrc: $r("app.media.loading"), errorholderSrc: $r("app.media.failed"), objectFit: ImageFit.Contain } }).width(100).height(100) + .onClick(()=>{ + this.DrawingColorFilter = drawing.ColorFilter.createBlendModeColorFilter(this.color, drawing.BlendMode.SRC_IN); + }) Text("本地context files下文件") .fontSize(30) .fontWeight(FontWeight.Bold) diff --git a/library/oh-package.json5 b/library/oh-package.json5 index 653da3d..1975b91 100644 --- a/library/oh-package.json5 +++ b/library/oh-package.json5 @@ -14,7 +14,7 @@ "main": "index.ets", "repository": "https://gitee.com/openharmony-tpc/ImageKnife", "type": "module", - "version": "3.0.0-rc.10", + "version": "3.0.0", "dependencies": { "@ohos/gpu_transform": "^1.0.2" }, diff --git a/library/src/main/ets/ImageKnifeDispatcher.ets b/library/src/main/ets/ImageKnifeDispatcher.ets index 279706d..db17a57 100644 --- a/library/src/main/ets/ImageKnifeDispatcher.ets +++ b/library/src/main/ets/ImageKnifeDispatcher.ets @@ -383,7 +383,7 @@ async function requestJob(request: RequestJobRequest, requestList?: List { arrayBuffers.push(data) }); @@ -451,6 +443,15 @@ async function requestJob(request: RequestJobRequest, requestList?: List { if (data == 200) { diff --git a/library/src/main/ets/ImageKnifeOption.ets b/library/src/main/ets/ImageKnifeOption.ets index 2052c90..ad4162e 100644 --- a/library/src/main/ets/ImageKnifeOption.ets +++ b/library/src/main/ets/ImageKnifeOption.ets @@ -16,6 +16,7 @@ import taskpool from '@ohos.taskpool'; import common from '@ohos.app.ability.common' import { CacheStrategy, ImageKnifeData,EventImage } from './model/ImageKnifeData'; import { PixelMapTransformation } from './transform/PixelMapTransformation'; +import { drawing } from '@kit.ArkGraphics2D'; export interface HeaderOptions { key: string; @@ -52,7 +53,7 @@ export class ImageKnifeOption { transformation?: PixelMapTransformation onLoadListener?: OnLoadCallBack | undefined; onComplete?:(event:EventImage | undefined) => void - + drawingColorFilter?: ColorFilter | drawing.ColorFilter constructor() { } diff --git a/library/src/main/ets/components/ImageKnifeComponent.ets b/library/src/main/ets/components/ImageKnifeComponent.ets index 88467e7..57e7432 100644 --- a/library/src/main/ets/components/ImageKnifeComponent.ets +++ b/library/src/main/ets/components/ImageKnifeComponent.ets @@ -77,6 +77,7 @@ export struct ImageKnifeComponent { build() { Image(this.pixelMap) + .colorFilter(this.imageKnifeOption.drawingColorFilter) .objectFit(this.objectFit) .width(this.adaptiveWidth) .height(this.adaptiveHeight)