收藏
回答

canvas2d绘制多张图片,只显示最后一张?

使用循环递归的方式在image.onload中进行绘制,但是每次都只有最后一张图片显示了,在html canvas中有个putImageData的方法可以保存之前的绘制,
在小程序的api中也看到了wx.canvasGetImageData(),但是使用的时候提示canvasGetImageData: fail canvas is empty,请问各位大佬应该怎么处理

  var len = list.length

function addImage(n){

 if(n<len){

var imgPath = list[n];

var headerImg = _this.data.myCanvas.createImage();

headerImg.src = imgPath; 

headerImg.onload = (res) => {

 _this.data.ctx.drawImage(headerImg,0,0,imgInfo.width,imgInfo.height,imgPosX,imgPosY,imgWdith,imgHeight);

wx.canvasGetImageData({

              canvasId: 'myCanvas',

              x: 0,

              y: 0,

              width:100,

              height: 100,

              success(res) {

                console.log(res)

              },

              fail(err){

                console.log(err)

              }

            })

 addImage(n+1)


 }




最后一次编辑于  2021-08-18
回答关注问题邀请回答
收藏

1 个回答

  • 小娴
    小娴
    2021-08-19

    解决了,2d直接使用ctx.getImageData(x,y,width,height)就可以了

    2021-08-19
    有用
    回复 2
    • Ying
      Ying
      2021-09-04
      你好,我也遇到了这个问题,请问这个是怎么用呢,没理解
      2021-09-04
      回复
    • Sean
      Sean
      2021-11-04回复Ying
      你好 请问解决了嘛
      2021-11-04
      回复
登录 后发表内容