HarmonyOS鸿蒙Next中调用相册管理API,创建并保存图片至相册失败,查看图片是空白

HarmonyOS鸿蒙Next中调用相册管理API,创建并保存图片至相册失败,查看图片是空白 调用相册管理api,创建并保存图片至相册失败,查看图片是空白

export async function saveImage(imageArrayBuf: ArrayBuffer): Promise<boolean | undefined> {
  try {
    const context = GlobalContext.getContext()
      .getObject('context') as common.UIAbilityContext; 
    const helper = photoAccessHelper.getPhotoAccessHelper(context);
    const uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg'); 
    const file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    await fs.write(file.fd, imageArrayBuf);
    await fs.close(file.fd);
  } catch (err) {
    logger.error(`AccessSync failed with error message: ${err.message}, error code: ${err.code}`);
    return Promise.reject()
  }
  return Promise.resolve(true)
}

更多关于HarmonyOS鸿蒙Next中调用相册管理API,创建并保存图片至相册失败,查看图片是空白的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

可以参考下这篇博文:

HarmonyOS Next 屏幕截图 + 保存图片到系统相册 代码分享

https://developer.huawei.com/consumer/cn/blog/topic/03166979994620019

更多关于HarmonyOS鸿蒙Next中调用相册管理API,创建并保存图片至相册失败,查看图片是空白的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


保存本地图片到相册的方法:

先申请以下权限: ohos.permission.INTERNET ohos.permission.WRITE_IMAGEVIDEO 其中ohos.permission.WRITE_IMAGEVIDEO需要向用户申请授权,可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-V5

let context: Context = getContext(this);
// 获取待保存图像的ArrayBuffer
const resourceMgr: resourceManager.ResourceManager = context.resourceManager;
const fileData: Uint8Array = await resourceMgr.getRawFileContent('beer.jpeg');
const buffer = fileData.buffer;
// 获取相册的保存路径
let helper = photoAccessHelper.getPhotoAccessHelper(context);
let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpeg');
let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
// 写入文件并关闭文件流
await fs.write(file.fd, buffer);
await fs.close(file.fd);

在HarmonyOS鸿蒙Next中调用相册管理API创建并保存图片至相册失败,且查看图片为空白,可能的原因包括以下几个方面:

  1. 权限问题:确保应用已获取必要的权限,如ohos.permission.READ_MEDIAohos.permission.WRITE_MEDIA。未正确配置权限可能导致无法保存图片或保存的图片无法正常显示。

  2. 文件路径问题:检查保存图片的文件路径是否正确。如果路径无效或文件未正确写入,保存的图片可能会显示为空白。

  3. 图片数据问题:确认要保存的图片数据是否正确生成或加载。如果图片数据为空或损坏,保存的图片将显示为空白。

  4. API调用问题:检查相册管理API的调用是否正确,包括参数传递和返回值处理。错误的API调用可能导致图片保存失败。

  5. 相册同步问题:保存图片后,相册可能未及时同步更新,导致图片显示为空白。可以尝试手动刷新相册或重启设备。

  6. 系统缓存问题:系统缓存可能导致保存的图片无法立即显示。可以尝试清除相册缓存或重新启动应用。

以上是可能导致图片保存失败并显示为空白的常见原因,建议逐一排查以定位问题。

在HarmonyOS鸿蒙Next中调用相册管理API创建并保存图片至相册时,出现空白图片的问题,可能由以下原因导致:

  1. 权限问题:确保应用已获取读写外部存储的权限。
  2. 文件路径错误:检查保存路径是否正确,确保路径存在且可写。
  3. 图片数据问题:确认图片数据在保存前是否正确生成或加载。
  4. API调用错误:检查API调用逻辑,确保参数传递正确。

建议逐一排查以上问题,并参考官方文档进行调试。

回到顶部