收藏
回答

自定义组件中canvas的canvasGetImageData获取不到数据

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug canvas 客户端 iOS 6.6.6 1.9.1

小程序代码:

wx.canvasGetImageData({

         canvasId: 'PaperCanvas',

         x: 0,

         y: 0,

         width: 100,

         height: 100,

         success:function(res) {

           console.log(res.width) // 100

           console.log(res.height) // 100

           console.log(res.data instanceof Uint8ClampedArray) // true

           console.log(res.data.length) // 100 * 100 * 4

           let pngData = upng.encode([res.data.buffer], res.width, res.height)

           let base64 = wx.arrayBufferToBase64(pngData)

         },

         fail: function (res) {

           console.log(res);

           return ''

         }

       }, this)

运行后报错:

errMsg:"canvasGetImageData: fail canvas is empty"

请帮忙解答,多谢各位!

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

7 个回答

  • HS
    HS
    2018-05-18

    可否给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-05-18
    赞同
    回复 3
    • 春节快乐
      春节快乐
      2018-05-22
      有邮箱吗? 发给您
      2018-05-22
      回复
    • 春节快乐
      春节快乐
      2018-05-29回复春节快乐

      您好 ,之前有个小程序API,在自定义组件中开始也报错fail canvas is empty, 加上绑定paperThis之后可以正常运行了,如下所示:

      Component({

      properties: {

          penSize: {

          type: Number,

          value: 8

          },

          penColor: {

          type: String,

          value: "rgb(0,0,0)"

          }

          },

      methods: {

          getHandWritingPng:function(){

          var paperThis = this;

          const app=getApp();

          wx.canvasToTempFilePath({

          canvasId: 'PaperCanvas',

          success: function (res) {

              console.log("成功获取图片"+res.tempFilePath);

              app.data.handwritingpath = res.tempFilePath

              return res.tempFilePath

          },

          fail: function (res) {

              console.log(res);

              return ''

          }

          }, paperThis)

          }

      }

      })


      wx.canvasGetImageData这个API是否也修要特殊处理?


      2018-05-29
      回复
    • 马斯洛
      马斯洛
      03-16

      我也是一样的问题, 自定义组件里的 canvas 报错 “canvasGetImageData: fail canvas is empty”,  我在微信小程序开发工具里是可以用的。  真机调试 就报这个错。  说明我代码没写错。 什么时候能解决?

      03-16
      回复
  • 李锐勇逗比
    李锐勇逗比
    2018-05-23

    是不是你wxml没有canvas

    2018-05-23
    赞同
    回复 1
    • 春节快乐
      春节快乐
      2018-05-29

      有的哈

      2018-05-29
      回复
  • Mxl
    Mxl
    2018-05-23

    同遇到这个问题,解决了吗

    2018-05-23
    赞同
    回复 1
    • 春节快乐
      春节快乐
      2018-05-29

      还没

      2018-05-29
      回复
  • naeco
    naeco
    2018-05-27

    现在我也碰到了这个问题,请问解决了吗?

    2018-05-27
    赞同
    回复 1
    • 春节快乐
      春节快乐
      2018-05-29

      还没解决

      2018-05-29
      回复
  • 太有才了丶
    太有才了丶
    2018-12-21

    解决了吗

    2018-12-21
    赞同
    回复
  • 春节快乐
    春节快乐
    08-27

    还没有解决

    08-27
    赞同
    回复
  • 蒲欢
    蒲欢
    08-27

    还没解决

    08-27
    赞同
    回复