求大佬告知如何保存图片到相册

​我们浏览应用时保存图片到手机这种场景是比较常见的,选择器(Picker)是一个封装PhotoViewPicker、DocumentViewPicker、AudioViewPicker等系统应用选择与保存能力的模块。应用可以自行选择使用哪种picker实现文件选择和文件保存的功能。

HarmonyOS
2024-05-28 20:16:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
江湖骗子嗷

接下来的示例是将应用内图片保存到图库。

1、引入photoAccessHelper

import photoAccessHelper from '@ohos.file.photoAccessHelper';

2、展示图片

Image($r('app.media.icon')) 
  .height(300) 
  .width(300)

3、设置点击事件

 SaveButton().onClick(async (_event: ClickEvent, result: SaveButtonOnClickResult) => { 
          if (result == SaveButtonOnClickResult.SUCCESS) { 
            try { 
              const context = getContext(this); 
              let helper = photoAccessHelper.getPhotoAccessHelper(context); 
              // onClick触发后5秒内通过createAsset接口创建图片文件,5秒后createAsset权限收回。 
              let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg'); 
              // 使用uri打开文件,可以持续写入内容,写入过程不受时间限制 
              let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 
              try { 
                context.resourceManager.getMediaContent($r('app.media.startIcon').id, 0) 
                  .then(async value => { 
                    let media = value.buffer; 
                    // 写到媒体库文件中 
                    await fs.write(file.fd, media); 
                    await fs.close(file.fd); 
                    AlertDialog.show({message:'已保存至相册!'}); 
                  }); 
              } 
              catch (err) { 
                console.error("error is "+ JSON.stringify(err)) 
              } 
            } catch (error) { 
              console.error("error is "+ JSON.stringify(error)); 
            } 
          } 
          else { 
            AlertDialog.show({ message: "设置权限失败" }) 
          } 
        })

4、其中需要在module.json5添加权限

 "requestPermissions": [ { 
      "name": "\ohos.permission.WRITE_IMAGEVIDEO" 
    }]

这样就可以实现将图片保存到相册

适配版本信息

· IDE:DevEco Studio 4.0.3.600

·SDK:HarmoneyOS 4.0.0.42

分享
微博
QQ
微信
回复1
2024-05-29 21:15:42
相关问题
大佬告知如何保存cookie
2317浏览 • 2回复 待解决
大佬告知怎么保存webview
1506浏览 • 1回复 待解决
大佬告知如何导出图片
1494浏览 • 1回复 待解决
如何保存网络图片相册
636浏览 • 1回复 待解决
HarmonyOS 保存图片相册问题
114浏览 • 1回复 待解决
如何保存本地图片相册
916浏览 • 1回复 待解决
大佬告知如何模拟按键?
200浏览 • 1回复 待解决
HarmonyOS 保存图片相册权限问题
119浏览 • 1回复 待解决
大佬告知如何实现联合类型?
600浏览 • 1回复 待解决
大佬告知如何引用HSP库
1987浏览 • 1回复 待解决
大佬告知webview如何设置UA
789浏览 • 1回复 待解决
大佬告知如何卸载debug包
567浏览 • 1回复 待解决
大佬告知如何得到线程ID
1524浏览 • 1回复 待解决
大佬告知如何切换横竖屏
1968浏览 • 1回复 待解决
大佬告知如何遍历JSON对象
231浏览 • 1回复 待解决
大佬告知如何设置包名
372浏览 • 1回复 待解决
大佬告知如何屏蔽触摸事件
623浏览 • 1回复 待解决
大佬告知通用组件如何打包
529浏览 • 1回复 待解决
大佬告知依赖包如何使用?
789浏览 • 1回复 待解决
大佬告知如何判断当前版本
1688浏览 • 1回复 待解决
大佬告知如何上架分发
250浏览 • 1回复 待解决
大佬告知如何实现复制功能
1697浏览 • 1回复 待解决
大佬告知如何实现录音监听
1832浏览 • 1回复 待解决
大佬告知如何定位混淆问题
385浏览 • 1回复 待解决
大佬告知如何实现复制功能?
139浏览 • 1回复 待解决