我正在尝试在 Canvas 中创建“橡皮擦”效果,但使用 SVG 图像作为橡皮擦的自定义形状。
所以我可以将我的 SVG 图像绘制到画布上,并使用 globalCompositeOperation='destination-out' 来创建遮罩效果。
它在 IE、Safari 和 Chrome 中运行良好。但它在 Firefox 中完全失败。
function init() {
var canvas = document.getElementById('c');
var ctx = canvas.getContext('2d');
var img = document.createElement('IMG');
img.onload = function () {
ctx.beginPath();
ctx.drawImage(img, 0, 0);
ctx.closePath();
ctx.globalCompositeOperation = 'destination-out';
}
img.src = "http://www.evanburke.com/FROST.png";
var svg = new Image;
svg.src = "http://www.evanburke.com/luf.svg";
function drawPoint(pointX,pointY){
ctx.drawImage(svg,pointX,pointY);
}
canvas.addEventListener('mousemove',function(e){
drawPoint(e.clientX,e.clientY);
},false);
}
<body onload="javascript:init();">
<div>
<canvas id="c" width="400" height="400"></canvas>
</div>
</body>