HarmonyOS鸿蒙Next中图片的base64字符串如何转成图片并存到相册里面
HarmonyOS鸿蒙Next中图片的base64字符串如何转成图片并存到相册里面 大家知道图片的base64字符串,如何转成图片 并存到相册里面吗?
3 回复
参考demo:
let context = getContext(this);
const createAssetByIo = async (sourceFilePath: string, targetFilePath: string) => {
try {
console.log(`context.fileDir ===> ${context.filesDir}`)
let srcFile: fs.File = fs.openSync(sourceFilePath, fs.OpenMode.READ_ONLY);
let targetFile: fs.File = await fs.open(targetFilePath, fs.OpenMode.READ_WRITE);
let bufSize = 14096;
let readSize = 0;
let buf = new ArrayBuffer(bufSize);
let readOptions: ReadOptions = { offset: readSize, length: bufSize };
let readLen = fs.readSync(srcFile.fd, buf, readOptions);
while (readLen > 0) {
readSize += readLen;
fs.writeSync(targetFile.fd, buf, { length: readLen });
readOptions.offset = readSize;
readLen = fs.readSync(srcFile.fd, buf, readOptions);
}
fs.closeSync(srcFile);
fs.closeSync(targetFile);
} catch (error) {
console.error(`createAssetByIo :: error , msg is ${error} `);
}
}
更多关于HarmonyOS鸿蒙Next中图片的base64字符串如何转成图片并存到相册里面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,将Base64字符串转换为图片并存到相册可以通过以下步骤实现:
-
Base64字符串解码:使用
util
模块中的base64
方法将Base64字符串解码为ArrayBuffer
。import util from '@ohos.util'; let base64Str = "your_base64_string"; let arrayBuffer = util.base64.decode(base64Str);
-
ArrayBuffer转换为PixelMap:使用
image
模块将ArrayBuffer
转换为PixelMap
。import image from '@ohos.multimedia.image'; let imageSource = image.createImageSource(arrayBuffer); let pixelMap = await imageSource.createPixelMap();
-
保存PixelMap到相册:使用
mediaLibrary
模块将PixelMap
保存到相册。import mediaLibrary from '@ohos.multimedia.mediaLibrary'; let context = getContext(this); let media = mediaLibrary.getMediaLibrary(context); let imageUri = await media.createAsset(mediaLibrary.MediaType.IMAGE, "image.jpg"); let imageFile = await imageUri.open('w'); await imageFile.write(pixelMap.getImageBytes()); await imageFile.close();
以上代码实现了将Base64字符串转换为图片并存到相册的功能。
在HarmonyOS鸿蒙Next中,将Base64字符串转换为图片并保存到相册的步骤如下:
- Base64解码:使用
Base64.decode()
方法将Base64字符串解码为字节数组。 - 创建图像对象:使用
ImageSource.create()
方法将字节数组转换为ImageSource
对象。 - 保存到相册:使用
PhotoAccessHelper
的createAsset()
方法将图像保存到相册中。
示例代码:
import ohos.media.image.ImageSource;
import ohos.media.image.PixelMap;
import ohos.media.photokit.PhotoAccessHelper;
import ohos.utils.Base64;
public void saveBase64ToAlbum(String base64Str) {
byte[] imageBytes = Base64.decode(base64Str);
ImageSource imageSource = ImageSource.create(imageBytes, null);
PixelMap pixelMap = imageSource.createPixelmap(null);
PhotoAccessHelper.createAsset(pixelMap, "Image.png", PhotoAccessHelper.AlbumType.USER);
}
确保在config.json
中声明相册访问权限。