Canvas
发布于 7 年前 作者 jpan 7772 次浏览 来自 问答

反馈一个 Bug :

* Bug 表现是什么?预期表现是什么?

canvas 中调用clip方法只能调用2次,第三次调用不成功。在开发者工具没有这个bug,只存在于上传的开发版/体验版。

* 如何复现?

您打开任何一个页面,在load里面创建一个canvas:

var cxt = wx.createCanvasContext(‘myCanvasTag’);

var drawAvatar = (face, x, y) => {

    cxt.save();

    var len = size / 2;

    cxt.beginPath();

    cxt.arc(x, y, len, 0, 2 * Math.PI);//创建圆形剪裁路径

    cxt.clip();//剪裁, 微信Production版本的bug,同一个canvas只能调用两次,第三次不work

    cxt.stroke();

    cxt.drawImage(face, x - len, y - len, size, size);

    cxt.restore();

}

var pic1 = ‘…/…/face1.png’;

var pic2 = ‘…/…/face2.png’;

var pic3 = ‘…/…/face3.png’;

drawAvatar(pic1,

50,

50

);

drawAvatar(pic2,

100

,

100

);

drawAvatar(pic3, 200,

200

);

cxt.draw();

您可以自己随便找几张图试一下。在本地应该是能够显示三个原型的头像,但是一旦上传到体验版本或者直接开发预览,用手机打开,只能见到两个头像。

如果把clip方法去除,则本地和开发预览版本保持一致,都是三个头像。

因此就是somehow clip只能做两次,第三次及以后都不成功。你自己加多个头像一样。

2 回复

我也遇到这个问题了,安卓还是正常的,ios不行。求官方解答

我也遇到这个问题了,安卓还是正常的,ios不行

回到顶部