HarmonyOS 鸿蒙Next OCR返回图片转成arraybuffer再转成base64传给前端

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next OCR返回图片转成arraybuffer再转成base64传给前端 目前使用ocr扫面身份证,拿到了图片地址信息如:

file://com.huawei.hmsapp.hiai/data/storage/el2/base/haps/doc/files/com.mobile.abcd/a4c0d594-8990-40f4-a2a4-c9acd199222d.jpeg

现在想把他转成base64传给前端,但是不行。公司大佬说要转成arraybuffer再转成base64,搜了一下午未能实现,求助各位同僚

3 回复
let file = fs.openSync(path, fs.OpenMode.READ_ONLY);
const imageSourceApi = image.createImageSource(file.fd);
// 将图片解码为pixelmap
imageSourceApi.createPixelMap().then(async pixelmap => {
  let packOptions: image.PackingOption = {
    format: "image/jpeg",
    quality: 100
  }
  let imagePack = image.createImagePacker();
  let arrayBuffer: ArrayBuffer = await imagePack.packing(pixelmap, packOptions);
  let buf = buffer.from(arrayBuffer);
   //得到base64
    let imageBase64 = buf.toString('base64')

}).catch((err: BusinessError) => {
  
})

更多关于HarmonyOS 鸿蒙Next OCR返回图片转成arraybuffer再转成base64传给前端的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


姓名: 张三
职位: 软件工程师
简介: 拥有超过10年的软件开发经验,擅长Java和Python编程。

在HarmonyOS鸿蒙系统中,处理OCR(Optical Character Recognition,光学字符识别)功能返回的图片并转换成ArrayBuffer,再进一步转换为Base64编码以传递给前端,可以通过以下步骤实现:

  1. OCR图片获取:首先,确保OCR功能已经成功执行并返回了图片数据。在鸿蒙系统中,OCR功能可能通过特定的API或SDK实现,返回的图片通常是以二进制流或文件形式存在。

  2. 转换成ArrayBuffer:鸿蒙系统支持对二进制数据进行处理。将OCR返回的图片数据读取为字节数组(ByteArray),然后可以将其视为ArrayBuffer(尽管鸿蒙API可能不直接提供ArrayBuffer类型,但可以通过类似功能的数据结构进行处理)。

  3. Base64编码:鸿蒙系统提供了Base64编码的库函数或API。使用这些工具将ArrayBuffer(或等效的字节数组)编码为Base64字符串。

  4. 传递给前端:编码后的Base64字符串可以通过网络请求(如HTTP POST)传递给前端。前端接收到后,可以将其解码为原始图片数据或直接在网页上显示。

请注意,上述步骤中的具体实现细节(如API调用、数据格式转换等)依赖于鸿蒙系统的SDK和API文档。如果在实际操作中遇到问题,建议直接参考鸿蒙系统的官方文档或示例代码。

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

回到顶部