HarmonyOS 鸿蒙Next 保存图片到相册怎么做
HarmonyOS 鸿蒙Next 保存图片到相册怎么做
1,鸿蒙保存图片到相册怎么做
2,需要申请什么权限
10 回复
可以使用三方库eftool,里面提供了保存相册的工具类
里面保存使用的是@ohos.file.photoAccessHelper 还是要申请权限
可以考虑使用SaveButton保存图片到相册,不需要权限只需要用户手动点击下载。
参考:https://developer.huawei.com/consumer/cn/blog/topic/03157306639465048
这个我看了,是不是只能在saveButton里面使用,我试过不用saveButton,还是要权限
可以参考下这篇博文:
HarmonyOS Next 屏幕截图 + 保存图片到系统相册 代码分享
https://developer.huawei.com/consumer/cn/blog/topic/03166979994620019
这篇文章使用的是showAssetsCreationDialog 这个弹框不支持显示略缩图 看起来不太好看 还有什么别的方法可以不申请权限保存到相册嘛 我需要自定义样式 不能使用SaveButton
要自定义样式的话目前没有其它方法
屏幕截图不太行,万一是长图呢
在HarmonyOS鸿蒙Next中保存图片到相册,可以通过以下步骤实现:
- 获取图片数据:首先,你需要获取要保存的图片数据。这可能来自网络请求、屏幕截图或应用内部资源。
- 转换图片格式:如果图片数据不是直接可用的格式(如ArrayBuffer),你需要将其转换为适合保存的格式。例如,可以使用
image.createImagePacker
和packing
方法将PixelMap转换为ArrayBuffer。 - 使用相册管理API:HarmonyOS提供了相册管理API(如
photoAccessHelper
),你可以使用这些API将图片保存到相册。具体地,你需要创建PhotoCreationConfig
对象来配置图片信息(如文件名、类型等),然后调用showAssetsCreationDialog
方法显示保存对话框并保存图片。
示例代码如下:
// 假设你已经有了图片的ArrayBuffer数据(imageBuffer)和文件名(fileName)
let context = getContext(this) as common.UIAbilityContext;
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
let srcFileUri = [fileUri.getUriFromPath(yourImagePath)]; // yourImagePath是图片在沙箱中的路径
let photoCreationConfigs = [{
title: fileName,
fileNameExtension: 'jpg',
photoType: photoAccessHelper.PhotoType.IMAGE,
subtype: photoAccessHelper.PhotoSubtype.DEFAULT
}];
phAccessHelper.showAssetsCreationDialog(srcFileUri, photoCreationConfigs).then(desFileUris => {
console.log('图片已保存到相册', desFileUris);
});
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。