1.ArkTs整改8 整改imageknife->holder/interface/部分utils

Signed-off-by: zhoulisheng1 <zhoulisheng1@huawei.com>
This commit is contained in:
zhoulisheng1 2023-09-19 10:57:52 +08:00
parent 50116741ea
commit af84eb8ab4
9 changed files with 66 additions and 62 deletions

View File

@ -370,7 +370,7 @@ export class RequestOption {
}
// 占位图解析成功
placeholderOnComplete(imageKnifeData: ImageKnifeData) {
placeholderOnComplete = (imageKnifeData: ImageKnifeData)=> {
LogUtil.log("placeholderOnComplete has called!");
LogUtil.log("Main Image is Ready:" + this.loadMainReady);
if (!this.loadMainReady && !(this.loadErrorReady || this.loadRetryReady) && !this.loadThumbnailReady) {
@ -380,7 +380,7 @@ export class RequestOption {
}
// 占位图解析失败
placeholderOnError(error) {
placeholderOnError = (error)=>{
LogUtil.log("占位图解析失败 error =" + error)
}
@ -399,7 +399,7 @@ export class RequestOption {
}
// 加载失败 占位图解析成功
errorholderOnComplete(imageKnifeData: ImageKnifeData) {
errorholderOnComplete = (imageKnifeData: ImageKnifeData)=> {
// 如果有错误占位图 先解析并保存在RequestOption中 等到加载失败时候进行调用
this.errorholderData = imageKnifeData;
if (this.loadErrorReady) {
@ -408,18 +408,18 @@ export class RequestOption {
}
//加载失败 占位图解析失败
errorholderOnError(error) {
errorholderOnError = (error)=> {
LogUtil.log("失败占位图解析失败 error =" + error)
}
retryholderOnComplete(imageKnifeData: ImageKnifeData) {
retryholderOnComplete = (imageKnifeData: ImageKnifeData)=>{
this.retryholderData = imageKnifeData;
if (this.loadRetryReady) {
this.retryholderFunc.asyncSuccess(imageKnifeData)
}
}
retryholderOnError(error) {
retryholderOnError = (error)=>{
LogUtil.log("重试占位图解析失败 error =" + error)
}

View File

@ -18,12 +18,13 @@ import { FileTypeUtil } from '../../imageknife/utils/FileTypeUtil'
import { ImageKnifeData, ImageKnifeType } from '../ImageKnifeData'
import { ParseImageUtil } from '../utils/ParseImageUtil'
import { SupportFormat } from '../utils/FileTypeUtil'
import { SVGParseImpl } from '../utils/svg/SVGParseImpl'
import { SVGParseImpl,Size } from '../utils/svg/SVGParseImpl'
import { ParseResClient } from '../resourcemanage/ParseResClient'
import {LogUtil} from '../../imageknife/utils/LogUtil'
import image from '@ohos.multimedia.image'
import { BusinessError } from '@ohos.base'
export class ErrorHolderManager {
export class ErrorHolderManager<T> {
private options: RequestOption;
constructor(option: RequestOption) {
@ -31,16 +32,16 @@ export class ErrorHolderManager {
}
static execute(option: RequestOption) {
let manager = new ErrorHolderManager(option);
return new Promise(manager.process.bind(manager))
.then(option.errorholderOnComplete.bind(option)).catch(option.errorholderOnError.bind(option));
let manager:ErrorHolderManager<ImageKnifeData> = new ErrorHolderManager<ImageKnifeData>(option);
return new Promise(manager.process)
.then(option.errorholderOnComplete).catch(option.errorholderOnError);
}
process(onComplete, onError) {
process = (onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void)=>{
this.displayErrorholder(onComplete, onError);
}
private displayErrorholder(onComplete, onError) {
private displayErrorholder(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void) {
LogUtil.log("displayErrorholder")
if ((typeof (this.options.errorholderSrc as image.PixelMap).isEditable) == 'boolean') {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, this.options.errorholderSrc as PixelMap)
@ -51,9 +52,9 @@ export class ErrorHolderManager {
let res = this.options.errorholderSrc as Resource;
if (typeof res.id != 'undefined' && typeof res.id != 'undefined') {
let resourceFetch = new ParseResClient();
let suc = (arraybuffer) => {
let fileTypeUtil = new FileTypeUtil();
let typeValue = fileTypeUtil.getFileType(arraybuffer);
let suc = (arraybuffer:ArrayBuffer) => {
let fileTypeUtil:FileTypeUtil = new FileTypeUtil();
let typeValue:string = fileTypeUtil.getFileType(arraybuffer);
switch (typeValue) {
case SupportFormat.svg:
this.svgProcess(onComplete, onError, arraybuffer, typeValue)
@ -78,18 +79,18 @@ export class ErrorHolderManager {
}
}
private svgProcess(onComplete, onError, arraybuffer, typeValue) {
let svgParseImpl = new SVGParseImpl()
let size = { width: this.options.size.width, height: this.options.size.height }
private svgProcess(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void, arraybuffer:ArrayBuffer, typeValue:string) {
let svgParseImpl:SVGParseImpl = new SVGParseImpl()
let size:Size = { width: this.options.size.width, height: this.options.size.height }
svgParseImpl.parseSvg(arraybuffer, size).then((value: PixelMap) => {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, value)
onComplete(imageKnifeData)
}).catch(err => {
}).catch((err:BusinessError) => {
onError(err)
})
}
private mediaImageProcess(onComplete, onError, arraybuffer, typeValue) {
private mediaImageProcess(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void, arraybuffer:ArrayBuffer, typeValue:string) {
let parseImageUtil = new ParseImageUtil()
let success = (value: PixelMap) => {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, value)

View File

@ -20,12 +20,12 @@ import {ImageKnifeData,ImageKnifeType} from "../ImageKnifeData"
import {ParseImageUtil} from '../utils/ParseImageUtil'
import {ParseResClient} from '../resourcemanage/ParseResClient'
import { SupportFormat } from '../utils/FileTypeUtil'
import { SVGParseImpl } from '../utils/svg/SVGParseImpl'
import { SVGParseImpl,Size} from '../utils/svg/SVGParseImpl'
import {LogUtil} from '../../imageknife/utils/LogUtil'
import resourceManager from '@ohos.resourceManager';
import image from "@ohos.multimedia.image"
export class PlaceHolderManager {
import { BusinessError } from '@ohos.base'
export class PlaceHolderManager<T> {
private options: RequestOption;
constructor(option: RequestOption) {
@ -33,16 +33,16 @@ export class PlaceHolderManager {
}
static execute(option: RequestOption) {
let manager = new PlaceHolderManager(option);
return new Promise(manager.process.bind(manager))
.then(option.placeholderOnComplete.bind(option)).catch(option.placeholderOnError.bind(option));
let manager:PlaceHolderManager<ImageKnifeData> = new PlaceHolderManager<ImageKnifeData>(option);
return new Promise(manager.process)
.then(option.placeholderOnComplete).catch(option.placeholderOnError);
}
process(onComplete, onError) {
process = (onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void)=>{
this.displayPlaceholder(onComplete, onError);
}
private displayPlaceholder(onComplete, onError) {
private displayPlaceholder(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void){
LogUtil.log("displayPlaceholder")
if ((typeof (this.options.placeholderSrc as image.PixelMap).isEditable) == 'boolean') {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, this.options.placeholderSrc as PixelMap)
@ -53,7 +53,7 @@ export class PlaceHolderManager {
let res = this.options.placeholderSrc as Resource;
if (typeof res.id != 'undefined' && typeof res.id != 'undefined') {
let resourceFetch = new ParseResClient();
let suc = (arraybuffer) => {
let suc = (arraybuffer:ArrayBuffer) => {
let fileTypeUtil = new FileTypeUtil();
let typeValue = fileTypeUtil.getFileType(arraybuffer);
switch (typeValue) {
@ -82,19 +82,19 @@ export class PlaceHolderManager {
private svgProcess(onComplete, onError, arraybuffer, typeValue) {
let svgParseImpl = new SVGParseImpl()
let size = { width: this.options.size.width, height: this.options.size.height }
private svgProcess(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void, arraybuffer:ArrayBuffer, typeValue:string) {
let svgParseImpl:SVGParseImpl = new SVGParseImpl()
let size:Size = { width: this.options.size.width, height: this.options.size.height }
svgParseImpl.parseSvg(arraybuffer, size).then((value: PixelMap) => {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, value)
onComplete(imageKnifeData)
}).catch(err => {
}).catch((err:BusinessError) => {
onError(err)
})
}
private mediaImageProcess(onComplete, onError, arraybuffer, typeValue) {
let parseImageUtil = new ParseImageUtil()
private mediaImageProcess(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void, arraybuffer:ArrayBuffer, typeValue:string) {
let parseImageUtil:ParseImageUtil = new ParseImageUtil()
let success = (value: PixelMap) => {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, value)
onComplete(imageKnifeData)

View File

@ -20,12 +20,12 @@ import {ImageKnifeData,ImageKnifeType} from "../ImageKnifeData"
import {ParseImageUtil} from '../utils/ParseImageUtil'
import {ParseResClient} from '../resourcemanage/ParseResClient'
import { SupportFormat } from '../utils/FileTypeUtil'
import { SVGParseImpl } from '../utils/svg/SVGParseImpl'
import { SVGParseImpl,Size } from '../utils/svg/SVGParseImpl'
import {LogUtil} from '../../imageknife/utils/LogUtil'
import resourceManager from '@ohos.resourceManager';
import image from "@ohos.multimedia.image"
export class RetryHolderManager {
import { BusinessError } from '@ohos.base'
export class RetryHolderManager<T> {
private options: RequestOption;
constructor(option: RequestOption) {
@ -33,16 +33,16 @@ export class RetryHolderManager {
}
static execute(option: RequestOption) {
let manager = new RetryHolderManager(option);
return new Promise(manager.process.bind(manager))
.then(option.retryholderOnComplete.bind(option)).catch(option.retryholderOnError.bind(option));
let manager:RetryHolderManager<ImageKnifeData> = new RetryHolderManager<ImageKnifeData>(option);
return new Promise(manager.process)
.then(option.retryholderOnComplete).catch(option.retryholderOnError);
}
process(onComplete, onError) {
process = (onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void)=>{
this.displayRetryholder(onComplete, onError);
}
private displayRetryholder(onComplete, onError) {
private displayRetryholder(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void){
LogUtil.log("displayRetryholder")
if ((typeof (this.options.retryholderSrc as image.PixelMap).isEditable) == 'boolean') {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, this.options.placeholderSrc as PixelMap)
@ -53,7 +53,7 @@ export class RetryHolderManager {
let res = this.options.retryholderSrc as Resource;
if (typeof res.id != 'undefined' && typeof res.id != 'undefined') {
let resourceFetch = new ParseResClient();
let suc = (arraybuffer) => {
let suc = (arraybuffer:ArrayBuffer) => {
let fileTypeUtil = new FileTypeUtil();
let typeValue = fileTypeUtil.getFileType(arraybuffer);
switch (typeValue) {
@ -82,18 +82,18 @@ export class RetryHolderManager {
private svgProcess(onComplete, onError, arraybuffer, typeValue) {
private svgProcess(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void, arraybuffer:ArrayBuffer, typeValue:string) {
let svgParseImpl = new SVGParseImpl()
let size = { width: this.options.size.width, height: this.options.size.height }
let size:Size = { width: this.options.size.width, height: this.options.size.height }
svgParseImpl.parseSvg(arraybuffer, size).then((value: PixelMap) => {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, value)
onComplete(imageKnifeData)
}).catch(err => {
}).catch( (err:BusinessError) => {
onError(err)
})
}
private mediaImageProcess(onComplete, onError, arraybuffer, typeValue) {
private mediaImageProcess(onComplete:(value:ImageKnifeData)=>void|PromiseLike<ImageKnifeData>, onError:(reason?:BusinessError|string)=>void, arraybuffer:ArrayBuffer, typeValue:string) {
let parseImageUtil = new ParseImageUtil()
let success = (value: PixelMap) => {
let imageKnifeData = ImageKnifeData.createImagePixelMap(ImageKnifeType.PIXELMAP, value)

View File

@ -26,7 +26,7 @@ export interface DataCacheInfo{
path: string,
key: string
}
export class AllCacheInfo {
export interface AllCacheInfo {
memoryCacheInfo: MemoryCacheInfo
resourceCacheInfo: ResourceCacheInfo
dataCacheInfo: DataCacheInfo

View File

@ -12,8 +12,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export interface IParseImage {
parseImage(imageinfo:ArrayBuffer, onCompleteFunction, onErrorFunction);
parseImageThumbnail(scale:number, imageinfo:ArrayBuffer, onCompleteFunction, onErrorFunction);
import { BusinessError } from '@ohos.base'
export interface IParseImage<T> {
parseImage:(imageinfo:ArrayBuffer, onCompleteFunction:(value:T)=>void | PromiseLike<T>, onErrorFunction:(reason?:BusinessError|string)=>void)=>void;
parseImageThumbnail:(scale:number, imageinfo:ArrayBuffer, onCompleteFunction:(value:T)=>void | PromiseLike<T>, onErrorFunction:(reason?:BusinessError|string)=>void)=>void;
}

View File

@ -37,7 +37,7 @@ export class FileTypeUtil {
getFileType(arraybuffer: ArrayBuffer) {
getFileType(arraybuffer: ArrayBuffer):string {
let fileType = undefined;
if (arraybuffer == null || arraybuffer == undefined || arraybuffer.byteLength <= this.READ_MIN_LENGTH) {
return undefined;

View File

@ -15,15 +15,15 @@
import type {IParseImage} from '../interface/IParseImage'
import image from '@ohos.multimedia.image';
export class ParseImageUtil implements IParseImage {
parseImage(imageinfo: ArrayBuffer, onCompleteFunction, onErrorFunction) {
import { BusinessError } from '@ohos.base'
export class ParseImageUtil implements IParseImage<PixelMap> {
parseImage(imageinfo: ArrayBuffer, onCompleteFunction:(value:PixelMap)=>void | PromiseLike<PixelMap>, onErrorFunction:(reason?:BusinessError|string)=>void) {
this.parseImageThumbnail(1, imageinfo, onCompleteFunction, onErrorFunction)
}
// scale(0,1)
parseImageThumbnail(scale: number, imageinfo: ArrayBuffer, onCompleteFunction, onErrorFunction) {
let imageSource = image.createImageSource(imageinfo as any); // 步骤一文件转为pixelMap 然后变换 给Image组件
parseImageThumbnail(scale: number, imageinfo: ArrayBuffer, onCompleteFunction:(value:PixelMap)=>void | PromiseLike<PixelMap>, onErrorFunction:(reason?:BusinessError|string)=>void) {
let imageSource:image.ImageSource = image.createImageSource(imageinfo); // 步骤一文件转为pixelMap 然后变换 给Image组件
imageSource.getImageInfo((err, value) => {
if (err) {
onErrorFunction(err);
@ -36,7 +36,7 @@ export class ParseImageUtil implements IParseImage {
'width': wValue
};
let opts = {
let opts:image.DecodingOptions = {
editable: true,
desiredSize: defaultSize
};

View File

@ -14,8 +14,11 @@
*/
import type {IParseSvg} from'./IParseSvg'
import {SVGImageView} from '@ohos/svg'
export interface Size{
width:number,height:number
}
export class SVGParseImpl implements IParseSvg{
parseSvg(imageinfo: ArrayBuffer,size?:{width:number,height:number}): Promise<PixelMap>{
parseSvg(imageinfo: ArrayBuffer,size?:Size): Promise<PixelMap>{
let model = new SVGImageView.SVGImageViewModel();
return model.getSVGPixelMap(new Uint8Array(imageinfo),size);
}