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