HarmonyOS 请问如何计算PackingOption参数中的bufferSize?

使用ImagePacker编码图片,下面是代码:

async process(imageData: image.PixelMap): Promise<ArrayBuffer> {
  let currentTime = systemDateTime.getTime()
  hilog.debug(0x00,"ImageProcessor","PackHandler")
  let imagePacker = image.createImagePacker()
  let packImageByte = await imagePacker.packing(imageData,{
    format:this.params?.isJpg == true ? "image/jpeg" : "image/png" ,
    quality:this.params?.quality !== undefined ? this.params.quality : 100,
  })
  await imagePacker.release()
  hilog.debug(0x00,"ImageProcessor",`PackHandlerDone 耗时:${systemDateTime.getTime() - currentTime}ms`)
return packImageByte
}

但是当图片过大时会提示溢出。经过文档查阅,发现PackingOption中有个参数是bufferSize默认为25M,如果图片过大则会溢出,但是bufferSize应该是编码后文件的大小,但是这个bufferSize应该怎么在编码前获取呢?

阅读 556
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进