HarmonyOS 如何转base64?

目前原生使用image组件可以正常加载pixelMap,但是现在需要把显示的pixelMap资源转成base64后传给前端,前端进行解码后显示图片,pixelMap如何转base64?

阅读 538
1 个回答

参考示例如下:

async getImageBase64WithPixelMap(pixelMap:PixelMap): Promise<string> {
  const imagePackerApi = image.createImagePacker();
  // 设置打包参数
  // format:当前仅支持打包为JPEG、WebP 和 png 格式
  // quality:JPEG 编码输出图片质量
  // bufferSize:图片大小,默认 10M
  const packOpts: image.PackingOption = { format: "image/jpeg", quality: 100 };
  let imageBuffer: ArrayBuffer = new ArrayBuffer(1);
  let resultBase64Str = ''
  try {
  // 图片压缩或重新打包
  imageBuffer = await imagePackerApi.packing(pixelMap, packOpts);
  let base64Str = buffer.from(imageBuffer).toString('base64')
  resultBase64Str="data:image/jpeg;base64,"+base64Str

} catch (err) {
  console.error(`Invoke getImageArrayBufferWithUri failed, err: ${JSON.stringify(err)}`);
}
  return resultBase64Str;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进