1.README.md update

2.add User-Defined transformation effect

Signed-off-by: zhoulisheng <635547767@qq.com>
This commit is contained in:
zhoulisheng 2022-04-14 16:18:36 +08:00
parent e9ce749549
commit 4226700e47
5 changed files with 30 additions and 5 deletions

View File

@ -321,4 +321,6 @@ let requestOptin = new RequestOption();
1.图片变换缓慢(待优化)。 1.图片变换缓慢(待优化)。
2.目前只支持一种图片变换效果。 2.目前只支持一种图片变换效果。
3.目前svg和gif动图不支持变换效果。

View File

@ -15,6 +15,8 @@
import {ImageKnifeComponent} from '@ohos/imageknife' import {ImageKnifeComponent} from '@ohos/imageknife'
import {ImageKnifeOption} from '@ohos/imageknife' import {ImageKnifeOption} from '@ohos/imageknife'
import {RotateImageTransformation} from '@ohos/imageknife' import {RotateImageTransformation} from '@ohos/imageknife'
import {GrayscaleTransformation} from '@ohos/imageknife'
import {SketchFilterTransformation} from '@ohos/imageknife'
@Entry @Entry
@Component @Component
@ -42,7 +44,8 @@ struct TestImageKnifeOptionChangedPage2 {
placeholderSrc: $r('app.media.icon_loading'), placeholderSrc: $r('app.media.icon_loading'),
errorholderSrc: $r('app.media.icon_failed'), errorholderSrc: $r('app.media.icon_failed'),
margin:{left:5,top:5,right:5,bottom:5}, 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) }).margin({left:5}).backgroundColor(Color.Blue)
Button("网络资源png") Button("网络资源png")
@ -53,7 +56,8 @@ struct TestImageKnifeOptionChangedPage2 {
placeholderSrc: $r('app.media.icon_loading'), placeholderSrc: $r('app.media.icon_loading'),
errorholderSrc: $r('app.media.icon_failed'), errorholderSrc: $r('app.media.icon_failed'),
margin:{left:5,top:5,right:5,bottom:5}, 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) }).margin({left:5}).backgroundColor(Color.Blue)
Button("网络资源bmp") Button("网络资源bmp")
@ -64,7 +68,8 @@ struct TestImageKnifeOptionChangedPage2 {
placeholderSrc: $r('app.media.icon_loading'), placeholderSrc: $r('app.media.icon_loading'),
errorholderSrc: $r('app.media.icon_failed'), errorholderSrc: $r('app.media.icon_failed'),
margin:{left:5,top:5,right:5,bottom:5}, margin:{left:5,top:5,right:5,bottom:5},
thumbSizeMultiplier:0.1 thumbSizeMultiplier:0.1,
transformations:[new GrayscaleTransformation()]
}; };
}).margin({left:5}).backgroundColor(Color.Blue) }).margin({left:5}).backgroundColor(Color.Blue)
Button("网络资源webp") Button("网络资源webp")
@ -75,7 +80,8 @@ struct TestImageKnifeOptionChangedPage2 {
placeholderSrc: $r('app.media.icon_loading'), placeholderSrc: $r('app.media.icon_loading'),
errorholderSrc: $r('app.media.icon_failed'), errorholderSrc: $r('app.media.icon_failed'),
margin:{left:5,top:5,right:5,bottom:5}, margin:{left:5,top:5,right:5,bottom:5},
thumbSizeMultiplier:0.1 thumbSizeMultiplier:0.1,
transformations:[new SketchFilterTransformation()]
}; };
}).margin({left:5}).backgroundColor(Color.Blue) }).margin({left:5}).backgroundColor(Color.Blue)
} }

View File

@ -147,6 +147,12 @@ export struct ImageKnifeComponent {
if (this.imageKnifeOption.transform) { if (this.imageKnifeOption.transform) {
this.requestAddTransform(request) 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) { if (this.imageKnifeOption.dontAnimateFlag) {
request.dontAnimate() request.dontAnimate()
} }

View File

@ -73,6 +73,9 @@ export class ImageKnifeOption {
rotateImage?:number rotateImage?:number
} }
transformation?:BaseTransform<PixelMap>;
transformations?:Array<BaseTransform<PixelMap>>;
// 输出缓存相关内容和信息 // 输出缓存相关内容和信息
allCacheInfoCallback?: IAllCacheInfoCallback; allCacheInfoCallback?: IAllCacheInfoCallback;

View File

@ -308,6 +308,14 @@ export class RequestOption {
this.transformations.push(transformation); this.transformations.push(transformation);
return this; return this;
} }
transform(input:BaseTransform<PixelMap>){
this.transformations.push(input);
return this;
}
transforms(inputs:BaseTransform<PixelMap>[]){
this.transformations = inputs;
return this;
}
// 占位图解析成功 // 占位图解析成功