HarmonyOS鸿蒙Next中如何把图片保存到相册
HarmonyOS鸿蒙Next中如何把图片保存到相册 当前需要把 base64 图片保存到系统相册
当前困难影响:
-
savebutton 样式比较丑,且不能改变样式,不符合实际样式需求
-
如果通过 PhotoViewPicker 保存到公共目录 download/document 的话,在文件管理中可以找到对应图片,但相册中无法找到对应图片
可以先把base64转成文件流,然后使用@ohos.file.fs的fs.write方法先把图片写到自己的项目目录里面,然后在使用@ohos.file.picker读取目录里面的图片,保存到用户手机上。
使用多媒体和文件管理模块,创建文件后写入数据以保存图片,可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-image-V5
更多关于HarmonyOS鸿蒙Next中如何把图片保存到相册的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,将图片保存到相册可以通过PhotoAccessHelper
模块实现。首先,需要获取PhotoAccessHelper
的实例,然后通过createAsset
方法创建图片资源。具体步骤如下:
-
获取PhotoAccessHelper实例:使用
PhotoAccessHelper.getPhotoAccessHelper(context)
方法获取实例。 -
创建图片资源:使用
PhotoAccessHelper.createAsset
方法,传入图片的URI或文件路径,创建图片资源。 -
保存到相册:通过
PhotoAccessHelper.insertAssets
方法将创建的图片资源插入到相册中。
示例代码如下:
import photoAccessHelper from '@ohos.file.photoAccessHelper';
async function saveImageToAlbum(context, imageUri) {
try {
const photoHelper = photoAccessHelper.getPhotoAccessHelper(context);
const imageAsset = await photoHelper.createAsset(imageUri);
await photoHelper.insertAssets([imageAsset]);
} catch (error) {
console.error('Failed to save image to album:', error);
}
}
在上述代码中,context
是应用的上下文,imageUri
是图片的URI或文件路径。通过调用saveImageToAlbum
函数,可以将指定图片保存到相册中。
在HarmonyOS鸿蒙Next中,可以使用PhotoAccessHelper
类将图片保存到相册。首先,获取PhotoAccessHelper
实例,然后通过createAsset
方法创建图片资源,并指定保存路径。示例代码如下:
PhotoAccessHelper photoAccessHelper = PhotoAccessHelper.getInstance(context);
PhotoAsset asset = photoAccessHelper.createAsset("image/jpeg", "Pictures/MyAlbum");
OutputStream outputStream = photoAccessHelper.openOutputStream(asset);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
outputStream.close();
确保在manifest.json
中声明必要的权限,如ohos.permission.WRITE_IMAGE
。