HarmonyOS 鸿蒙Next 如何把本地图片保存到文件管理中

HarmonyOS 鸿蒙Next 如何把本地图片保存到文件管理中 如何把本地图片保存到文件管理中,目前没有写入的权限吗?

4 回复
saveImage() {
  //文件保存路径
  let uri = '';
  try {
    let PhotoSaveOptions = new picker.PhotoSaveOptions();
    PhotoSaveOptions.newFileNames = ['test.png']; //保存图片默认名称
    let photoPicker = new picker.PhotoViewPicker();
    //调起系统的图片保存功能
    photoPicker.save(PhotoSaveOptions).then((PhotoSaveResult) => {
      uri = PhotoSaveResult[0];
      //获取图片的base64字符串
      let imageStr = this.context.toDataURL().split(',')[1];
      //打开文件
      let file = fs.openSync(uri, fs.OpenMode.READ_WRITE);
      //base64字符串转成buffer
      const decodeBuffer = buffer.from(imageStr, 'base64').buffer;
      //写入文件
      fs.writeSync(file.fd, decodeBuffer);
      //关闭文件
      fs.closeSync(file);
    }).catch((err: Error) => {
      console.error(err + '');
    })
  } catch (e) {
    console.error(e);
  }
}

更多关于HarmonyOS 鸿蒙Next 如何把本地图片保存到文件管理中的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


姓名

张三

职位

软件工程师

基本信息

  • 所在地:北京市
  • 工作年限:5年
  • 毕业院校:清华大学

项目经验

项目一

  • 负责模块:前端开发
  • 时间:2020.01 - 2021.01
  • 简介:该项目旨在提升现有系统的用户体验,通过优化界面布局和交互逻辑,使用户操作更加便捷。

项目二

  • 负责模块:后端开发
  • 时间:2021.02 - 2022.02
  • 简介:该项目涉及构建一个分布式系统,用于处理大量数据的实时分析。主要负责设计并实现数据处理的核心算法。

@State toDataURL: string = “”

this.toDataURL = this.context.toDataURL(“image/png”, 0.92)

在HarmonyOS(鸿蒙)系统中,将本地图片保存到文件管理中的操作通常涉及到访问存储权限和使用文件操作API。以下是一个基本的实现思路:

  1. 申请存储权限:首先,你的应用需要申请存储权限。这可以通过在config.json文件中声明必要的权限来实现。例如,添加读写外部存储的权限声明。

  2. 选择图片:通常,你会先让用户从相册或相机中选择一张图片。这可以通过调用系统的图片选择器接口来完成。

  3. 获取图片路径:选中图片后,你需要获取该图片的本地路径。这通常是由图片选择器返回的。

  4. 保存图片到指定目录:使用鸿蒙提供的文件操作API,将图片文件复制到或移动到你想保存的位置。这通常涉及到打开源文件和目标文件流,然后进行数据读写操作。

  5. 通知用户:保存完成后,可以通过Toast或其他UI组件通知用户图片已保存成功。

请注意,具体实现细节可能会因鸿蒙系统的版本和API的更新而有所变化。如果你在实现过程中遇到特定的问题,比如权限申请失败、文件操作异常等,需要查阅最新的鸿蒙开发文档或API参考。

如果问题依旧没法解决请联系官网客服, 官网地址是

回到顶部