HarmonyOS 鸿蒙Next 如何把照片转成base64

发布于 1周前 作者 wuwangju 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何把照片转成base64

如何把照片转成base64

2 回复

将文件先转成ArrayBuffer,然后转成base64:

const file=fs.openSync(resultUri,fs.openMode.READ_ONLY);

const buffer1=new ArrayBuffer(fs.statSync(file.fd).size);

fs.readSync(file.fd,buffer1);

let base64Str=buffer.from(buffer1).toString(“base64”)

在HarmonyOS鸿蒙Next中,将照片转换成Base64字符串可以通过以下步骤实现:

  1. 获取图片文件:首先,确保你有一个图片文件的路径。这个图片可以是本地的,也可以是从网络上获取的。
  2. 读取图片文件:使用HarmonyOS的文件系统API打开并读取图片文件。你需要使用fileIo.openSync方法获取文件描述符,并读取文件内容到ArrayBuffer中。
  3. 图片处理:将读取到的图片数据(ArrayBuffer)转换为PixelMap对象,这通常需要使用image.createImageSourcecreatePixelMap方法。
  4. 编码为Base64:使用util.Base64HelperencodeToStringSync方法将PixelMap对象(或ArrayBuffer)编码为Base64字符串。

示例代码如下:

import { fileIo } from '@kit.CoreFileKit';
import { image } from '@kit.ImageKit';
import { buffer, util } from '@kit.ArkTS';

// 假设已有图片路径imagePath
let file = fileIo.openSync(imagePath, fileIo.OpenMode.READ_ONLY);
let imageSource = image.createImageSource(file.fd);
imageSource.createPixelMap().then((pixelMap) => {
    // 转换为ArrayBuffer并编码为Base64
    const imagePackerApi = image.createImagePacker();
    const packOpts = { format: 'image/jpeg', quality: 100 };
    imagePackerApi.packing(pixelMap, packOpts).then((data) => {
        let base64Helper = new util.Base64Helper();
        let base64Str = base64Helper.encodeToStringSync(new Uint8Array(data));
        console.log(base64Str);
    });
});

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部