HarmonyOS鸿蒙Next中图片地址如何转base64
HarmonyOS鸿蒙Next中图片地址如何转base64 图片地址如何转base64 (file://media/Photo/12/IMG_1721704847_011/IMG_20240723_111907.jpg)
5 回复
调用此方法就可以了.
- 将图片转换为buffer
- 将buffer 转换为base64字符串.
// 根据image uri 转换为 base64
async transitionImageUri2Base64(uri: string) {
// 读取图片为buffer
const file = fs.openSync(uri, fs.OpenMode.READ_ONLY);
this.photoSize = fs.statSync(file.fd).size;
console.info('Photo Size: ' + this.photoSize);
let imageArraybuffer = new ArrayBuffer(this.photoSize);
fs.readSync(file.fd, imageArraybuffer);
fs.closeSync(file);
let buf: buffer.Buffer = buffer.from(imageArraybuffer);
// ps: data:image/jpg 要根据实际情况调整.
const base64 = 'data:image/jpg;base64,' + buf.toString('base64', 0, buf.length);
// 放到image 就可以直接显示出来图片了.
this.imageBase64 = base64
console.info(TAG, 'base64: ' + base64);
}
更多关于HarmonyOS鸿蒙Next中图片地址如何转base64的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
图片怎么转二进制文件啊,
图片怎么转二进制文件啊,
转二进制做什么?
转换为pixmap ?
在HarmonyOS鸿蒙Next中,将图片地址转换为Base64可以通过Image
组件和ImageSource
类实现。首先,使用ImageSource.createFromUri
方法从图片地址创建ImageSource
对象。然后,通过ImageSource.getPixelMap
方法获取PixelMap
对象,最后使用PixelMap
的getPixelBytes
方法获取像素数据,并将其转换为Base64编码。具体代码如下:
import { ImageSource } from '@ohos.multimedia.image';
import { Base64 } from '@ohos.util';
async function imageUrlToBase64(imageUrl: string): Promise<string> {
const imageSource = await ImageSource.createFromUri(imageUrl);
const pixelMap = await imageSource.createPixelMap();
const pixelBytes = pixelMap.getPixelBytes();
return Base64.encodeFromUint8Array(pixelBytes);
}
该方法返回图片的Base64编码字符串。
在HarmonyOS鸿蒙Next中,将图片地址转换为Base64可以通过以下步骤实现:
- 读取图片文件:使用
ohos.file.fs
模块的File
类读取图片文件。 - 转换为字节数组:将图片文件内容读取为字节数组。
- Base64编码:使用
ohos.util.Base64
类将字节数组编码为Base64字符串。
示例代码如下:
import fs from '@ohos.file.fs';
import base64 from '@ohos.util.base64';
let filePath = 'your_image_path.jpg';
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
let buffer = new ArrayBuffer(fs.statSync(filePath).size);
fs.readSync(file.fd, buffer);
let base64Str = base64.encodeToString(new Uint8Array(buffer), false);
fs.closeSync(file);
console.log(base64Str);