onCameraFrame获取的arraybuffer用wx.arrayBufferToBase64转换后得到的base64格式看起来很奇怪,与普通图片转成的base64格式不一样,得到的base64也无法通过工具转换成图片。请问有人解决过这种问题吗,该如何处理?
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | 需求 | onCameraFrame | 微信iOS客户端 | 6.5.3 | 2.7.7 |
onCameraFrame获取的arraybuffer用wx.arrayBufferToBase64转换后得到的base64格式看起来很奇怪,与普通图片转成的base64格式不一样,得到的base64也无法通过工具转换成图片。请问有人解决过这种问题吗,该如何处理?
4 个回答
onCameraFrame 获取的是未经过编码的原始 RGBA 格式的图像数据,如果要转换成图片,需要对 arraybuffer 做一次图像编码(例如 PNG / JPEG)。或是借用 canvas 的 putImageData,先画进 canvas 再保存成图片。
我现在是用 canvas 的 putImageData,但是我发现导出图片用canvasToTempFilePath拿到res.tempFilePath有时会报上面这个错误,有时候又是正常,我没有用operateCamera也不会去操作它得proto,不明白什么情况
行,我们排查一下,这块可能是内存分配失败了,建议先 catch 一下,然后重试:
const listener = ctx.onCameraFrame(() => {})
try
{
listener.start();
}
catch
(e) {
listener.start();
}
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
这个问题解决了吗?