1.完善错误日志
2.修复部分imagesource没有release的问题 Signed-off-by: madixin <madixin@huawei.com>
This commit is contained in:
parent
30c327747b
commit
5296bf7a1d
|
@ -1,7 +1,8 @@
|
|||
## 3.2.0
|
||||
## 3.2.0-rc.3
|
||||
- Fix bug: PixelMap size exceeds the maximum value of memory cache and is not cached
|
||||
- Dealing with exception scenarios where imageSource.getImageInfo return undefined
|
||||
- Fix inability to parse Resource format images of other modules
|
||||
- Improve the error logs
|
||||
|
||||
## 3.2.0-rc.2
|
||||
- Added callback information for image loading
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"main": "index.ets",
|
||||
"repository": "https://gitee.com/openharmony-tpc/ImageKnife",
|
||||
"type": "module",
|
||||
"version": "3.2.0",
|
||||
"version": "3.2.0-rc.3",
|
||||
"dependencies": {
|
||||
"@ohos/gpu_transform": "^1.0.2"
|
||||
},
|
||||
|
|
|
@ -339,7 +339,7 @@ export class ImageKnifeDispatcher {
|
|||
|
||||
let pixelmap = requestJobResult.pixelMap;
|
||||
if (pixelmap === undefined) {
|
||||
LogUtil.log('ImageKnife_DataTime_getAndShowImage_CallBack.pixelmap undefined:'+currentRequest.imageKnifeOption.loadSrc)
|
||||
LogUtil.error('ImageKnife_DataTime_getAndShowImage_CallBack.pixelmap undefined:'+currentRequest.imageKnifeOption.loadSrc + " error: " + requestJobResult.loadFail)
|
||||
requestList.forEach((requestWithSource: ImageKnifeRequestWithSource) => {
|
||||
// 回调请求失败
|
||||
if (requestWithSource.source === ImageKnifeRequestSource.SRC &&
|
||||
|
|
|
@ -125,7 +125,8 @@ export class ImageKnifeLoader {
|
|||
|
||||
let imageInfoSync = imageSource.getImageInfoSync()
|
||||
if (imageInfoSync == undefined){
|
||||
ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource")
|
||||
imageSource.release()
|
||||
ImageKnifeLoader.makeEmptyResult(request, 'getImageInfoSync failed')
|
||||
return
|
||||
}
|
||||
let size = imageInfoSync.size
|
||||
|
@ -138,7 +139,8 @@ export class ImageKnifeLoader {
|
|||
ImageKnifeLoader.getDownsamplerDecodingOptions(typeValue, request, size, ImageKnifeRequestSource.SRC)
|
||||
}
|
||||
} catch (err) {
|
||||
ImageKnifeLoader.makeEmptyResult(request, err)
|
||||
imageSource.release()
|
||||
ImageKnifeLoader.makeEmptyResult(request, 'getDownsamplerDecodingOptions failed:' + err)
|
||||
return
|
||||
}
|
||||
timeInfo.decodeStartTime = Date.now();
|
||||
|
@ -151,7 +153,8 @@ export class ImageKnifeLoader {
|
|||
}).catch((error: BusinessError) => {
|
||||
timeInfo.decodeEndTime = Date.now();
|
||||
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
|
||||
})
|
||||
if (request.requestSource === ImageKnifeRequestSource.SRC && request.transformation !== undefined && resPixelmap !== undefined) {
|
||||
|
@ -162,11 +165,11 @@ export class ImageKnifeLoader {
|
|||
try {
|
||||
resPixelmap?.setTransferDetached(true)
|
||||
} catch (e) {
|
||||
LogUtil.error('PixelMap setTransferDetached err:'+JSON.stringify(e))
|
||||
LogUtil.error('PixelMap setTransferDetached failed:' + JSON.stringify(e))
|
||||
}
|
||||
|
||||
//获取各个pixelMap的大小
|
||||
if (resPixelmap && typeof resPixelmap !== 'string') {
|
||||
if (resPixelmap !== undefined) {
|
||||
let decodeImages: DecodeImageInfo[] = [];
|
||||
let size = (resPixelmap as PixelMap).getImageInfoSync().size;
|
||||
let decodeImage: DecodeImageInfo = {
|
||||
|
@ -201,7 +204,8 @@ export class ImageKnifeLoader {
|
|||
|
||||
let imageInfoSync = imageSource.getImageInfoSync()
|
||||
if (imageInfoSync == undefined){
|
||||
ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource")
|
||||
imageSource.release()
|
||||
ImageKnifeLoader.makeEmptyResult(request, 'getImageInfoSync failed')
|
||||
return
|
||||
}
|
||||
let size = imageInfoSync.size
|
||||
|
@ -224,7 +228,8 @@ export class ImageKnifeLoader {
|
|||
opts = ImageKnifeLoader.getDownsamplerDecodingOptions(typeValue, request, size)
|
||||
}
|
||||
} catch (err) {
|
||||
ImageKnifeLoader.makeEmptyResult(request,err)
|
||||
imageSource.release()
|
||||
ImageKnifeLoader.makeEmptyResult(request,'getDownsamplerDecodingOptions failed:' + err)
|
||||
return
|
||||
}
|
||||
timeInfo.decodeStartTime = Date.now();
|
||||
|
@ -236,12 +241,12 @@ export class ImageKnifeLoader {
|
|||
try {
|
||||
resPixelmap.setTransferDetached(true)
|
||||
} catch (e) {
|
||||
LogUtil.error('PixelMap setTransferDetached err:'+JSON.stringify(e))
|
||||
LogUtil.error('PixelMap setTransferDetached failed:' + JSON.stringify(e))
|
||||
}
|
||||
}).catch((error: BusinessError) => {
|
||||
timeInfo.decodeEndTime = Date.now();
|
||||
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
|
||||
})
|
||||
|
||||
|
@ -276,8 +281,9 @@ export class ImageKnifeLoader {
|
|||
|
||||
let frameCount = await imageSource.getFrameCount()
|
||||
let imageInfoSync = imageSource.getImageInfoSync()
|
||||
imageSource.release()
|
||||
if (imageInfoSync == undefined){
|
||||
ImageKnifeLoader.makeEmptyResult(request, "Fail to get image info of imageSource")
|
||||
ImageKnifeLoader.makeEmptyResult(request, 'getImageInfoSync failed')
|
||||
return
|
||||
}
|
||||
let size = imageInfoSync.size
|
||||
|
@ -285,8 +291,6 @@ export class ImageKnifeLoader {
|
|||
callBackData.imageWidth = size.width;
|
||||
callBackData.imageHeight = size.height;
|
||||
|
||||
imageSource.release()
|
||||
|
||||
if(frameCount == undefined || frameCount == 1) {
|
||||
} else {
|
||||
timeInfo.decodeStartTime = Date.now()
|
||||
|
@ -318,8 +322,15 @@ export class ImageKnifeLoader {
|
|||
let decodingOptions: image.DecodingOptions = {
|
||||
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 delayList: Array<number> = []
|
||||
timeInfo.decodeStartTime = Date.now();
|
||||
|
@ -351,7 +362,8 @@ export class ImageKnifeLoader {
|
|||
}).catch((error: BusinessError) => {
|
||||
imageSource.release()
|
||||
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
|
||||
})
|
||||
callBackData.decodeImages = decodeImages;
|
||||
|
@ -366,7 +378,7 @@ export class ImageKnifeLoader {
|
|||
}
|
||||
emitter.emit(Constants.CALLBACK_EMITTER + request.memoryKey, { data: { 'value': res } })
|
||||
} 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){
|
||||
|
|
Loading…
Reference in New Issue