收藏
回答

restore 第二次无效

restore  模拟器上没有问题。。。真机 iphone7Plus  第二次以上无法触发。。。后续的绘制只能在 

clip  的区域里面的会显示


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

3 个回答

  • 邓坤力
    邓坤力
    2017-12-24

    你好,请具体描述问题出现的流程,并提供能复现问题的简单代码示例。

    2017-12-24
    有用
    回复
  • Frojan
    Frojan
    2018-01-25

    深坑,画多图的话只能尝试专门用另一个canvas来clip

    2018-01-25
    有用
    回复
  • Mufson
    Mufson
    2017-12-24

    以clip的例子 。。。。在模拟器上可以出现三个微信的图标。。在手机上只会出现两个。。。第二个以后的restore就无法  恢复之前保存的绘图上下文 


         const ctx = wx.createCanvasContext('myCanvas');

          
      wx.downloadFile({
      url: 'http://is5.mzstatic.com/image/thumb/Purple128/v4/75/3b/90/753b907c-b7fb-5877-215a-759bd73691a4/source/50x50bb.jpg',
      success: function(res) {
          ctx.save()
          ctx.beginPath()
          ctx.arc(50, 50, 25, 0, 2*Math.PI)
          ctx.clip()
          ctx.drawImage(res.tempFilePath, 25, 25)
          ctx.restore()

            wx.downloadFile({
              url: 'http://is5.mzstatic.com/image/thumb/Purple128/v4/75/3b/90/753b907c-b7fb-5877-215a-759bd73691a4/source/50x50bb.jpg',
              success: function(res) {
                  ctx.save()
                  ctx.beginPath()
                  ctx.arc(150, 150, 25, 0, 2*Math.PI)
                  ctx.clip()
                  ctx.drawImage(res.tempFilePath, 125, 125)
                  ctx.restore()

                    wx.downloadFile({
                      url: 'http://is5.mzstatic.com/image/thumb/Purple128/v4/75/3b/90/753b907c-b7fb-5877-215a-759bd73691a4/source/50x50bb.jpg',
                      success: function(res) {
                          ctx.save()
                          ctx.beginPath()
                          ctx.arc(250, 250, 25, 0, 2*Math.PI)
                          ctx.clip()
                          ctx.drawImage(res.tempFilePath, 225, 225)
                          ctx.restore()
                          ctx.draw()
                      }
                    })
              }
            })
      }
    })
    2017-12-24
    有用
    回复
登录 后发表内容