diff --git a/imageknife/src/main/ets/components/imageknife/utils/CalculatePixelUtils.ets b/imageknife/src/main/ets/components/imageknife/utils/CalculatePixelUtils.ets index 119bd3b..f7b25e1 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/CalculatePixelUtils.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/CalculatePixelUtils.ets @@ -17,6 +17,7 @@ import { AsyncTransform } from "../transform/AsyncTransform" import { ColorUtils } from "./ColorUtils" import { GPUImageSketchFilter } from '@ohos/gpu_transform' import image from '@ohos.multimedia.image' +import { Size } from '../RequestOption' export namespace CalculatePixelUtils { export async function sketch(p: PixelMap, func?: AsyncTransform) { @@ -26,16 +27,19 @@ export namespace CalculatePixelUtils { height: imageInfo.size.height } if (!size) { - func.asyncTransform("sketch The image size does not exist.", null) + func?.asyncTransform("sketch The image size does not exist.", null) return; } - let pos, row, col, clr: number; - let width = size.width; - let height = size.height; - var pixEntry: Array = new Array() - var pixSrc: Array = new Array() - var pixNvt: Array = new Array() + let pos: number = 0 + let row: number = 0 + let col: number = 0 + let clr: number = 0 + let width: number = size.width; + let height: number = size.height; + let pixEntry: Array = new Array() + let pixSrc: Array = new Array() + let pixNvt: Array = new Array() let bufferData = new ArrayBuffer(p.getPixelBytesNumber()); await p.readPixelsToBuffer(bufferData); @@ -97,10 +101,32 @@ export namespace CalculatePixelUtils { } } - var gaussGray = (psrc: Array, horz: number, vert: number, + let gaussGray = (psrc: Array, horz: number, vert: number, width: number, height: number): number => { - let dst, src, n_p, n_m, d_p, d_m, bd_p, bd_m, val_p, val_m, initial_p, initial_m: Array; - let i, j, t, k, row, col, terms, std_dev, sp_p_idx, sp_m_idx, vp_idx, vm_idx: number; + let dst: Array; + let src: Array; + let n_p: Array; + let n_m: Array; + let d_p: Array; + let d_m: Array; + let bd_p: Array; + let bd_m: Array; + let val_p: Array; + let val_m: Array; + let initial_p: Array; + let initial_m: Array; + let i: number; + let j: number; + let t: number; + let k: number; + let row: number; + let col: number; + let terms: number; + let std_dev: number; + let sp_p_idx: number; + let sp_m_idx: number; + let vp_idx: number; + let vm_idx: number; let row_stride = width; let max_len = Math.max(width, height); val_p = createIntArray(max_len); @@ -205,7 +231,7 @@ export namespace CalculatePixelUtils { return 0; } - var findConstants = (n_p: Array, n_m: Array, d_p: Array, + let findConstants = (n_p: Array, n_m: Array, d_p: Array, d_m: Array, bd_p: Array , bd_m: Array, std_dev: number) => { let div = Math.sqrt(2 * 3.141593) * std_dev; @@ -217,7 +243,7 @@ export namespace CalculatePixelUtils { let x5 = 3.735 / div; let x6 = -0.6803 / div; let x7 = -0.2598 / div; - let i; + let i: number; n_p[0] = x4 + x6; n_p[1] = (Math.exp(x1) * (x7 * Math.sin(x3) - (x6 + 2 * x4) * Math.cos(x3)) + Math @@ -247,7 +273,11 @@ export namespace CalculatePixelUtils { for (i = 1; i <= 4; i++) { n_m[i] = n_p[i] - d_p[i] * n_p[0]; } - let sum_n_p, sum_n_m, sum_d, a, b: number; + let sum_n_p: number; + let sum_n_m: number; + let sum_d: number; + let a: number; + let b: number; sum_n_p = 0.0; sum_n_m = 0.0; sum_d = 0.0; @@ -264,9 +294,13 @@ export namespace CalculatePixelUtils { } } - var transferGaussPixels = (src1: Array, src2: Array, + let transferGaussPixels = (src1: Array, src2: Array, dest: Array, bytes: number, width: number) => { - let i, j, k, b, sum: number; + let i: number; + let j: number; + let k: number; + let b: number; + let sum: number; let bend = bytes * width; i = j = k = 0; for (b = 0; b < bend; b++) { @@ -281,7 +315,7 @@ export namespace CalculatePixelUtils { export function createIntArray(len: number): Array { let array = new Array(); - for (var index = 0; index < len; index++) { + for (let index = 0; index < len; index++) { array.push(0); } return array; @@ -300,8 +334,8 @@ export namespace CalculatePixelUtils { } export async function sketchGpu(p: PixelMap, func?: AsyncTransform) { - let imageInfo:image.ImageInfo = await p.getImageInfo(); - let size = { + let imageInfo: image.ImageInfo = await p.getImageInfo(); + let size:Size = { width: imageInfo.size.width, height: imageInfo.size.height } @@ -319,7 +353,7 @@ export namespace CalculatePixelUtils { filter.setImageData(bufferData, w, h); filter.getPixelMapBuf(0, 0, w, h).then((buf) => { p.writeBufferToPixels(buf); - if (func!=undefined) { + if (func != undefined) { func.asyncTransform("success", p); } }) diff --git a/imageknife/src/main/ets/components/imageknife/utils/ColorUtils.ets b/imageknife/src/main/ets/components/imageknife/utils/ColorUtils.ets index 0ffc41d..d7fc36e 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/ColorUtils.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/ColorUtils.ets @@ -14,7 +14,7 @@ */ import resourceManager from '@ohos.resourceManager'; import { ImageKnifeGlobal } from '../ImageKnifeGlobal'; -import type {DataCallBack} from "../interface/DataCallBack" +import {DataCallBack} from "../interface/DataCallBack" export namespace ColorUtils { @@ -24,11 +24,11 @@ export namespace ColorUtils { */ export function parseColor(c: string, callback: DataCallBack) { - var reColor = 'sys.color.' + c; + let reColor = 'sys.color.' + c; ((ImageKnifeGlobal.getInstance().getHapContext() as Record).resourceManager as resourceManager.ResourceManager).getString($r(reColor) .id, (err, color) => { if (!err) { - var cos = JSON.stringify(color); + let cos = JSON.stringify(color); callback.callback(cos) } else { callback.callback(err.message) diff --git a/imageknife/src/main/ets/components/imageknife/utils/FileTypeUtil.ets b/imageknife/src/main/ets/components/imageknife/utils/FileTypeUtil.ets index ac87e6f..526d098 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/FileTypeUtil.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/FileTypeUtil.ets @@ -14,8 +14,8 @@ */ import {LogUtil} from '../../imageknife/utils/LogUtil' export class FileTypeUtil { - private map = new Map(); - private READ_MIN_LENGTH; + private map:Map = new Map(); + private READ_MIN_LENGTH:number = 0; private SUPPORT_FORMATS = [ PhotoFormat.jpg, PhotoFormat.png, @@ -45,11 +45,14 @@ export class FileTypeUtil { let dataView = new DataView(arraybuffer); LogUtil.log('dataView +'+this.getDataViewAt(dataView,0)+this.getDataViewAt(dataView,1)) - - for(var [key,value] of this.map){ + let entries: IterableIterator = this.map.entries(); + for (let i = 0; i < this.map.size; i++) { + let entry:Object[] = entries.next().value; + let key = entry[0] as string + let value = entry[1] as string let keySplit = key.split(',') if(keySplit.length == 2){ - let offset = parseInt(keySplit[0]) + let offset = Number(keySplit[0]) let magicStringLength = keySplit[1].length; let readLength = magicStringLength/2; let start = 0; @@ -58,8 +61,6 @@ export class FileTypeUtil { fileMagic+=this.getDataViewAt(dataView,offset+start) start++; } -// LogUtil.log('magic='+fileMagic+' keySplit[1]='+keySplit[1]+' fileMagic == keySplit[1] ='+(fileMagic == keySplit[1])+ -// ' fileMagic type ='+typeof(fileMagic) + ' keySplit[1]='+typeof(keySplit[1])) if(fileMagic == keySplit[1]){ LogUtil.log('匹配到了 fileType='+value) fileType = value @@ -104,9 +105,14 @@ export class FileTypeUtil { } private printMapContent(){ - for(var [key,value] of this.map){ + + let entries: IterableIterator = this.map.entries(); + for (let i = 0; i < this.map.size; i++) { + let entry:Object[] = entries.next().value; + let key = entry[0] as string + let value = entry[1] as string LogUtil.log('key='+key+'---value='+value) - } + } } private initReadMinLength(){ @@ -114,7 +120,7 @@ export class FileTypeUtil { this.map.forEach((value,key,map)=>{ let keySplit = key.split(','); if(keySplit.length == 2){ - let offset = parseInt(keySplit[0]) + let offset = Number(keySplit[0]) let magicStringLength = keySplit[1].length; let tempMax = offset + magicStringLength/2; if(tempMax > max){ diff --git a/imageknife/src/main/ets/components/imageknife/utils/K2DArray.ets b/imageknife/src/main/ets/components/imageknife/utils/K2DArray.ets index 60977ba..dc0f811 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/K2DArray.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/K2DArray.ets @@ -31,7 +31,7 @@ export class K2DArray { if (row < 1) { return; } - for (var i = 0; i < row; i++) { + for (let i = 0; i < row; i++) { this._2dArray.push(new Array()) } } @@ -40,8 +40,8 @@ export class K2DArray { if (c < 1) { return; } - for (var i = 0; i < this._2dArray.length; i++) { - for (var j = 0; j < c; j++) { + for (let i = 0; i < this._2dArray.length; i++) { + for (let j = 0; j < c; j++) { this._2dArray[i].push(value); } } @@ -57,7 +57,7 @@ export class K2DArray { /** * 获取数组 */ - public getColumnsArray(r: number): Array{ + public getColumnsArray(r: number): Array|null{ if (r < 0 || r >= this.rows) { return null; } diff --git a/imageknife/src/main/ets/components/imageknife/utils/LogUtil.ets b/imageknife/src/main/ets/components/imageknife/utils/LogUtil.ets index 27ff820..cf7e066 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/LogUtil.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/LogUtil.ets @@ -22,32 +22,32 @@ export class LogUtil { public static ALL: number = 7 public static mLogLevel:number = LogUtil.OFF; - public static debug(message: string, ...args: any[]) { + public static debug(message: string, ...args: Object[]) { if (LogUtil.mLogLevel >= LogUtil.DEBUG) { console.debug(message, args) } } - public static info(message: string, ...args: any[]) { + public static info(message: string, ...args: Object[]) { if (LogUtil.mLogLevel >= LogUtil.INFO) { console.info(message, args) } } - public static log(message: string, ...args: any[]) { + public static log(message: string, ...args: Object[]) { if (LogUtil.mLogLevel >= LogUtil.LOG) { console.log(message, args) } } - public static warn(message: string, ...args: any[]) { + public static warn(message: string, ...args: Object[]) { if (LogUtil.mLogLevel >= LogUtil.WARN) { console.warn(message, args) } } // error 不做拦截 - public static error(message: string, ...args: any[]) { + public static error(message: string, ...args: Object[]) { if(LogUtil.mLogLevel >= LogUtil.ERROR) { console.error(message, args) } diff --git a/imageknife/src/main/ets/components/imageknife/utils/MaskUtils.ets b/imageknife/src/main/ets/components/imageknife/utils/MaskUtils.ets index e8beed6..c8a9a78 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/MaskUtils.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/MaskUtils.ets @@ -16,11 +16,12 @@ import {PixelEntry} from "../entry/PixelEntry" import {AsyncTransform} from "../transform/AsyncTransform" import {ColorUtils} from "./ColorUtils" import {CalculatePixelUtils} from "./CalculatePixelUtils" +import {Size} from '../RequestOption' export class MaskUtils { - static async mask(bitmap: any, maskBitmap: any, func?: AsyncTransform) { + static async mask(bitmap: PixelMap, maskBitmap: PixelMap, func?: AsyncTransform) { let imageInfo = await bitmap.getImageInfo(); - let size = { + let size:Size = { width: imageInfo.size.width, height: imageInfo.size.height } @@ -62,7 +63,7 @@ export class MaskUtils { let imageInfoMask = await maskBitmap.getImageInfo(); - let sizeMask = { + let sizeMask:Size = { width: imageInfoMask.size.width, height: imageInfoMask.size.height } @@ -137,8 +138,8 @@ export class MaskUtils { index++; } await maskBitmap.writeBufferToPixels(bufferNewData); - if (func) { - func("", maskBitmap); + if (func != undefined) { + func?.asyncTransform("", maskBitmap); } } } \ No newline at end of file diff --git a/imageknife/src/main/ets/components/imageknife/utils/ParseImageUtil.ets b/imageknife/src/main/ets/components/imageknife/utils/ParseImageUtil.ets index 5c6953e..ea51f37 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/ParseImageUtil.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/ParseImageUtil.ets @@ -31,9 +31,9 @@ export class ParseImageUtil implements IParseImage { } let hValue = Math.round(value.size.height * scale); let wValue = Math.round(value.size.width * scale); - let defaultSize = { - 'height': hValue, - 'width': wValue + let defaultSize:image.Size = { + height: hValue, + width: wValue }; let opts:image.DecodingOptions = { diff --git a/imageknife/src/main/ets/components/imageknife/utils/PixelUtils.ets b/imageknife/src/main/ets/components/imageknife/utils/PixelUtils.ets index 65d5da6..e9e468a 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/PixelUtils.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/PixelUtils.ets @@ -37,7 +37,7 @@ export namespace pixelUtils { let targetWidth:number = size.width; let targetHeight:number = size.height; - var pixEntry: Array = new Array() + let pixEntry: Array = new Array() let inPixels: Array> = CalculatePixelUtils.createInt2DArray(targetHeight, targetWidth); let bufferData = new ArrayBuffer(bitmap.getPixelBytesNumber()); @@ -71,13 +71,13 @@ export namespace pixelUtils { } } - var realPixel_W = pixel > targetWidth ? targetWidth : pixel; - var realPixel_H = pixel > targetHeight ? targetHeight : pixel; + let realPixel_W = pixel > targetWidth ? targetWidth : pixel; + let realPixel_H = pixel > targetHeight ? targetHeight : pixel; //横排的正方形个数 - var x_index = Math.floor(targetWidth / realPixel_W); + let x_index = Math.floor(targetWidth / realPixel_W); //纵排的正方形个数 - var y_index = Math.floor(targetHeight / realPixel_H); + let y_index = Math.floor(targetHeight / realPixel_H); for (let ch = 0; ch < y_index; ch++) { for (let cw = 0; cw < x_index; cw++) { @@ -132,9 +132,9 @@ export namespace pixelUtils { func?.asyncTransform("success", bitmap); } } - export async function pixelGPU(bitmap: any, pixel: number, func?: AsyncTransform) { + export async function pixelGPU(bitmap: PixelMap, pixel: number, func?: AsyncTransform) { - let imageInfo = await bitmap.getImageInfo(); + let imageInfo:image.ImageInfo = await bitmap.getImageInfo(); let size:Size = { width: imageInfo.size.width, height: imageInfo.size.height diff --git a/imageknife/src/main/ets/components/imageknife/utils/gif/GIFFrame.ts b/imageknife/src/main/ets/components/imageknife/utils/gif/GIFFrame.ts index dd753bb..394c313 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/gif/GIFFrame.ts +++ b/imageknife/src/main/ets/components/imageknife/utils/gif/GIFFrame.ts @@ -12,15 +12,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import image from '@ohos.multimedia.image'; +export interface Dims{ + width: number; + height: number; + top: number; + left: number +} export class GIFFrame { // 显示帧 width 宽 height 高 top上边距 left左边距 - dims: { - width: number; - height: number; - top: number; - left: number - } + dims: Dims // 当前帧的像素数据指向的颜色数组 只为了生成patch,非必要 colorTable?: [number, number, number][] @@ -35,7 +37,7 @@ export class GIFFrame { patch?: Uint8ClampedArray // drawPixelMap 如果像素转换为PixelMap后使用PixelMap展示, patch和drawPixelMap 2选1 - drawPixelMap? + drawPixelMap?:image.PixelMap // 当前帧每个像素的颜色表查找索引 只为了生成patch,非必要 pixels?: number[] diff --git a/imageknife/src/main/ets/components/imageknife/utils/gif/GIFParseImpl.ets b/imageknife/src/main/ets/components/imageknife/utils/gif/GIFParseImpl.ets index bf2b01d..68cb0be 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/gif/GIFParseImpl.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/gif/GIFParseImpl.ets @@ -13,21 +13,33 @@ * limitations under the License. */ import type { IParseGif } from './IParseGif' -import { GIFFrame } from './GIFFrame' +import { Dims, GIFFrame } from './GIFFrame' import { LoadType } from '../../../../../../../GifWorker' import { parseBufferToFrame } from './parse/GIFParse' import { LogUtil } from '../../utils/LogUtil' import image from '@ohos.multimedia.image' import { ImageKnifeGlobal } from '../../ImageKnifeGlobal' import { BusinessError } from '@ohos.base' -import worker from '@ohos.worker'; +import worker, { ErrorEvent, MessageEvents } from '@ohos.worker'; +export interface senderData{ + type:string, + data:ArrayBuffer; +} + +export interface gifBackData{ + dims:Dims[], + delay:number[], + disposalType:number[], + patch:Uint8ClampedArray[], + transparentIndex:number[] +} export class GIFParseImpl implements IParseGif { parseGifs(imageinfo: ArrayBuffer, callback: (data?:GIFFrame[], err?:BusinessError|string) => void, worker?:worker.ThreadWorker,runMainThread?:boolean) { let resolveWorker = worker; LogUtil.log('parseGifs resolveWorker1 is null =' + (resolveWorker == null)) - if (!resolveWorker) { - resolveWorker = ImageKnifeGlobal.getInstance().getImageKnife().getGifWorker(); + if (!resolveWorker && ImageKnifeGlobal.getInstance().getImageKnife() != undefined) { + resolveWorker = ImageKnifeGlobal.getInstance().getImageKnife()?.getGifWorker(); } LogUtil.log('parseGifs resolveWorker2 is null =' + (resolveWorker == null)) @@ -38,18 +50,22 @@ export class GIFParseImpl implements IParseGif { if (err) { callback(undefined, err) } else { - this.createPixelMapAll(data).then((pixelmaps) => { - if (pixelmaps.length == data.length) { - for (let i = 0;i < data.length; i++) { - let frame = data[i]; - frame['drawPixelMap'] = pixelmaps[i]; - frame['patch'] = null; + if (data != undefined) { + this.createPixelMapAll(data).then((pixelmaps) => { + if (pixelmaps.length == data.length) { + for (let i = 0;i < data.length; i++) { + let frame = data[i]; + frame['drawPixelMap'] = pixelmaps[i]; + frame['patch'] = undefined; + } + callback(data, undefined) } - callback(data, undefined) - } - }).catch(err => { - callback(undefined, err) - }) + }).catch((err: BusinessError) => { + callback(undefined, err) + }) + }else{ + callback(undefined, 'GIF Parse Error callback data is undefined') + } } }) } else { @@ -61,55 +77,58 @@ export class GIFParseImpl implements IParseGif { for (let i = 0;i < frames.length; i++) { let frame = frames[i]; frame['drawPixelMap'] = pixelmaps[i]; - frame['patch'] = null; + frame['patch'] = undefined; } LogUtil.log('parseGifs in main thread! callback is done!') callback(frames, undefined) } - }).catch(err => { + }).catch((err:BusinessError) => { LogUtil.log('parseGifs in main thread! err =' + err) callback(undefined, err) }) } } - private createPixelMapAll(frames): Promise { - let promises = [] - let filterCriteria = (item) => { + private createPixelMapAll(frames:GIFFrame[]): Promise { + let promises:Promise[] = new Array(); + let filterCriteria = (item:GIFFrame) => { if (!item['drawPixelMap']) { return true; } + return false; } - frames.filter(filterCriteria, frames).flatMap((frame) => { - promises.push(image.createPixelMap(frame.patch.buffer, { - 'size': { - 'height': frame.dims.height as number, - 'width': frame.dims.width as number - } - })) + frames.filter(filterCriteria, frames).flatMap((frame:GIFFrame) => { + if(frame.patch != undefined) { + promises.push(image.createPixelMap(frame.patch.buffer, { + 'size': { + 'height': frame.dims.height as number, + 'width': frame.dims.width as number + } + })) + } }) - return Promise.all(promises) + return Promise.all(promises) } - private useWorkerParse(worker: any, buffer: ArrayBuffer, callback: (data?, err?) => void) { + private useWorkerParse(worker:worker.ThreadWorker, buffer: ArrayBuffer, callback: (data?:GIFFrame[], err?:BusinessError|string) => void) { - worker.onerror = function (data) { - callback(undefined, data) + worker.onerror = (err:ErrorEvent)=>{ + callback(undefined, err) } - worker.onmessageerror = function (event) { + worker.onmessageerror = (event: MessageEvents) => { callback(undefined, event) } - worker.onexit = function () { + worker.onexit = ()=> { LogUtil.log('gifWork worker.onexit!') } - worker.onmessage = (e) => { - var data = e.data; - switch (data.type) { + worker.onmessage = (e: MessageEvents) => { + let data:Record = e.data; + switch (data.type as string) { case LoadType.loadBufferByWorker: - let pages = data.data; + let pages:gifBackData = (data.data as gifBackData); if (this.gifDecodeCorrect(pages)) { let images = this.recDecodedData(pages); callback(images, undefined) @@ -122,12 +141,12 @@ export class GIFParseImpl implements IParseGif { } } - var obj = { type: LoadType.loadBufferByWorker, data: buffer } + let obj:senderData = { type: LoadType.loadBufferByWorker, data: buffer } worker.postMessage(obj, [buffer]) } - private gifDecodeCorrect(frames) { + private gifDecodeCorrect(frames:gifBackData) { if ( (frames.patch.length == frames.dims.length) && (frames.patch.length == frames.delay.length) && @@ -141,24 +160,19 @@ export class GIFParseImpl implements IParseGif { } // 子线程数据回传处理 - private recDecodedData(pages): GIFFrame[] { - let images = [] + private recDecodedData(pages:gifBackData): GIFFrame[] { + let images:GIFFrame[] = new Array() for (let i = 0; i < pages.patch.length; i++) { - let frame = {} + let frame = new GIFFrame(); frame['dims'] = pages.dims[i] - pages.dims[i] = null frame['delay'] = pages.delay[i] - pages.delay[i] = null frame['disposalType'] = pages.disposalType[i] - pages.disposalType[i] = null let uint8ClampedArray = new Uint8ClampedArray(pages.patch[i]) frame['patch'] = uint8ClampedArray - pages.patch[i] = null + pages[i] = new Uint8ClampedArray(0) frame['transparentIndex'] = pages.transparentIndex[i] - pages.transparentIndex[i] = null images.push(frame) } - pages = null return images; } } \ No newline at end of file diff --git a/imageknife/src/main/ets/components/imageknife/utils/svg/IParseSvg.ets b/imageknife/src/main/ets/components/imageknife/utils/svg/IParseSvg.ets index 116281f..2daae68 100644 --- a/imageknife/src/main/ets/components/imageknife/utils/svg/IParseSvg.ets +++ b/imageknife/src/main/ets/components/imageknife/utils/svg/IParseSvg.ets @@ -12,7 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import {Size} from '../../RequestOption' export interface IParseSvg { // 解析svg - parseSvg(imageinfo: ArrayBuffer,size?:{width:number,height:number}): Promise + parseSvg:(imageinfo: ArrayBuffer,size?:Size)=> Promise } \ No newline at end of file