|
|
@ -125,7 +125,8 @@ export class ImageKnifeLoader {
|
|
|
|
|
|
|
|
|
|
|
|
let imageInfoSync = imageSource.getImageInfoSync()
|
|
|
|
let imageInfoSync = imageSource.getImageInfoSync()
|
|
|
|
if (imageInfoSync == undefined){
|
|
|
|
if (imageInfoSync == undefined){
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource")
|
|
|
|
imageSource.release()
|
|
|
|
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, 'getImageInfoSync failed')
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let size = imageInfoSync.size
|
|
|
|
let size = imageInfoSync.size
|
|
|
@ -138,7 +139,8 @@ export class ImageKnifeLoader {
|
|
|
|
ImageKnifeLoader.getDownsamplerDecodingOptions(typeValue, request, size, ImageKnifeRequestSource.SRC)
|
|
|
|
ImageKnifeLoader.getDownsamplerDecodingOptions(typeValue, request, size, ImageKnifeRequestSource.SRC)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (err) {
|
|
|
|
} catch (err) {
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, err)
|
|
|
|
imageSource.release()
|
|
|
|
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, 'getDownsamplerDecodingOptions failed:' + err)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
timeInfo.decodeStartTime = Date.now();
|
|
|
|
timeInfo.decodeStartTime = Date.now();
|
|
|
@ -151,7 +153,8 @@ export class ImageKnifeLoader {
|
|
|
|
}).catch((error: BusinessError) => {
|
|
|
|
}).catch((error: BusinessError) => {
|
|
|
|
timeInfo.decodeEndTime = Date.now();
|
|
|
|
timeInfo.decodeEndTime = Date.now();
|
|
|
|
imageSource.release()
|
|
|
|
imageSource.release()
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,JSON.stringify(error), ImageKnifeLoader.assembleError(callBackData, LoadPhase.PHASE_CREATE_PIXEL_MAP, LoadPixelMapCode.IMAGE_DECODE_ERROR_CODE))
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, 'createPixelMap failed:' + JSON.stringify(error),
|
|
|
|
|
|
|
|
ImageKnifeLoader.assembleError(callBackData, LoadPhase.PHASE_CREATE_PIXEL_MAP, LoadPixelMapCode.IMAGE_DECODE_ERROR_CODE))
|
|
|
|
return
|
|
|
|
return
|
|
|
|
})
|
|
|
|
})
|
|
|
|
if (request.requestSource === ImageKnifeRequestSource.SRC && request.transformation !== undefined && resPixelmap !== undefined) {
|
|
|
|
if (request.requestSource === ImageKnifeRequestSource.SRC && request.transformation !== undefined && resPixelmap !== undefined) {
|
|
|
@ -162,11 +165,11 @@ export class ImageKnifeLoader {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
resPixelmap?.setTransferDetached(true)
|
|
|
|
resPixelmap?.setTransferDetached(true)
|
|
|
|
} catch (e) {
|
|
|
|
} catch (e) {
|
|
|
|
LogUtil.error('PixelMap setTransferDetached err:'+JSON.stringify(e))
|
|
|
|
LogUtil.error('PixelMap setTransferDetached failed:' + JSON.stringify(e))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取各个pixelMap的大小
|
|
|
|
//获取各个pixelMap的大小
|
|
|
|
if (resPixelmap && typeof resPixelmap !== 'string') {
|
|
|
|
if (resPixelmap !== undefined) {
|
|
|
|
let decodeImages: DecodeImageInfo[] = [];
|
|
|
|
let decodeImages: DecodeImageInfo[] = [];
|
|
|
|
let size = (resPixelmap as PixelMap).getImageInfoSync().size;
|
|
|
|
let size = (resPixelmap as PixelMap).getImageInfoSync().size;
|
|
|
|
let decodeImage: DecodeImageInfo = {
|
|
|
|
let decodeImage: DecodeImageInfo = {
|
|
|
@ -201,7 +204,8 @@ export class ImageKnifeLoader {
|
|
|
|
|
|
|
|
|
|
|
|
let imageInfoSync = imageSource.getImageInfoSync()
|
|
|
|
let imageInfoSync = imageSource.getImageInfoSync()
|
|
|
|
if (imageInfoSync == undefined){
|
|
|
|
if (imageInfoSync == undefined){
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource")
|
|
|
|
imageSource.release()
|
|
|
|
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, 'getImageInfoSync failed')
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let size = imageInfoSync.size
|
|
|
|
let size = imageInfoSync.size
|
|
|
@ -224,7 +228,8 @@ export class ImageKnifeLoader {
|
|
|
|
opts = ImageKnifeLoader.getDownsamplerDecodingOptions(typeValue, request, size)
|
|
|
|
opts = ImageKnifeLoader.getDownsamplerDecodingOptions(typeValue, request, size)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (err) {
|
|
|
|
} catch (err) {
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,err)
|
|
|
|
imageSource.release()
|
|
|
|
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,'getDownsamplerDecodingOptions failed:' + err)
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
timeInfo.decodeStartTime = Date.now();
|
|
|
|
timeInfo.decodeStartTime = Date.now();
|
|
|
@ -236,12 +241,12 @@ export class ImageKnifeLoader {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
resPixelmap.setTransferDetached(true)
|
|
|
|
resPixelmap.setTransferDetached(true)
|
|
|
|
} catch (e) {
|
|
|
|
} catch (e) {
|
|
|
|
LogUtil.error('PixelMap setTransferDetached err:'+JSON.stringify(e))
|
|
|
|
LogUtil.error('PixelMap setTransferDetached failed:' + JSON.stringify(e))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).catch((error: BusinessError) => {
|
|
|
|
}).catch((error: BusinessError) => {
|
|
|
|
timeInfo.decodeEndTime = Date.now();
|
|
|
|
timeInfo.decodeEndTime = Date.now();
|
|
|
|
imageSource.release()
|
|
|
|
imageSource.release()
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,JSON.stringify(error), ImageKnifeLoader.assembleError(callBackData, LoadPhase.PHASE_CREATE_PIXEL_MAP, LoadPixelMapCode.IMAGE_DECODE_ERROR_CODE))
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,'getImageInfoSync failed:' + JSON.stringify(error), ImageKnifeLoader.assembleError(callBackData, LoadPhase.PHASE_CREATE_PIXEL_MAP, LoadPixelMapCode.IMAGE_DECODE_ERROR_CODE))
|
|
|
|
return
|
|
|
|
return
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
@ -276,8 +281,9 @@ export class ImageKnifeLoader {
|
|
|
|
|
|
|
|
|
|
|
|
let frameCount = await imageSource.getFrameCount()
|
|
|
|
let frameCount = await imageSource.getFrameCount()
|
|
|
|
let imageInfoSync = imageSource.getImageInfoSync()
|
|
|
|
let imageInfoSync = imageSource.getImageInfoSync()
|
|
|
|
|
|
|
|
imageSource.release()
|
|
|
|
if (imageInfoSync == undefined){
|
|
|
|
if (imageInfoSync == undefined){
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource")
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, 'getImageInfoSync failed')
|
|
|
|
return
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let size = imageInfoSync.size
|
|
|
|
let size = imageInfoSync.size
|
|
|
@ -285,8 +291,6 @@ export class ImageKnifeLoader {
|
|
|
|
callBackData.imageWidth = size.width;
|
|
|
|
callBackData.imageWidth = size.width;
|
|
|
|
callBackData.imageHeight = size.height;
|
|
|
|
callBackData.imageHeight = size.height;
|
|
|
|
|
|
|
|
|
|
|
|
imageSource.release()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(frameCount == undefined || frameCount == 1) {
|
|
|
|
if(frameCount == undefined || frameCount == 1) {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
timeInfo.decodeStartTime = Date.now()
|
|
|
|
timeInfo.decodeStartTime = Date.now()
|
|
|
@ -318,8 +322,15 @@ export class ImageKnifeLoader {
|
|
|
|
let decodingOptions: image.DecodingOptions = {
|
|
|
|
let decodingOptions: image.DecodingOptions = {
|
|
|
|
editable: request.requestSource === ImageKnifeRequestSource.SRC && request.transformation !== undefined ? true : false,
|
|
|
|
editable: request.requestSource === ImageKnifeRequestSource.SRC && request.transformation !== undefined ? true : false,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
callBackData.imageWidth = imageSource.getImageInfoSync().size.width;
|
|
|
|
|
|
|
|
callBackData.imageHeight = imageSource.getImageInfoSync().size.height;
|
|
|
|
let imageInfoSync = imageSource.getImageInfoSync()
|
|
|
|
|
|
|
|
if (imageInfoSync == undefined){
|
|
|
|
|
|
|
|
imageSource.release()
|
|
|
|
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request, 'getImageInfoSync failed')
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
callBackData.imageWidth = imageInfoSync.size.width;
|
|
|
|
|
|
|
|
callBackData.imageHeight = imageInfoSync.size.height;
|
|
|
|
let pixelMapList: Array<PixelMap> = []
|
|
|
|
let pixelMapList: Array<PixelMap> = []
|
|
|
|
let delayList: Array<number> = []
|
|
|
|
let delayList: Array<number> = []
|
|
|
|
timeInfo.decodeStartTime = Date.now();
|
|
|
|
timeInfo.decodeStartTime = Date.now();
|
|
|
@ -351,7 +362,8 @@ export class ImageKnifeLoader {
|
|
|
|
}).catch((error: BusinessError) => {
|
|
|
|
}).catch((error: BusinessError) => {
|
|
|
|
imageSource.release()
|
|
|
|
imageSource.release()
|
|
|
|
timeInfo.decodeEndTime = Date.now();
|
|
|
|
timeInfo.decodeEndTime = Date.now();
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,JSON.stringify(error), ImageKnifeLoader.assembleError(callBackData,LoadPhase.PHASE_CREATE_PIXEL_MAP,LoadPixelMapCode.IMAGE_DECODE_ERROR_CODE))
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,'createPixelMapList failed:' + JSON.stringify(error),
|
|
|
|
|
|
|
|
ImageKnifeLoader.assembleError(callBackData,LoadPhase.PHASE_CREATE_PIXEL_MAP,LoadPixelMapCode.IMAGE_DECODE_ERROR_CODE))
|
|
|
|
return
|
|
|
|
return
|
|
|
|
})
|
|
|
|
})
|
|
|
|
callBackData.decodeImages = decodeImages;
|
|
|
|
callBackData.decodeImages = decodeImages;
|
|
|
@ -366,7 +378,7 @@ export class ImageKnifeLoader {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
emitter.emit(Constants.CALLBACK_EMITTER + request.memoryKey, { data: { 'value': res } })
|
|
|
|
emitter.emit(Constants.CALLBACK_EMITTER + request.memoryKey, { data: { 'value': res } })
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,'ImageKnifeAnimatorComponent组件仅支持动态图', ImageKnifeLoader.assembleError(callBackData,LoadPhase.PHASE_PARSE_IAMGE,LoadPixelMapCode.IMAGE_FORMAT_ERROR_CODE))
|
|
|
|
ImageKnifeLoader.makeEmptyResult(request,'ImageKnifeAnimatorComponent not support format', ImageKnifeLoader.assembleError(callBackData,LoadPhase.PHASE_PARSE_IAMGE,LoadPixelMapCode.IMAGE_FORMAT_ERROR_CODE))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
static getHeaderObj(request:RequestJobRequest){
|
|
|
|
static getHeaderObj(request:RequestJobRequest){
|
|
|
|