收藏
回答

wx.canvasGetImageData获取到的像素信息都是0

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug canvasGetImageData 客户端 7.0.4 2.7.1

- 当前 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)
})


最后一次编辑于  05-31  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • i3
    i3
    05-31

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

    05-31
    赞同
    回复 1
    • Grady
      Grady
      07-24
      现在解决了吗?
      07-24
      回复
  • 娇华
    娇华
    05-31

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

    05-31
    赞同
    回复 2
    • i3
      i3
      05-31

      都提供了。。后面我发现原因了


      调用这个接口的时候,根据调用这个借口传入的参数,有可能会获得一串前面很多rgba都是0的数组。。我把这个数组打印出来之后才发现了这个问题

      05-31
      回复
    • 娇华
      娇华
      05-31回复i3

      上面提供的不是代码片段哦,可以先参考我给你的链接

      05-31
      回复
  • 猫先生
    猫先生
    06-14

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

    06-14
    赞同
    回复