收藏
回答

wx.canvasGetImageData真机或者调试环境没走回调?

wx.canvasGetImageData真机或者调试环境没走回调

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

3 个回答

  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-10-21

    wx.canvasGetImageData真机或者调试环境没走回调这个问题给下可复现问题的代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-10-21
    有用
    回复 11
    • 东
      2019-10-21
      https://developers.weixin.qq.com/s/tGj8Dhmp7gcR
      2019-10-21
      回复
    • 东
      2019-10-21回复
      // wx.canvasGetImageData({
                // canvasId: 'compressCanvas',
                // x: 0,
                // y: 0,
                // width: canvasW,
                // height: canvasH,
                // success: function (res) {
                // console.log('canvasGetImageData success')
                // let pngData = upng.encode([res.data.buffer], res.width, res.height)
                // let bs64 = wx.arrayBufferToBase64(pngData)
                // resolve('data:image/jpeg;base64,' + bs64)//最终图片路径
                // },
                // fail: function (err) {
                // console.log(err)
                // }
                // })
      换成这段试试呢
      2019-10-21
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2019-10-21回复
      麻烦提供替换后的代码片段,请确保代码片段可以正常使用
      2019-10-21
      回复
    • 东
      2019-10-21回复疯狂的小辣椒
      https://developers.weixin.qq.com/s/2y3Jlimo7Rcn
      2019-10-21
      回复
    • 东
      2019-10-22回复疯狂的小辣椒
      代码片段已发,请查收
      2019-10-22
      回复
    查看更多(6)
  • TNT
    TNT
    2019-10-21

    写个代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-10-21
    有用
    回复
  • 卢霄霄
    卢霄霄
    2019-10-19

    代码片段呢

    2019-10-19
    有用
    回复 12
    • 东
      2019-10-19
      // 图片压缩
      function compressImg(filePath, that) {
        return new Promise((resolve, reject) => {
          wx.getImageInfo({
            src: filePath,
            success: res => {
              let canvasW = res.width;
              let canvasH = res.height;
              let radio = Math.trunc(canvasW / 512) == 0 ? 1 : Math.trunc(canvasW / 512);
              canvasW = Math.trunc(res.width / radio);
              canvasH = Math.trunc(res.height / radio);
              that.setData({
                cWidth: canvasW,
                cHeight: canvasH
              })
              var ctx = wx.createCanvasContext('compressCanvas')
              ctx.drawImage(res.path, 0, 0, canvasW, canvasH)
              ctx.draw(false, setTimeout(() => {
                wx.canvasGetImageData({
                  canvasId: 'compressCanvas',
                  x: 0,
                  y: 0,
                  width: canvasW,
                  height: canvasH,
                  success: function (res) {
                    console.log('canvasGetImageData success')
                    let pngData = upng.encode([res.data.buffer], res.width, res.height)
                    let bs64 = wx.arrayBufferToBase64(pngData)
                    resolve('data:image/jpeg;base64,' + bs64)//最终图片路径
                  },
                  fail: function (err) {
                    console.log(err)
                  }
                })
              }, 500))
            }
          })
        })
      }
      2019-10-19
      回复
    • 东
      2019-10-19
      表现。调试模式不走success fail 完全没用  体验版很慢很慢很慢才进
      2019-10-19
      回复
    • 东
      2019-10-19
      人呢,要是debugger中的话 能不能告诉我 给我有个逾期
      2019-10-19
      回复
    • 卢霄霄
      卢霄霄
      2019-10-19回复
      如果cwidth 和 cheight 是你canvas的宽高的话,你需要在 setData的成功回调里进行画图
      2019-10-19
      回复
    • 卢霄霄
      卢霄霄
      2019-10-19回复
      刚吃饭呢
      2019-10-19
      回复
    查看更多(7)
登录 后发表内容
问题标签