- 当前 Bug 的表现(可附上截图)
我做的是个可以拍照完了拿照片像素信息的功能。现在完成了拍照并且绘制在canvas上的功能,但是在canvas上使用canvasGetImageData来提取像素信息时,打印出来的结果都是0。照片正常绘制了出来,也尝试过延迟了5秒左右再获取像素信息,结果也还是0,但是有时候会能获取到不是0的值
- 预期表现
应该可以获取到canvas上图片的像素信息
- 复现路径
流程是这样的
在一个页面里调用相机的takePhoto方法,获得了照片地址之后跳转到了新页面,在新页面的onLoad方法或者onShow方法中,根据传过来的照片地址调用drawImage方法在新页面的canvas标签中绘图,draw方法完成的回调用canvasGetImageData方法来获取,此时获取到的data全都是0。(新页面中相片的绘制正常显示,并且canvasId等值都是有值的)
- 提供一个最简复现 Demo
var that = this const ctx = wx.createCanvasContext(canvasId) ctx.drawImage(options.imgPath, 0, 0, 100, 100) ctx.draw( false , () => { wx.canvasGetImageData({ canvasId: canvasId, x: 0, y: 0, width: 100, height: 100, success: (res) => { console.log(res.data[0] + ' ' + res.data[1] + ' ' + res.data[2]) }, fail: res => { console.log(res) }, }, that) }) |
遇到同样的bug求解
想请教一下,现在解决了吗?
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
都提供了。。后面我发现原因了
调用这个接口的时候,根据调用这个借口传入的参数,有可能会获得一串前面很多rgba都是0的数组。。我把这个数组打印出来之后才发现了这个问题
上面提供的不是代码片段哦,可以先参考我给你的链接
求解。。这个问题卡了我两天了。。还挺紧急的