html52.com
我爱小程序-开发者交流社区

canvasPutImageData 无法绘制data

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

使用的是官方提供的代码片段:

function convertToGrayscale(data) {

  let g = 0

  for (let i = 0; i < data.length; i += 4) {

    g = (data[i] * 0.3 + data[i+1] * 0.59 + data[i+2] * 0.11)

    data[i] = g

    data[i+1] = g

    data[i+2] = g

  }

  return data

}


Page({

  onReady() {

  },


  openAndDraw() {

    wx.chooseImage({

      success: (res) => {

        const ctx = wx.createCanvasContext('canvasIn', this);

        ctx.drawImage(res.tempFilePaths[0], 0, 0)

        ctx.draw()

      }

    })

  },


  export() {

    wx.canvasToTempFilePath({

      canvasId: 'canvasOut',

      success: (res) => {

        wx.saveImageToPhotosAlbum({

          filePath: res.tempFilePath,

          success: (res) => {

            console.log(res)

          },

          fail: (err) => {

            console.error(err)

          }

        })

      },

      fail: (err) => {

        console.error(err)

      }

    }, this)

  },


  process() {

    const cfg = {

      x: 0,

      y: 0,

      width: 300,

      height: 300,

    }

    wx.canvasGetImageData({

      canvasId: 'canvasIn',

      ...cfg,

      success: (res) => {

        const data = convertToGrayscale(res.data)

        wx.canvasPutImageData({

          canvasId: 'canvasOut',

          data,

          ...cfg,

          success: (res) => {

            console.log(res)

          },

          fail: (err) => {

            console.error(err)

          }

        })

      },

      fail: (err) => {

        console.error(err)

      }

    })

  }

})


- 当前 Bug 的表现(可附上截图)

开发者工具使用基础库2.3.2版本(目前能选择的最新版,无2.4.0版本),处理正常

开发者工具使用基础库2.3.2版本(目前能选择的最新版,无2.4.0版本),处理正常安卓手机处理正常





安卓手机处理正常

安卓手机处理正常IOS 12.0手机无法显示,但回调函数输出errmsg正常,回调函数输出信息和开发者工具以及安卓手机的不一样





IOS 12.0手机无法显示,但回调函数输出errmsg正常,回调函数输出信息和开发者工具以及安卓手机的不一样

IOS 12.0手机无法显示,但回调函数输出errmsg正常,回调函数输出信息和开发者工具以及安卓手机的不一样IOS11.3.1可以显示图片,但是绘制的仍是处理前的data,而不是处理后的data


IOS11.3.1可以显示图片,但是绘制的仍是处理前的data,而不是处理后的data

IOS11.3.1可以显示图片,但是绘制的仍是处理前的data,而不是处理后的data代码片段wechatide://minicode/GlCRTlmS7n27


评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付