forked from floraachy/ImageKnife
1.README.md update
2.add User-Defined transformation effect Signed-off-by: zhoulisheng <635547767@qq.com>
This commit is contained in:
parent
e9ce749549
commit
4226700e47
|
@ -321,4 +321,6 @@ let requestOptin = new RequestOption();
|
||||||
|
|
||||||
1.图片变换缓慢(待优化)。
|
1.图片变换缓慢(待优化)。
|
||||||
|
|
||||||
2.目前只支持一种图片变换效果。
|
2.目前只支持一种图片变换效果。
|
||||||
|
|
||||||
|
3.目前svg和gif动图不支持变换效果。
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,6 +73,9 @@ export class ImageKnifeOption {
|
||||||
rotateImage?:number
|
rotateImage?:number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transformation?:BaseTransform<PixelMap>;
|
||||||
|
|
||||||
|
transformations?:Array<BaseTransform<PixelMap>>;
|
||||||
|
|
||||||
// 输出缓存相关内容和信息
|
// 输出缓存相关内容和信息
|
||||||
allCacheInfoCallback?: IAllCacheInfoCallback;
|
allCacheInfoCallback?: IAllCacheInfoCallback;
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 占位图解析成功
|
// 占位图解析成功
|
||||||
|
|
Loading…
Reference in New Issue