context.onCameraFrame((frame) => {
try {
if (!this.data.flag) {
return;
}
wx.canvasPutImageData({
canvasId: 'myCanvas',
x: 0,
y: 0,
width: frame.width,
heihgt: frame.height,
data: new Uint8ClampedArray(frame.data),
success(res) {
wx.showModal({
title: '获取图片',
content: '' + res,
})
},
fail(err){
wx.showModal({
title: '获取图片失败',
content: '' + err.errMsg,
})
}
});
}catch(err){
}
});
报错信息:canvasPutImageData:fail canvas is empty
搞了一下午终于解决了,根本原因就是 wx.canvasPutImageData 不支持 canvas 2d 类型,将 canvas中的 type=“2d” 去掉就好了
请问有解决吗, errMsg: "canvasPutImageData:fail invalid data format"
2022年12月14日问题依旧层出不齐。。。
https://developers.weixin.qq.com/community/develop/doc/000aea66914ef0929ade5aa7e56400
onCameraFrame返回arrayBuffer使用canvasPutImageData报错?
demo.js
Page({ onReady: function () { const cameraCtx = wx.createCameraContext() const cameraCfl = cameraCtx.onCameraFrame(res => { const data = new Uint8ClampedArray(res.data); wx.canvasPutImageData({ x: 0, y: 0, width: 300, height: 150, data, success: res => { console.log('绘制成功:', res) }, fail: res => { console.log('绘制失败:', res) }, complete: res => { console.log(res) } }) }) cameraCfl.start() } })
demo.wxml
<view class="container"> <camera device-position="back" flash="off" binderror="error" style="width: 100%; height: 100%"></camera> <canvas type="2d" id="canvas" canvas-id="canvas"></canvas> </view>
demo.wxss
page{ height: 100%; } .container { height: 100%; }
请问如何解决的呢
开发工具上就这样,你在上传个体验版在手机上测试就正常了。。。
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)