HarmonyOS 保存到图库时,报错Internal error

HarmonyOS
2024-12-27 17:48:09
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
aquaa

可参考以下demo:

//保存至相册
async WritePhoto() {
  let context = getContext(this);
  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
  let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
  let extension:string = 'png';
  let options: photoAccessHelper.CreateOptions = {
    title: 'testPhoto'
  }
  let uri = await phAccessHelper.createAsset(photoType, extension, options);
  // 使用uri打开文件,可以持续写入内容,写入过程不受时间限制
  let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  try {
    const imageBuffer = await this.packingPixelMap2Jpg(this.selectedImgPixelMap as image.PixelMap)
    // 写到媒体库文件中
    await fs.write(file.fd, imageBuffer);
    await fs.close(file.fd);
    promptAction.showToast({
      message: '保存至相册成功',
      duration: 2500
    });
  }
  catch (err) {
    console.error("error is "+ JSON.stringify(err))
  }
}

// 打包 PixelMap 为 jpg 格式
async packingPixelMap2Jpg(pixelMap: PixelMap): Promise<ArrayBuffer> {
  // 创建ImagePacker实例
  const imagePackerApi = image.createImagePacker();
  // 设置打包参数
  // format:图片打包格式,只支持 jpg 和 webp
  // quality:JPEG 编码输出图片质量
  // bufferSize:图片大小,默认 10M
  const packOpts: image.PackingOption = { format: "image/jpeg", quality: 100 };
  let imageBuffer: ArrayBuffer = new ArrayBuffer(1);
  try {
  // 图片压缩或重新打包
  imageBuffer = await imagePackerApi.packing(pixelMap, packOpts);
} catch (err) {
  console.error(Invoke packingPixelMap2Jpg failed, err: ${JSON.stringify(err)});
}
return imageBuffer;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
分享
微博
QQ
微信
回复
2024-12-27 19:36:57


相关问题
HarmonyOS PhotoViewPicker 保存到图库
1438浏览 • 1回复 待解决
把应用沙箱下的图片保存到图库
1921浏览 • 1回复 待解决
HarmonyOS 图片保存到相册报错
695浏览 • 1回复 待解决
HarmonyOS 保存到相册报错13900012
785浏览 • 1回复 待解决
HarmonyOS 图片保存到相册
408浏览 • 1回复 待解决
HarmonyOS 保存网络图片,图库更新
732浏览 • 1回复 待解决
HarmonyOS 保存网络图片至图库问题
657浏览 • 1回复 待解决
HarmonyOS 保存网络图片到手机图库
363浏览 • 1回复 待解决
HarmonyOS 如何将图片保存到相册
438浏览 • 1回复 待解决