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应该怎么在编码前获取呢?

阅读 560
1 个回答