HarmonyOS 鸿蒙Next相机视频流base64编码后的图片无法解码打开

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

HarmonyOS 鸿蒙Next相机视频流base64编码后的图片无法解码打开
HarmonyOS的社区里有很多技术大牛分享经验,学到了很多有用的知识。

关于HarmonyOS 鸿蒙Next相机视频流base64编码后的图片无法解码打开的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

7 回复
async (frame: image.Image) => {
if (frame == undefined) {
return;
}

let imgComponent = await frame.getComponent(image.ComponentType.JPEG);
let jpegData = imgComponent.byteBuffer as ArrayBuffer;
let byteBuffer = buffer.from(jpegData);
let base64Str = 'data:image/jpeg;base64,' + byteBuffer.toString('base64', 0);
console.info("base64: " + base64Str);
}

这段代码可以正常base64编码 但是base64Str无法通过解码生成图片

期待HarmonyOS能继续优化多屏协同功能,让跨设备体验更加完美。

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

同样的需求,请问解决了么?
遇到同样的问题其中的ArrayBuffer无法转成PixelMap,请问解决了么

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

base64转PixelMap参考如下代码:

import util from '@ohos.util';

let helper = new util.Base64Helper(); let buffer: ArrayBuffer = helper.decodeSync(this.base64, util.Type.MIME).buffer as ArrayBuffer; let imageSource = image.createImageSource(buffer); let opts: image.DecodingOptions = { editable: true }; this.pixelMap = await imageSource.createPixelMap(opts);<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

回到顶部