小程序
小游戏
企业微信
微信支付
扫描小程序码分享
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) {
问题解决了嘛,我也遇见了,2022年
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
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();
}
问题解决了嘛,我也遇见了,2022年
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)