一般情况下画入圆形图片
canvas.save();
canvas.beginPath() //开始创建一个路径
canvas.arc(50, 50, 50, 0, 2 * Math.PI, false) //画一个圆形裁剪区域
canvas.clip() //裁剪
canvas.drawImage("../../images/123.png", 0, 0, 100, 100) //绘制图片
canvas.restore() //恢复之前保存的绘图上下文
canvas.draw()
但是,如果先画背景,就会出现路径不裁剪的情况
canvas.rect(0, 0, 300, 300)
canvas.setFillStyle('red')
canvas.fill();
canvas.save();
canvas.beginPath() //开始创建一个路径
canvas.arc(50, 50, 50, 0, 2 * Math.PI, false) //画一个圆形裁剪区域
// canvas.stroke();
canvas.clip() //裁剪
canvas.drawImage("../../images/123.png", 0, 0, 100, 100) //绘制图片
canvas.restore() //恢复之前保存的绘图上下文
canvas.draw()
这个时候要给路径画一个边框就可以裁剪了,这是为什么,我也不知道
canvas.rect(0, 0, 300, 300)
canvas.setFillStyle('red')
canvas.fill();
canvas.save();
canvas.beginPath() //开始创建一个路径
canvas.arc(50, 50, 50, 0, 2 * Math.PI, false) //画一个圆形裁剪区域
canvas.stroke();
canvas.clip() //裁剪
canvas.drawImage("../../images/123.png", 0, 0, 100, 100) //绘制图片
canvas.restore() //恢复之前保存的绘图上下文
canvas.draw()