HarmonyOS 保存图片文件异常

按如下代码,测试保存图片文件到相册功能,图片文件保存到相册后,为空图像,没有任何内容;代码如下所示:

let path: string = FileUtils.getInstance().getFileDir() + '/test.jpg'; 
let descriptor: resourceManager.RawFileDescriptor = getContext(this).resourceManager.getRawFdSync('test.jpg'); 
fs.copyFileSync(descriptor.fd, path); 
console.log('copy file success'); 
 
console.log(`file path" ${path}`) 
if (!fs.accessSync(path)) { 
  console.error(`当前图片不存在, 图片路径 ${path}`); 
  return; 
} 
let res: number = await AlbumsUtils.getInstance().requireWritePermissionFromUser(); 
if (res === 0) { 
  // 授权成功 
  AlbumsUtils.getInstance().savePhotoToAlbums(path, 'jpg'); 
} 
})

​其中,保存文件到相册的功能代码,详见附件。

test.jpg 在 rawfile 下,并将其 copy 到沙箱文件路径下,沙箱文件路。径:/data/storage/el2/base/haps/entry/files/test.jpg

addResource 输入参数 fileUri 为: file://com.example.kdforharmonyos/data/storage/el2/base/haps/entry/files/test.jpg

同时,现有条件下,无法确定复制到沙箱中的图片文件是正确的,请告知如何将文件正确地从 rawfile 下复制到沙箱路径中,或直接将 rawfile 下的文件保存到相册中。

HarmonyOS
5天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

​保存到相册 先申请以下权限: ohos.permission.WRITE_IMAGEVIDEO 其中ohos.permission.WRITE_IMAGEVIDEO需要向用户申请授权,可参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-V5

示例代码:​

import abilityAccessCtrl, { Context, PermissionRequestResult } from '@ohos.abilityAccessCtrl'; 
import { BusinessError } from '@ohos.base'; 
import common from '@ohos.app.ability.common'; 
 
async saveClick() { 
  try { 
    let context: Context = getContext(this); 
 
    const resourceMgr: resourceManager.ResourceManager = context.resourceManager; 
    const fileData: Uint8Array = await resourceMgr.getRawFileContent('fish_bg.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); 
  } catch (e) { 
    console.log('error----', JSON.stringify(e)) 
  } 
}
分享
微博
QQ
微信
回复
5天前
相关问题
PixelMap怎么保存图片文件
290浏览 • 1回复 待解决
HarmonyOS图片保存相册问题
322浏览 • 1回复 待解决
如何将像素点保存图片文件
2202浏览 • 1回复 待解决
HarmonyOS 图片exif信息获取异常
299浏览 • 2回复 待解决
HarmonyOS 保存图片到相册问题
65浏览 • 1回复 待解决
HarmonyOS 相册保存图片设置title报错
262浏览 • 1回复 待解决
HarmonyOS 保存网络图片,图库更新
168浏览 • 1回复 待解决
HarmonyOS 保存图片到相册权限问题
90浏览 • 1回复 待解决
HarmonyOS Web组件加载html文件异常
364浏览 • 1回复 待解决
HarmonyOS保存图片到系统相册问题咨询
508浏览 • 1回复 待解决
HarmonyOS 保存网络图片至图库问题
81浏览 • 1回复 待解决
通过saveDocument()接口保存文件
259浏览 • 1回复 待解决
HarmonyOS如何把图片保存到手机相册
371浏览 • 1回复 待解决
使用SaveButton保存图片的方式
471浏览 • 1回复 待解决
如何保存网络图片到相册
629浏览 • 1回复 待解决
HarmonyOS如何拦截Alt+F4实现文件保存
442浏览 • 1回复 待解决
获取网络图片保存到相册
1234浏览 • 1回复 待解决