1.ArkTs整改15 整改imageknife文件夹 清理codelint
Signed-off-by: zhoulisheng1 <zhoulisheng1@huawei.com>
This commit is contained in:
parent
68acab45ff
commit
268d0ab3e5
|
@ -18,111 +18,109 @@
|
|||
* cache
|
||||
*/
|
||||
|
||||
export * from './src/main/ets/components/cache/FileUtils'
|
||||
export * from './src/main/ets/components/cache/Base64'
|
||||
export * from './src/main/ets/components/cache/LruCache'
|
||||
export * from './src/main/ets/components/cache/diskstrategy/enum/ALL'
|
||||
export * from './src/main/ets/components/cache/diskstrategy/enum/AUTOMATIC'
|
||||
export * from './src/main/ets/components/cache/diskstrategy/enum/DATA'
|
||||
export * from './src/main/ets/components/cache/diskstrategy/enum/NONE'
|
||||
export * from './src/main/ets/components/cache/diskstrategy/enum/RESOURCE'
|
||||
export type {EngineKeyInterface} from './src/main/ets/components/cache/key/EngineKeyInterface'
|
||||
export * from './src/main/ets/components/cache/key/EngineKeyFactories'
|
||||
export { FileUtils } from './src/main/ets/components/cache/FileUtils'
|
||||
export { Base64 } from './src/main/ets/components/cache/Base64'
|
||||
export { LruCache } from './src/main/ets/components/cache/LruCache'
|
||||
export { ALL } from './src/main/ets/components/cache/diskstrategy/enum/ALL'
|
||||
export { AUTOMATIC } from './src/main/ets/components/cache/diskstrategy/enum/AUTOMATIC'
|
||||
export { DATA } from './src/main/ets/components/cache/diskstrategy/enum/DATA'
|
||||
export { NONE } from './src/main/ets/components/cache/diskstrategy/enum/NONE'
|
||||
export { RESOURCE } from './src/main/ets/components/cache/diskstrategy/enum/RESOURCE'
|
||||
export { EngineKeyInterface } from './src/main/ets/components/cache/key/EngineKeyInterface'
|
||||
export { EngineKeyFactories } from './src/main/ets/components/cache/key/EngineKeyFactories'
|
||||
|
||||
/**
|
||||
* compress
|
||||
*/
|
||||
export * from './src/main/ets/components/imageknife/compress/CompressBuilder'
|
||||
export type {OnCompressListener} from './src/main/ets/components/imageknife/compress/listener/OnCompressListener'
|
||||
export type {OnRenameListener} from './src/main/ets/components/imageknife/compress/listener/OnRenameListener'
|
||||
export type {CompressDataListener} from './src/main/ets/components/imageknife/compress/listener/CompressDataListener'
|
||||
export * from './src/main/ets/components/imageknife/compress/listener/CompressionPredicate'
|
||||
export * from './src/main/ets/components/imageknife/compress/provider/CompressAdapter'
|
||||
export * from './src/main/ets/components/imageknife/compress/provider/CompressProvider'
|
||||
export * from './src/main/ets/components/imageknife/compress/provider/DataStringPathProvider'
|
||||
export * from './src/main/ets/components/imageknife/compress/provider/RecourseProvider'
|
||||
export { CompressBuilder } from './src/main/ets/components/imageknife/compress/CompressBuilder'
|
||||
export { OnCompressListener } from './src/main/ets/components/imageknife/compress/listener/OnCompressListener'
|
||||
export { OnRenameListener } from './src/main/ets/components/imageknife/compress/listener/OnRenameListener'
|
||||
export { CompressDataListener } from './src/main/ets/components/imageknife/compress/listener/CompressDataListener'
|
||||
export { CompressionPredicate } from './src/main/ets/components/imageknife/compress/listener/CompressionPredicate'
|
||||
export { CompressAdapter } from './src/main/ets/components/imageknife/compress/provider/CompressAdapter'
|
||||
export { CompressProvider } from './src/main/ets/components/imageknife/compress/provider/CompressProvider'
|
||||
export { DataStringPathProvider } from './src/main/ets/components/imageknife/compress/provider/DataStringPathProvider'
|
||||
export { RecourseProvider } from './src/main/ets/components/imageknife/compress/provider/RecourseProvider'
|
||||
|
||||
/**
|
||||
* crop
|
||||
*/
|
||||
export * from './src/main/ets/components/imageknife/crop/Crop'
|
||||
export * from './src/main/ets/components/imageknife/crop/CropImage'
|
||||
export * from './src/main/ets/components/imageknife/crop/CropOptions'
|
||||
export * from './src/main/ets/components/imageknife/crop/PixelMapCrop'
|
||||
export * from './src/main/ets/components/imageknife/crop/CropCallback'
|
||||
|
||||
export { CropImage } from './src/main/ets/components/imageknife/crop/CropImage'
|
||||
export { CropOptions } from './src/main/ets/components/imageknife/crop/CropOptions'
|
||||
export { PixelMapCrop,Options } from './src/main/ets/components/imageknife/crop/PixelMapCrop'
|
||||
export { CropCallback } from './src/main/ets/components/imageknife/crop/CropCallback'
|
||||
|
||||
/**
|
||||
* transform
|
||||
*/
|
||||
export type {BaseTransform} from './src/main/ets/components/imageknife/transform/BaseTransform'
|
||||
export * from './src/main/ets/components/imageknife/transform/BlurTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/BrightnessFilterTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/ContrastFilterTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/CropCircleTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/CropCircleWithBorderTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/CropSquareTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/CropTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/GrayscaleTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/InvertFilterTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/PixelationFilterTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/RotateImageTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/RoundedCornersTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/SepiaFilterTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/SketchFilterTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/MaskTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/SwirlFilterTransformation'
|
||||
export * from './src/main/ets/components/imageknife/transform/KuwaharaFilterTransform'
|
||||
export * from './src/main/ets/components/imageknife/transform/ToonFilterTransform'
|
||||
export * from './src/main/ets/components/imageknife/transform/VignetteFilterTransform'
|
||||
export * from './src/main/ets/components/imageknife/transform/TransformUtils'
|
||||
export * from './src/main/ets/components/imageknife/transform/TransformType'
|
||||
export * from './src/main/ets/components/imageknife/transform/pixelmap/CenterCrop'
|
||||
export * from './src/main/ets/components/imageknife/transform/pixelmap/CenterInside'
|
||||
export * from './src/main/ets/components/imageknife/transform/pixelmap/FitCenter'
|
||||
export { BaseTransform } from './src/main/ets/components/imageknife/transform/BaseTransform'
|
||||
export { BlurTransformation } from './src/main/ets/components/imageknife/transform/BlurTransformation'
|
||||
export { BrightnessFilterTransformation } from './src/main/ets/components/imageknife/transform/BrightnessFilterTransformation'
|
||||
export { ContrastFilterTransformation } from './src/main/ets/components/imageknife/transform/ContrastFilterTransformation'
|
||||
export { CropCircleTransformation } from './src/main/ets/components/imageknife/transform/CropCircleTransformation'
|
||||
export { CropCircleWithBorderTransformation,rgbColor } from './src/main/ets/components/imageknife/transform/CropCircleWithBorderTransformation'
|
||||
export { CropSquareTransformation } from './src/main/ets/components/imageknife/transform/CropSquareTransformation'
|
||||
export { CropTransformation,CropType } from './src/main/ets/components/imageknife/transform/CropTransformation'
|
||||
export { GrayscaleTransformation } from './src/main/ets/components/imageknife/transform/GrayscaleTransformation'
|
||||
export { InvertFilterTransformation } from './src/main/ets/components/imageknife/transform/InvertFilterTransformation'
|
||||
export { PixelationFilterTransformation } from './src/main/ets/components/imageknife/transform/PixelationFilterTransformation'
|
||||
export { RotateImageTransformation } from './src/main/ets/components/imageknife/transform/RotateImageTransformation'
|
||||
export { RoundedCornersTransformation,RoundCorner } from './src/main/ets/components/imageknife/transform/RoundedCornersTransformation'
|
||||
export { SepiaFilterTransformation } from './src/main/ets/components/imageknife/transform/SepiaFilterTransformation'
|
||||
export { SketchFilterTransformation } from './src/main/ets/components/imageknife/transform/SketchFilterTransformation'
|
||||
export { MaskTransformation } from './src/main/ets/components/imageknife/transform/MaskTransformation'
|
||||
export { SwirlFilterTransformation } from './src/main/ets/components/imageknife/transform/SwirlFilterTransformation'
|
||||
export { KuwaharaFilterTransform } from './src/main/ets/components/imageknife/transform/KuwaharaFilterTransform'
|
||||
export { ToonFilterTransform } from './src/main/ets/components/imageknife/transform/ToonFilterTransform'
|
||||
export { VignetteFilterTransform } from './src/main/ets/components/imageknife/transform/VignetteFilterTransform'
|
||||
export { TransformUtils } from './src/main/ets/components/imageknife/transform/TransformUtils'
|
||||
export { TransformType } from './src/main/ets/components/imageknife/transform/TransformType'
|
||||
export { CenterCrop } from './src/main/ets/components/imageknife/transform/pixelmap/CenterCrop'
|
||||
export { CenterInside } from './src/main/ets/components/imageknife/transform/pixelmap/CenterInside'
|
||||
export { FitCenter } from './src/main/ets/components/imageknife/transform/pixelmap/FitCenter'
|
||||
|
||||
/**
|
||||
* pngj
|
||||
*/
|
||||
export * from './src/main/ets/components/imageknife/pngj/Pngj'
|
||||
export { Pngj } from './src/main/ets/components/imageknife/pngj/Pngj'
|
||||
export {handler} from './PngWork'
|
||||
export * from './src/main/ets/components/3rd_party/upng/UPNG'
|
||||
export { UPNG } from './src/main/ets/components/3rd_party/upng/UPNG'
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* ImageKnife
|
||||
*/
|
||||
export * from './src/main/ets/components/imageknife/ImageKnife'
|
||||
export * from './src/main/ets/components/imageknife/ImageKnifeGlobal'
|
||||
export { ImageKnife } from './src/main/ets/components/imageknife/ImageKnife'
|
||||
export { ImageKnifeGlobal } from './src/main/ets/components/imageknife/ImageKnifeGlobal'
|
||||
export {RequestOption,Size} from './src/main/ets/components/imageknife/RequestOption'
|
||||
export * from './src/main/ets/components/imageknife/ImageKnifeComponent'
|
||||
export * from './src/main/ets/components/imageknife/ImageKnifeDrawFactory'
|
||||
export { ImageKnifeComponent } from './src/main/ets/components/imageknife/ImageKnifeComponent'
|
||||
export { ImageKnifeDrawFactory } from './src/main/ets/components/imageknife/ImageKnifeDrawFactory'
|
||||
export {ImageKnifeOption,CropCircleWithBorder,Crop,GifOptions,TransformOptions} from './src/main/ets/components/imageknife/ImageKnifeOption'
|
||||
export * from './src/main/ets/components/imageknife/ImageKnifeData'
|
||||
export type {IAllCacheInfoCallback} from './src/main/ets/components/imageknife/interface/IAllCacheInfoCallback'
|
||||
export type {AllCacheInfo} from './src/main/ets/components/imageknife/interface/IAllCacheInfoCallback'
|
||||
export type {IParseImage} from './src/main/ets/components/imageknife/interface/IParseImage'
|
||||
export type {IDataFetch} from './src/main/ets/components/imageknife/networkmanage/IDataFetch'
|
||||
export type {ICache} from './src/main/ets/components/imageknife/requestmanage/ICache'
|
||||
export * from './src/main/ets/components/imageknife/utils/FileTypeUtil'
|
||||
export * from './src/main/ets/components/imageknife/utils/ParseImageUtil'
|
||||
export { ImageKnifeData } from './src/main/ets/components/imageknife/ImageKnifeData'
|
||||
export {IAllCacheInfoCallback} from './src/main/ets/components/imageknife/interface/IAllCacheInfoCallback'
|
||||
export {AllCacheInfo} from './src/main/ets/components/imageknife/interface/IAllCacheInfoCallback'
|
||||
export {IParseImage} from './src/main/ets/components/imageknife/interface/IParseImage'
|
||||
export {IDataFetch} from './src/main/ets/components/imageknife/networkmanage/IDataFetch'
|
||||
export {ICache} from './src/main/ets/components/imageknife/requestmanage/ICache'
|
||||
|
||||
/**
|
||||
* svg parse
|
||||
*/
|
||||
export * from './src/main/ets/components/imageknife/utils/svg/SVGParseImpl'
|
||||
export { SVGParseImpl } from './src/main/ets/components/imageknife/utils/svg/SVGParseImpl'
|
||||
|
||||
/**
|
||||
* gif parse
|
||||
*/
|
||||
export * from './src/main/ets/components/imageknife/utils/gif/GIFParseImpl'
|
||||
export * from './src/main/ets/components/imageknife/utils/gif/GIFFrame'
|
||||
export { GIFParseImpl } from './src/main/ets/components/imageknife/utils/gif/GIFParseImpl'
|
||||
export { GIFFrame } from './src/main/ets/components/imageknife/utils/gif/GIFFrame'
|
||||
// 能力增强worker 解析GIF数据
|
||||
export {gifHandler} from './GifWorker'
|
||||
export { gifHandler } from './GifWorker'
|
||||
|
||||
// 自定义组件新增
|
||||
// 自定义组件绘制生命周期
|
||||
export type {IDrawLifeCycle} from './src/main/ets/components/imageknife/interface/IDrawLifeCycle'
|
||||
export { IDrawLifeCycle } from './src/main/ets/components/imageknife/interface/IDrawLifeCycle'
|
||||
|
||||
// 日志管理
|
||||
export * from './src/main/ets/components/imageknife/utils/LogUtil'
|
||||
export { LogUtil } from './src/main/ets/components/imageknife/utils/LogUtil'
|
|
@ -54,7 +54,9 @@ export class ImageKnife {
|
|||
private diskCacheFolder: string = "ImageKnifeDiskCache"
|
||||
|
||||
|
||||
private defaultListener: AsyncCallback<ImageKnifeData>; // 全局监听器
|
||||
private defaultListener: AsyncCallback<ImageKnifeData> = {
|
||||
callback:(err: string, data: ImageKnifeData)=>{return false};
|
||||
}; // 全局监听器
|
||||
|
||||
// gifWorker
|
||||
private gifWorker: worker.ThreadWorker|undefined = undefined;
|
||||
|
|
|
@ -371,7 +371,7 @@ export struct ImageKnifeComponent {
|
|||
|
||||
}
|
||||
|
||||
displayRetryholder = (data: ImageKnifeData|number)=> {
|
||||
displayRetryholder = (data: ImageKnifeData|number|undefined)=> {
|
||||
if(data == undefined || typeof data == 'number'){
|
||||
return
|
||||
}
|
||||
|
@ -393,7 +393,7 @@ export struct ImageKnifeComponent {
|
|||
|
||||
}
|
||||
|
||||
displayErrorholder = (data: ImageKnifeData|number)=> {
|
||||
displayErrorholder = (data: ImageKnifeData|number|undefined)=> {
|
||||
if(data == undefined || typeof data == 'number'){
|
||||
return
|
||||
}
|
||||
|
@ -617,10 +617,10 @@ export struct ImageKnifeComponent {
|
|||
this.autoPlay = true
|
||||
context.clearRect(0, 0, compWidth, compHeight)
|
||||
|
||||
this.renderFrames_frames = frames,
|
||||
this.renderFrames_index = 0,
|
||||
this.renderFrames_context = context,
|
||||
this.renderFrames_compWidth = compWidth,
|
||||
this.renderFrames_frames = frames
|
||||
this.renderFrames_index = 0
|
||||
this.renderFrames_context = context
|
||||
this.renderFrames_compWidth = compWidth
|
||||
this.renderFrames_compHeight = compHeight
|
||||
|
||||
this.renderFrames()
|
||||
|
@ -652,7 +652,7 @@ export struct ImageKnifeComponent {
|
|||
renderFrames_compHeight: number = 0
|
||||
|
||||
renderFrames = ()=> {
|
||||
LogUtil.log('ImageKnifeComponent renderFrames frames length =' + this.renderFrames_frames.length)
|
||||
LogUtil.log('ImageKnifeComponent renderFrames frames length =' + this.renderFrames_frames?.length)
|
||||
let start = new Date().getTime();
|
||||
if (this.renderFrames_index === 0) {
|
||||
// 如果是第一帧,我们只从开始渲染前记录时间
|
||||
|
@ -661,7 +661,7 @@ export struct ImageKnifeComponent {
|
|||
// draw Frame
|
||||
this.drawFrame(this.renderFrames_frames, this.renderFrames_index, this.renderFrames_context, this.renderFrames_compWidth, this.renderFrames_compHeight);
|
||||
//如果gif动图只有一帧的情况下,不进行后面代码的逐帧绘制循环
|
||||
if (this.renderFrames_frames.length <= 1) {
|
||||
if (this.renderFrames_frames != undefined && this.renderFrames_frames.length <= 1) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -672,9 +672,12 @@ export struct ImageKnifeComponent {
|
|||
if (this.autoPlay) {
|
||||
|
||||
// 理论上该帧在屏幕上保留的时间
|
||||
let stayTime = this.renderFrames_frames[this.renderFrames_index].delay;
|
||||
let stayTime:number= 0
|
||||
if(this.renderFrames_frames != undefined) {
|
||||
stayTime = this.renderFrames_frames[this.renderFrames_index].delay;
|
||||
}
|
||||
if (this.imageKnifeOption.gif && this.imageKnifeOption.gif.speedFactory) {
|
||||
stayTime = this.renderFrames_frames[this.renderFrames_index].delay / (this.imageKnifeOption.gif.speedFactory * 1.0);
|
||||
stayTime = stayTime / (this.imageKnifeOption.gif?.speedFactory * 1.0);
|
||||
}
|
||||
// 减去程序执行消耗,剩余的准确延迟时间
|
||||
let delayTime = Math.max(0, Math.floor(stayTime - diff));
|
||||
|
@ -686,26 +689,23 @@ export struct ImageKnifeComponent {
|
|||
// 整个gif累计的时长;
|
||||
this.gifLoopDuration += loopStayTime;
|
||||
// 返回gif一次循环结束回调,并且把当前循环的时间给出
|
||||
if (this.renderFrames_index === (this.renderFrames_frames.length - 1) && this.imageKnifeOption.gif && this.imageKnifeOption.gif.loopFinish) {
|
||||
if (this.renderFrames_frames != undefined && this.renderFrames_index === (this.renderFrames_frames.length - 1) && this.imageKnifeOption.gif != undefined && this.imageKnifeOption.gif?.loopFinish) {
|
||||
this.imageKnifeOption.gif.loopFinish(this.gifLoopDuration)
|
||||
this.gifLoopDuration = 0;
|
||||
}
|
||||
// update the frame index
|
||||
this.renderFrames_index++
|
||||
if (this.renderFrames_index >= this.renderFrames_frames.length) {
|
||||
if (this.renderFrames_frames != undefined && this.renderFrames_index >= this.renderFrames_frames.length) {
|
||||
this.renderFrames_index = 0;
|
||||
}
|
||||
|
||||
// this.renderFrames_frames,
|
||||
// this.renderFrames_index,
|
||||
// this.renderFrames_context,
|
||||
// this.renderFrames_compWidth,
|
||||
// this.renderFrames_compHeight
|
||||
this.gifTimerId = setTimeout(this.renderFrames, delayTime)
|
||||
}
|
||||
}
|
||||
|
||||
private drawFrame(frames: GIFFrame[], index: number, context: CanvasRenderingContext2D, compWidth: number, compHeight: number) {
|
||||
private drawFrame(frames: GIFFrame[]|undefined, index: number, context: CanvasRenderingContext2D|undefined, compWidth: number, compHeight: number) {
|
||||
if(frames == undefined){
|
||||
return
|
||||
}
|
||||
// get current frame
|
||||
let frame = frames[index];
|
||||
if (!frame || !context) {
|
||||
|
|
|
@ -46,21 +46,21 @@ export class ImageKnifeDrawFactory{
|
|||
displayMainSource: (context: CanvasRenderingContext2D, data: ImageKnifeData, imageKnifeOption: ImageKnifeOption, compWidth: number, compHeight: number, setGifTimeId?: (timeId: number) => void) => {
|
||||
if (data.isPixelMap()) {
|
||||
|
||||
data.drawPixelMap.imagePixelMap.getImageInfo().then((imageInfo) => {
|
||||
data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => {
|
||||
let scaleType = (typeof imageKnifeOption.mainScaleType == 'number') ? imageKnifeOption.mainScaleType : ScaleType.FIT_CENTER
|
||||
|
||||
context.clearRect(0,0,compWidth,compHeight)
|
||||
context.save();
|
||||
// 绘制适配后的图像
|
||||
context.save();
|
||||
ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0)
|
||||
ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0)
|
||||
context.restore();
|
||||
|
||||
// 使用 destination-in 裁剪出椭圆
|
||||
context.save();
|
||||
context.globalCompositeOperation = 'destination-in'
|
||||
context.beginPath();
|
||||
ImageKnifeDrawFactory.setOval(context, scaleType, data.drawPixelMap.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0,borderWidth)
|
||||
ImageKnifeDrawFactory.setOval(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0,borderWidth)
|
||||
context.closePath();
|
||||
context.fill()
|
||||
context.restore();
|
||||
|
@ -72,7 +72,7 @@ export class ImageKnifeDrawFactory{
|
|||
context.lineWidth = borderWidth;
|
||||
context.globalCompositeOperation = 'source-over'
|
||||
context.beginPath();
|
||||
ImageKnifeDrawFactory.setOval(context, scaleType, data.drawPixelMap.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0, borderWidth)
|
||||
ImageKnifeDrawFactory.setOval(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight, 0, 0, borderWidth)
|
||||
context.closePath();
|
||||
context.stroke()
|
||||
context.restore();
|
||||
|
@ -108,7 +108,7 @@ export class ImageKnifeDrawFactory{
|
|||
* @param imageOffsetY
|
||||
* @param borderWidth
|
||||
*/
|
||||
private static setOval(context: CanvasRenderingContext2D, scaleType: ScaleType, source: PixelMap | ImageBitmap, imageWidth: number, imageHeight: number, compWidth: number, compHeight: number, imageOffsetX:number,imageOffsetY:number
|
||||
private static setOval(context: CanvasRenderingContext2D, scaleType: ScaleType, source: PixelMap | undefined, imageWidth: number, imageHeight: number, compWidth: number, compHeight: number, imageOffsetX:number,imageOffsetY:number
|
||||
,borderWidth:number) {
|
||||
let scaleW = compWidth / imageWidth
|
||||
let scaleH = compHeight / imageHeight
|
||||
|
@ -209,7 +209,7 @@ export class ImageKnifeDrawFactory{
|
|||
displayMainSource: (context: CanvasRenderingContext2D, data: ImageKnifeData, imageKnifeOption: ImageKnifeOption, compWidth: number, compHeight: number, setGifTimeId?: (timeId: number) => void) => {
|
||||
if (data.isPixelMap()) {
|
||||
|
||||
data.drawPixelMap.imagePixelMap.getImageInfo().then((imageInfo) => {
|
||||
data.drawPixelMap?.imagePixelMap?.getImageInfo().then((imageInfo) => {
|
||||
let scaleType = (typeof imageKnifeOption.mainScaleType == 'number') ? imageKnifeOption.mainScaleType : ScaleType.FIT_CENTER
|
||||
|
||||
context.clearRect(0,0,compWidth,compHeight)
|
||||
|
@ -217,13 +217,13 @@ export class ImageKnifeDrawFactory{
|
|||
|
||||
// 绘制适配后的图像
|
||||
context.save();
|
||||
ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0)
|
||||
ScaleTypeHelper.drawImageWithScaleType(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0)
|
||||
context.restore();
|
||||
|
||||
// 通过 destination-in 裁剪出圆角
|
||||
context.save();
|
||||
context.globalCompositeOperation = 'destination-in'
|
||||
ImageKnifeDrawFactory.setRect(context, scaleType, data.drawPixelMap.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0,borderWidth,connerRadius)
|
||||
ImageKnifeDrawFactory.setRect(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0,borderWidth,connerRadius)
|
||||
context.fill()
|
||||
context.restore();
|
||||
if(borderWidth > 0){
|
||||
|
@ -232,7 +232,7 @@ export class ImageKnifeDrawFactory{
|
|||
context.strokeStyle = colorString
|
||||
context.lineWidth = borderWidth
|
||||
context.globalCompositeOperation = 'source-over'
|
||||
ImageKnifeDrawFactory.setRect(context, scaleType, data.drawPixelMap.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0,borderWidth,connerRadius)
|
||||
ImageKnifeDrawFactory.setRect(context, scaleType, data.drawPixelMap?.imagePixelMap, px2vp(imageInfo.size.width), px2vp(imageInfo.size.height), compWidth, compHeight,0,0,borderWidth,connerRadius)
|
||||
context.stroke()
|
||||
context.restore();
|
||||
}
|
||||
|
@ -268,7 +268,7 @@ export class ImageKnifeDrawFactory{
|
|||
* @param borderWidth
|
||||
* @param cornerRadius
|
||||
*/
|
||||
private static setRect(context: CanvasRenderingContext2D, scaleType: ScaleType, source: PixelMap | ImageBitmap, imageWidth: number, imageHeight: number, compWidth: number, compHeight: number, imageOffsetX:number,imageOffsetY:number
|
||||
private static setRect(context: CanvasRenderingContext2D, scaleType: ScaleType, source: PixelMap | undefined, imageWidth: number, imageHeight: number, compWidth: number, compHeight: number, imageOffsetX:number,imageOffsetY:number
|
||||
,borderWidth:number,cornerRadius:number) {
|
||||
let scaleW = compWidth / imageWidth
|
||||
let scaleH = compHeight / imageHeight
|
||||
|
|
|
@ -235,7 +235,7 @@ export class RequestOption {
|
|||
return this;
|
||||
}
|
||||
|
||||
roundedCorners(obj: RoundCorner) {
|
||||
roundedCorners(obj: RoundCorner|undefined) {
|
||||
if(obj == undefined){
|
||||
return
|
||||
}
|
||||
|
@ -255,7 +255,7 @@ export class RequestOption {
|
|||
return this;
|
||||
}
|
||||
|
||||
cropCircleWithBorder(border: number, obj: rgbColor) {
|
||||
cropCircleWithBorder(border: number|undefined, obj: rgbColor|undefined) {
|
||||
if(border == undefined || obj == undefined){
|
||||
return
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ export class CompressBuilder {
|
|||
}
|
||||
private _mStreamProviders: Array<CompressAdapter> = new Array<CompressAdapter>();
|
||||
private _mFocusAlpha: boolean = false;
|
||||
private _outFilePath: string;
|
||||
private _outFilePath: string = '';
|
||||
constructor() {
|
||||
this._mStreamProviders = new Array();
|
||||
}
|
||||
|
|
|
@ -84,7 +84,7 @@ export class Engine {
|
|||
return;
|
||||
}
|
||||
|
||||
let imageResource: image.ImageSource = image.createImageSource(buffer as any);
|
||||
let imageResource: image.ImageSource = image.createImageSource(buffer);
|
||||
imageResource.getImageInfo()
|
||||
.then(info => {
|
||||
let height = info.size.height;
|
||||
|
|
|
@ -17,7 +17,7 @@ import { Crop } from './Crop'
|
|||
import { CropCallback } from './CropCallback'
|
||||
import { BusinessError } from '@ohos.base'
|
||||
@Component
|
||||
struct PixelMapCrop {
|
||||
export struct PixelMapCrop {
|
||||
@Watch('watchOptions') @Link options: Options;
|
||||
@Watch('watchCropTap') @Prop cropTap: boolean = false;
|
||||
@State bWidth: number = 0;
|
||||
|
@ -802,7 +802,7 @@ export class Options {
|
|||
pixelScale: number = 1;
|
||||
|
||||
// 用户裁剪后的回调
|
||||
cropFunction: (error:BusinessError|string, pixelmap:PixelMap, sx:number, sy:number) => void = (error:BusinessError, pixelmap:PixelMap, sx:number, sy:number)=>{};
|
||||
cropFunction: (error:BusinessError|string, pixelmap:PixelMap|null, sx:number, sy:number) => void = (error:BusinessError|string, pixelmap:PixelMap|null, sx:number, sy:number)=>{};
|
||||
|
||||
// 本地裁剪框 回调
|
||||
cropAction: (topLeftPoint:number[], bottomRightPoint:number[], scaleInside:number) =>void = (topLeftPoint:number[], bottomRightPoint:number[], scaleInside:number)=>{};
|
||||
|
@ -812,7 +812,7 @@ export class Options {
|
|||
}
|
||||
|
||||
// 裁剪动作
|
||||
setCropFunction(crop: (error:BusinessError, pixelmap:PixelMap, sx:number, sy:number) => void) {
|
||||
setCropFunction(crop: (error:BusinessError|string, pixelmap:PixelMap|null, sx:number, sy:number) => void) {
|
||||
this.cropFunction = crop;
|
||||
|
||||
this.cropAction = (topLeftPoint:number[], bottomRightPoint:number[], scaleInside:number) => {
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { RequestOption } from '../../imageknife/RequestOption'
|
||||
import { RequestOption,Size } from '../../imageknife/RequestOption'
|
||||
import { FileTypeUtil } from '../../imageknife/utils/FileTypeUtil'
|
||||
import { ImageKnifeData, ImageKnifeType } from '../ImageKnifeData'
|
||||
import { ParseImageUtil } from '../utils/ParseImageUtil'
|
||||
import { SupportFormat } from '../utils/FileTypeUtil'
|
||||
import { SVGParseImpl,Size } from '../utils/svg/SVGParseImpl'
|
||||
import { SVGParseImpl } from '../utils/svg/SVGParseImpl'
|
||||
import { ParseResClient } from '../resourcemanage/ParseResClient'
|
||||
import {LogUtil} from '../../imageknife/utils/LogUtil'
|
||||
import image from '@ohos.multimedia.image'
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import {RequestOption} from "../../imageknife/RequestOption"
|
||||
import {RequestOption,Size} from "../../imageknife/RequestOption"
|
||||
import {ResourceTypeEts} from "../../imageknife/constants/ResourceTypeEts"
|
||||
import {Base64} from "../../cache/Base64"
|
||||
import {FileTypeUtil} from "../../imageknife/utils/FileTypeUtil"
|
||||
|
@ -20,7 +20,7 @@ import {ImageKnifeData,ImageKnifeType} from "../ImageKnifeData"
|
|||
import {ParseImageUtil} from '../utils/ParseImageUtil'
|
||||
import {ParseResClient} from '../resourcemanage/ParseResClient'
|
||||
import { SupportFormat } from '../utils/FileTypeUtil'
|
||||
import { SVGParseImpl,Size} from '../utils/svg/SVGParseImpl'
|
||||
import { SVGParseImpl} from '../utils/svg/SVGParseImpl'
|
||||
import {LogUtil} from '../../imageknife/utils/LogUtil'
|
||||
import resourceManager from '@ohos.resourceManager';
|
||||
import image from "@ohos.multimedia.image"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import {RequestOption} from "../../imageknife/RequestOption"
|
||||
import {RequestOption,Size} from "../../imageknife/RequestOption"
|
||||
import {ResourceTypeEts} from "../../imageknife/constants/ResourceTypeEts"
|
||||
import {Base64} from "../../cache/Base64"
|
||||
import {FileTypeUtil} from "../../imageknife/utils/FileTypeUtil"
|
||||
|
@ -20,7 +20,7 @@ import {ImageKnifeData,ImageKnifeType} from "../ImageKnifeData"
|
|||
import {ParseImageUtil} from '../utils/ParseImageUtil'
|
||||
import {ParseResClient} from '../resourcemanage/ParseResClient'
|
||||
import { SupportFormat } from '../utils/FileTypeUtil'
|
||||
import { SVGParseImpl,Size } from '../utils/svg/SVGParseImpl'
|
||||
import { SVGParseImpl } from '../utils/svg/SVGParseImpl'
|
||||
import {LogUtil} from '../../imageknife/utils/LogUtil'
|
||||
import resourceManager from '@ohos.resourceManager';
|
||||
import image from "@ohos.multimedia.image"
|
||||
|
|
|
@ -28,7 +28,7 @@ export class MemoryCacheProxy <K, V> implements ICache<K, V> {
|
|||
return "Level1MemoryCache"
|
||||
}
|
||||
|
||||
getValue(key: K): V{
|
||||
getValue(key: K): V|undefined{
|
||||
return this.mLruCache.get(key);
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ export class MemoryCacheProxy <K, V> implements ICache<K, V> {
|
|||
this.mLruCache.put(key, value);
|
||||
}
|
||||
|
||||
removeValue(key: K): V{
|
||||
removeValue(key: K): V|undefined{
|
||||
return this.mLruCache.remove(key);
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ export class MemoryCacheProxy <K, V> implements ICache<K, V> {
|
|||
|
||||
|
||||
// 外界调用
|
||||
loadMemoryCache(key: K, isMemoryCacheable: boolean): V{
|
||||
loadMemoryCache(key: K, isMemoryCacheable: boolean): V | null{
|
||||
// 是否开启内存缓存
|
||||
if (!isMemoryCacheable) {
|
||||
return null;
|
||||
|
|
|
@ -65,10 +65,10 @@ export class RequestManager {
|
|||
private mMemoryCacheProxy: MemoryCacheProxy<string, ImageKnifeData>;
|
||||
private mDiskCacheProxy: DiskCacheProxy;
|
||||
private mIDataFetch: IDataFetch;
|
||||
private mIResourceFetch: IResourceFetch;
|
||||
private mIResourceFetch: IResourceFetch<ArrayBuffer>;
|
||||
private mParseImageUtil: IParseImage<PixelMap>;
|
||||
|
||||
constructor(option: RequestOption, memoryCache1: LruCache<string, ImageKnifeData>, diskMemoryCache1: DiskLruCache, dataFetch: IDataFetch, resourceFetch: IResourceFetch) {
|
||||
constructor(option: RequestOption, memoryCache1: LruCache<string, ImageKnifeData>, diskMemoryCache1: DiskLruCache, dataFetch: IDataFetch, resourceFetch: IResourceFetch<ArrayBuffer>) {
|
||||
this.options = option;
|
||||
|
||||
// 缓存部分
|
||||
|
@ -85,7 +85,7 @@ export class RequestManager {
|
|||
this.mParseImageUtil = new ParseImageUtil();
|
||||
}
|
||||
|
||||
static execute(option: RequestOption, memoryCache1: LruCache<string, ImageKnifeData>, diskMemoryCache1: DiskLruCache, dataFetch: IDataFetch, resourceFetch: IResourceFetch) {
|
||||
static execute(option: RequestOption, memoryCache1: LruCache<string, ImageKnifeData>, diskMemoryCache1: DiskLruCache, dataFetch: IDataFetch, resourceFetch: IResourceFetch<ArrayBuffer>) {
|
||||
LogUtil.log("RequestManager execute")
|
||||
let manager = new RequestManager(option, memoryCache1, diskMemoryCache1, dataFetch, resourceFetch);
|
||||
return new Promise<ImageKnifeData>(manager.process)
|
||||
|
@ -219,7 +219,7 @@ export class RequestManager {
|
|||
})
|
||||
} else {
|
||||
if (request.transformations[0]) {
|
||||
request.transformations[0].transform(arrayBuffer, request, {asyncTransform:(error:BusinessError|string, pixelMap: PixelMap) => {
|
||||
request.transformations[0].transform(arrayBuffer, request, {asyncTransform:(error:BusinessError|string, pixelMap: PixelMap|null) => {
|
||||
// 输出给Image
|
||||
if (pixelMap) {
|
||||
|
||||
|
@ -323,7 +323,7 @@ export class RequestManager {
|
|||
})
|
||||
let thumbCallback = this.options.thumbholderOnComplete;
|
||||
let thumbError = this.options.thumbholderOnError;
|
||||
this.options.transformations[0].transform(source, thumbOption,{asyncTransform: (error:BusinessError|string, pixelMap: PixelMap) => {
|
||||
this.options.transformations[0].transform(source, thumbOption,{asyncTransform: (error:BusinessError|string, pixelMap: PixelMap|null) => {
|
||||
if (pixelMap) {
|
||||
let imageKnifeData = this.createImagePixelMap(ImageKnifeType.PIXELMAP, pixelMap);
|
||||
thumbCallback(imageKnifeData);
|
||||
|
@ -332,7 +332,7 @@ export class RequestManager {
|
|||
}
|
||||
}})
|
||||
setTimeout(()=>{
|
||||
this.options.transformations[0].transform(source, request, {asyncTransform: (error:BusinessError|string, pixelMap: PixelMap) => {
|
||||
this.options.transformations[0].transform(source, request, {asyncTransform: (error:BusinessError|string, pixelMap: PixelMap|null) => {
|
||||
if (pixelMap) {
|
||||
// 保存一份变换后的图片PixelMap到MemoryCache
|
||||
let imageKnifeData = this.createImagePixelMap(ImageKnifeType.PIXELMAP, pixelMap);
|
||||
|
@ -345,7 +345,7 @@ export class RequestManager {
|
|||
},this.options.thumbDelayTime);
|
||||
}
|
||||
else {
|
||||
this.options.transformations[0].transform(source, request, {asyncTransform: (error:BusinessError|string, pixelMap: PixelMap) => {
|
||||
this.options.transformations[0].transform(source, request, {asyncTransform: (error:BusinessError|string, pixelMap: PixelMap|null) => {
|
||||
if (pixelMap) {
|
||||
// 保存一份变换后的图片PixelMap到MemoryCache
|
||||
let imageKnifeData = this.createImagePixelMap(ImageKnifeType.PIXELMAP, pixelMap);
|
||||
|
@ -473,7 +473,7 @@ export class RequestManager {
|
|||
if (this.options.thumbSizeMultiplier) {
|
||||
this.thumbnailProcess(source, filetype, onComplete, onError);
|
||||
} else {
|
||||
this.options.transformations[0].transform(source, this.options, {asyncTransform: (error:BusinessError|string, pixelMap: PixelMap) => {
|
||||
this.options.transformations[0].transform(source, this.options, {asyncTransform: (error:BusinessError|string, pixelMap: PixelMap|null) => {
|
||||
if (pixelMap) {
|
||||
this.saveCacheAndDisk(pixelMap, filetype, onComplete, source);
|
||||
} else {
|
||||
|
@ -543,7 +543,7 @@ export class RequestManager {
|
|||
})
|
||||
let thumbCallback = this.options.thumbholderOnComplete
|
||||
let thumbError = this.options.thumbholderOnError
|
||||
this.options.transformations[0].transform(source, thumbOption, {asyncTransform: (error:BusinessError|string, pixelMap: PixelMap) => {
|
||||
this.options.transformations[0].transform(source, thumbOption, {asyncTransform: (error:BusinessError|string, pixelMap: PixelMap|null) => {
|
||||
if (pixelMap) {
|
||||
let imageKnifeData = this.createImagePixelMap(ImageKnifeType.PIXELMAP, pixelMap);
|
||||
thumbCallback(imageKnifeData);
|
||||
|
@ -552,7 +552,7 @@ export class RequestManager {
|
|||
}
|
||||
}})
|
||||
setTimeout(() => {
|
||||
this.options.transformations[0].transform(source, this.options,{asyncTransform: (error:BusinessError|string, pixelMap: PixelMap) => {
|
||||
this.options.transformations[0].transform(source, this.options,{asyncTransform: (error:BusinessError|string, pixelMap: PixelMap|null) => {
|
||||
if (pixelMap) {
|
||||
this.saveCacheAndDisk(pixelMap, filetype, onComplete, source);
|
||||
} else {
|
||||
|
|
|
@ -81,7 +81,7 @@ export class BrightnessFilterTransformation implements BaseTransform<PixelMap> {
|
|||
await data.readPixelsToBuffer(bufferData);
|
||||
|
||||
if (request.gpuEnabled) {
|
||||
let filter = new GPUImageBrightnessFilter();
|
||||
let filter:GPUImageBrightnessFilter = new GPUImageBrightnessFilter();
|
||||
filter.setImageData(bufferData, targetWidth, targetHeight);
|
||||
filter.setBrightness(this._mBrightness);
|
||||
let buf = await filter.getPixelMapBuf(0, 0, targetWidth, targetHeight);
|
||||
|
|
|
@ -22,7 +22,7 @@ import { Size } from '../RequestOption'
|
|||
export namespace CalculatePixelUtils {
|
||||
export async function sketch(p: PixelMap, func?: AsyncTransform<PixelMap>) {
|
||||
let imageInfo = await p.getImageInfo();
|
||||
let size = {
|
||||
let size:Size = {
|
||||
width: imageInfo.size.width,
|
||||
height: imageInfo.size.height
|
||||
}
|
||||
|
|
|
@ -38,9 +38,9 @@ export class FileTypeUtil {
|
|||
|
||||
|
||||
getFileType(arraybuffer: ArrayBuffer):string {
|
||||
let fileType = undefined;
|
||||
let fileType:string = '';
|
||||
if (arraybuffer == null || arraybuffer == undefined || arraybuffer.byteLength <= this.READ_MIN_LENGTH) {
|
||||
return undefined;
|
||||
return '';
|
||||
}
|
||||
|
||||
let dataView = new DataView(arraybuffer);
|
||||
|
|
|
@ -67,9 +67,9 @@ export class K2DArray {
|
|||
/**
|
||||
* 获取值
|
||||
*/
|
||||
public getValue(r: number, c: number): number {
|
||||
public getValue(r: number, c: number): number|undefined{
|
||||
if (r < 0 || c < 0 || r >= this.rows || c >= this.columns) {
|
||||
return;
|
||||
return undefined;
|
||||
}
|
||||
return this._2dArray[r][c];
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import type {IParseImage} from '../interface/IParseImage'
|
||||
import {IParseImage} from '../interface/IParseImage'
|
||||
import image from '@ohos.multimedia.image';
|
||||
import { BusinessError } from '@ohos.base'
|
||||
export class ParseImageUtil implements IParseImage<PixelMap> {
|
||||
|
|
|
@ -31,7 +31,7 @@ export namespace pixelUtils {
|
|||
height: imageInfo.size.height
|
||||
}
|
||||
if (!size) {
|
||||
func.asyncTransform("GrayscaleTransformation The image size does not exist.", null)
|
||||
func?.asyncTransform("GrayscaleTransformation The image size does not exist.", null)
|
||||
return;
|
||||
}
|
||||
let targetWidth:number = size.width;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import type { IParseGif } from './IParseGif'
|
||||
import { IParseGif } from './IParseGif'
|
||||
import { Dims, GIFFrame } from './GIFFrame'
|
||||
import { LoadType } from '../../../../../../../GifWorker'
|
||||
import { parseBufferToFrame } from './parse/GIFParse'
|
||||
|
@ -169,7 +169,6 @@ export class GIFParseImpl implements IParseGif {
|
|||
frame['disposalType'] = pages.disposalType[i]
|
||||
let uint8ClampedArray = new Uint8ClampedArray(pages.patch[i])
|
||||
frame['patch'] = uint8ClampedArray
|
||||
pages[i] = new Uint8ClampedArray(0)
|
||||
frame['transparentIndex'] = pages.transparentIndex[i]
|
||||
images.push(frame)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue