wx.canvasGetImageData获取到的像素信息都是0
发布于 5 年前 作者 baixia 10852 次浏览 来自 问答
  • 当前 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)
})
3 回复

你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

想请教一下,现在解决了吗?

求解。。这个问题卡了我两天了。。还挺紧急的

回到顶部