0
我想在Canvas中創建'橡皮擦'效果,但是使用SVG圖像作爲橡皮擦的自定義形狀。Firefox bug - globalCompositeOperation不能使用drawImage作爲SVG元素
因此,我可以將我的SVG圖像繪製到畫布上,並使用globalCompositeOperation ='destination-out'創建遮罩效果。
它在IE,Safari和Chrome中很好用。但它在Firefox中完全失敗。
\t \t function init() {
\t \t \t var canvas = document.getElementById('c');
\t \t \t var ctx = canvas.getContext('2d');
\t \t \t var img = document.createElement('IMG');
\t \t \t img.onload = function() {
\t \t \t ctx.beginPath();
\t \t \t ctx.drawImage(img, 0, 0);
\t \t \t ctx.closePath();
\t \t \t ctx.globalCompositeOperation = 'destination-out';
\t \t \t }
\t \t \t img.src = "http://www.evanburke.com/FROST.png";
\t \t \t var svg = new Image;
\t \t \t svg.src = "http://www.evanburke.com/luf.svg";
\t \t \t
\t \t \t function drawPoint(pointX,pointY){
\t \t \t ctx.drawImage(svg,pointX,pointY); \t \t
\t \t \t } \t \t \t
\t \t \t canvas.addEventListener('mousemove',function(e){
\t \t \t \t drawPoint(e.clientX,e.clientY);
\t \t \t },false); \t \t \t
\t \t }
\t <body onload="javascript:init();">
\t <div> \t
\t <canvas id="c" width="400" height="400"></canvas>
\t </div>
\t </body>
加薪的bug [Bugzilla的] (https://bugzilla.mozilla.org) –