收藏
回答

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

框架类型 问题类型 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)
})


最后一次编辑于  2019-05-31
回答关注问题邀请回答
收藏

4 个回答

  • Theresa
    Theresa
    2020-02-27

    遇到同样的bug求解

    2020-02-27
    有用
    回复 1
    • 子凯
      子凯
      2020-04-30
      解决了吗
      2020-04-30
      回复
  • 2019-06-14

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

    2019-06-14
    有用
    回复 1
    • 子凯
      子凯
      2020-04-30
      解决了吗
      2020-04-30
      回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-05-31

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

    2019-05-31
    有用
    回复 3
    • i3
      i3
      2019-05-31

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


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

      2019-05-31
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2019-05-31回复i3

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

      2019-05-31
      回复
    • MGS@[耶]
      MGS@[耶]
      2020-08-13回复i3
      兄弟,什么原因啊,后面怎么解决的?
      2020-08-13
      回复
  • i3
    i3
    2019-05-31

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

    2019-05-31
    有用
    回复 3
    • Grady
      Grady
      2019-07-24
      现在解决了吗?
      2019-07-24
      回复
    • 子凯
      子凯
      2020-04-30
      解决了吗
      2020-04-30
      回复
    • 王建兵
      王建兵
      2020-05-08
      解决了吗
      2020-05-08
      回复
登录 后发表内容