收藏
回答

canvasGetImageData: fail canvas is empty ?

在调试基础库版本为2.9.3的基础上小程序接口 wx.canvasGetImageData 返回 canvasGetImageData: fail canvas is empty 错误。此接口最低基础库是1.9.0就开始支持。


回答关注问题邀请回答
收藏

4 个回答

  • 10点😴
    10点😴
    2020-04-13

     img.onload = function (e) {

                // console.log(e)

                ctx.drawImage(img, 0, 0, 350, 100)

                imageData = ctx.getImageData(0, 0, 200, 100)

                console.log(imageData)

              }


    2020-04-13
    有用 1
    回复 1
    • 反语
      反语
      2023-06-27
      有用。。看来直接用原生获取imageData就行了,不能用wx.canvasGetImageData,这个不兼容新版的canvas
      2023-06-27
      回复
  • 小
    2020-04-08

    请问解决了么,我用的是系统自带的canvas,也没有跨页面 2.10.4,也是一样的问题

    2020-04-08
    有用
    回复
  • Hastings
    Hastings
    2020-03-28

    有解决方案了吗?我也遇到这问题了。

    我这边切换版本测试了之后,同样的代码2.8.0以下,canvasGetImageData接口可正常获取数据,2.8.0以上(含2.8.0)都开始报错了,怀疑是2.8.0以后此接口被废弃了。(文档中没有明确说明)

    另外新的Canvas api是在2.8.0以后生效的。

    目前文档没有说明,只有wx.createCanvasContext明确表示2.9.0以后停止维护了。



    2020-03-28
    有用
    回复 1
    • Han
      Han
      2020-03-30
      我遇到的是低版本的支持库,支持这个API但是获取到的数据不正常,高版本的支持库,API不起作用,也有可能是异步的问题。
      2020-03-30
      回复
  • 九歌^
    九歌^
    2019-11-20

    从你的描述 我看不出任何问题,你也不贴代码片段。也不贴代码截图。我就只能给你搜下https://developers.weixin.qq.com/community/develop/doc/0004e67e5d4bc001e538809d556400?_at=1574222296720

    2019-11-20
    有用
    回复 2
    • Han
      Han
      2019-11-20
      // pages/data/data.js
      var that = undefined
      Page({
        /**
         * 页面的初始数据
         */
        data: {
        },
        init(res){
          console.log(res)
        },
        /**
         * 生命周期函数--监听页面加载
         */
        onLoad: function (options) {
          that = this
          wx.createSelectorQuery().select("#data").fields({
            size: true,
            node: true
          }).exec(this.init.bind(this))
          setTimeout(() => {
            wx.canvasGetImageData({
              canvasId: 'data',
              x: 0,
              y: 0,
              width: 100,
              height: 100,
              complete: function(res){
                console.log(res)
              }
            })
          },2000)
        },
        /**
         * 生命周期函数--监听页面初次渲染完成
         */
        onReady: function () {
        },
        /**
         * 生命周期函数--监听页面显示
         */
        onShow: function () {
        },
        /**
         * 生命周期函数--监听页面隐藏
         */
        onHide: function () {
        },
        /**
         * 生命周期函数--监听页面卸载
         */
        onUnload: function () {
        },
        /**
         * 页面相关事件处理函数--监听用户下拉动作
         */
        onPullDownRefresh: function () {
        },
        /**
         * 页面上拉触底事件的处理函数
         */
        onReachBottom: function () {
        },
        /**
         * 用户点击右上角分享
         */
        onShareAppMessage: function () {
        }
      })
      2019-11-20
      回复
    • Han
      Han
      2019-11-20
      就这样直接调用也不行啊
      2019-11-20
      回复
登录 后发表内容
问题标签