diff --git a/README.md b/README.md index b464be3..6c45d7d 100644 --- a/README.md +++ b/README.md @@ -321,4 +321,6 @@ let requestOptin = new RequestOption(); 1.图片变换缓慢(待优化)。 -2.目前只支持一种图片变换效果。 \ No newline at end of file +2.目前只支持一种图片变换效果。 + +3.目前svg和gif动图不支持变换效果。 \ No newline at end of file diff --git a/entry/src/main/ets/MainAbility/pages/testImageKnifeOptionChangedPage2.ets b/entry/src/main/ets/MainAbility/pages/testImageKnifeOptionChangedPage2.ets index 5503b4b..7edb12a 100644 --- a/entry/src/main/ets/MainAbility/pages/testImageKnifeOptionChangedPage2.ets +++ b/entry/src/main/ets/MainAbility/pages/testImageKnifeOptionChangedPage2.ets @@ -15,6 +15,8 @@ import {ImageKnifeComponent} from '@ohos/imageknife' import {ImageKnifeOption} from '@ohos/imageknife' import {RotateImageTransformation} from '@ohos/imageknife' +import {GrayscaleTransformation} from '@ohos/imageknife' +import {SketchFilterTransformation} from '@ohos/imageknife' @Entry @Component @@ -42,7 +44,8 @@ struct TestImageKnifeOptionChangedPage2 { placeholderSrc: $r('app.media.icon_loading'), errorholderSrc: $r('app.media.icon_failed'), margin:{left:5,top:5,right:5,bottom:5}, - thumbSizeMultiplier:0.1 + thumbSizeMultiplier:0.1, + transformation:new RotateImageTransformation(180) }; }).margin({left:5}).backgroundColor(Color.Blue) Button("网络资源png") @@ -53,7 +56,8 @@ struct TestImageKnifeOptionChangedPage2 { placeholderSrc: $r('app.media.icon_loading'), errorholderSrc: $r('app.media.icon_failed'), margin:{left:5,top:5,right:5,bottom:5}, - thumbSizeMultiplier:0.1 + thumbSizeMultiplier:0.1, + transformations:[new RotateImageTransformation(180)] }; }).margin({left:5}).backgroundColor(Color.Blue) Button("网络资源bmp") @@ -64,7 +68,8 @@ struct TestImageKnifeOptionChangedPage2 { placeholderSrc: $r('app.media.icon_loading'), errorholderSrc: $r('app.media.icon_failed'), margin:{left:5,top:5,right:5,bottom:5}, - thumbSizeMultiplier:0.1 + thumbSizeMultiplier:0.1, + transformations:[new GrayscaleTransformation()] }; }).margin({left:5}).backgroundColor(Color.Blue) Button("网络资源webp") @@ -75,7 +80,8 @@ struct TestImageKnifeOptionChangedPage2 { placeholderSrc: $r('app.media.icon_loading'), errorholderSrc: $r('app.media.icon_failed'), margin:{left:5,top:5,right:5,bottom:5}, - thumbSizeMultiplier:0.1 + thumbSizeMultiplier:0.1, + transformations:[new SketchFilterTransformation()] }; }).margin({left:5}).backgroundColor(Color.Blue) } diff --git a/imageknife/src/main/ets/components/imageknife/ImageKnifeComponent.ets b/imageknife/src/main/ets/components/imageknife/ImageKnifeComponent.ets index 69a5c23..a017127 100644 --- a/imageknife/src/main/ets/components/imageknife/ImageKnifeComponent.ets +++ b/imageknife/src/main/ets/components/imageknife/ImageKnifeComponent.ets @@ -147,6 +147,12 @@ export struct ImageKnifeComponent { if (this.imageKnifeOption.transform) { this.requestAddTransform(request) } + if (this.imageKnifeOption.transformation) { + request.transform(this.imageKnifeOption.transformation) + } + if (this.imageKnifeOption.transformations) { + request.transforms(this.imageKnifeOption.transformations) + } if (this.imageKnifeOption.dontAnimateFlag) { request.dontAnimate() } diff --git a/imageknife/src/main/ets/components/imageknife/ImageKnifeOption.ets b/imageknife/src/main/ets/components/imageknife/ImageKnifeOption.ets index 775a212..f2e047f 100644 --- a/imageknife/src/main/ets/components/imageknife/ImageKnifeOption.ets +++ b/imageknife/src/main/ets/components/imageknife/ImageKnifeOption.ets @@ -73,6 +73,9 @@ export class ImageKnifeOption { rotateImage?:number } + transformation?:BaseTransform; + + transformations?:Array>; // 输出缓存相关内容和信息 allCacheInfoCallback?: IAllCacheInfoCallback; diff --git a/imageknife/src/main/ets/components/imageknife/RequestOption.ets b/imageknife/src/main/ets/components/imageknife/RequestOption.ets index 9304d76..7eeb2cc 100644 --- a/imageknife/src/main/ets/components/imageknife/RequestOption.ets +++ b/imageknife/src/main/ets/components/imageknife/RequestOption.ets @@ -308,6 +308,14 @@ export class RequestOption { this.transformations.push(transformation); return this; } + transform(input:BaseTransform){ + this.transformations.push(input); + return this; + } + transforms(inputs:BaseTransform[]){ + this.transformations = inputs; + return this; + } // 占位图解析成功