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
|
- Fix bug: PixelMap size exceeds the maximum value of memory cache and is not cached
|
||||||
- Dealing with exception scenarios where imageSource.getImageInfo return undefined
|
- Dealing with exception scenarios where imageSource.getImageInfo return undefined
|
||||||
- Fix inability to parse Resource format images of other modules
|
- Fix inability to parse Resource format images of other modules
|
||||||
|
- Improve the error logs
|
||||||
|
|
||||||
## 3.2.0-rc.2
|
## 3.2.0-rc.2
|
||||||
- Added callback information for image loading
|
- Added callback information for image loading
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
"main": "index.ets",
|
"main": "index.ets",
|
||||||
"repository": "https://gitee.com/openharmony-tpc/ImageKnife",
|
"repository": "https://gitee.com/openharmony-tpc/ImageKnife",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "3.2.0",
|
"version": "3.2.0-rc.3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ohos/gpu_transform": "^1.0.2"
|
"@ohos/gpu_transform": "^1.0.2"
|
||||||
},
|
},
|
||||||
|
|
|
@ -339,7 +339,7 @@ export class ImageKnifeDispatcher {
|
||||||
|
|
||||||
let pixelmap = requestJobResult.pixelMap;
|
let pixelmap = requestJobResult.pixelMap;
|
||||||
if (pixelmap === undefined) {
|
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) => {
|
requestList.forEach((requestWithSource: ImageKnifeRequestWithSource) => {
|
||||||
// 回调请求失败
|
// 回调请求失败
|
||||||
if (requestWithSource.source === ImageKnifeRequestSource.SRC &&
|
if (requestWithSource.source === ImageKnifeRequestSource.SRC &&
|
||||||
|
|
|
@ -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){
|
||||||
|
|
Loading…
Reference in New Issue