我正在为ipad开发一个html5应用程序。我想在canvas元素中显示一个图像,下面是背景图像。当用户将手指擦过画布上的图像时,应擦除以显示背景图像。这是我开始的代码。现在我只想绘制一条透明线来显示背景图像。我稍后会担心触摸事件。有什么想法吗?
function draw() {
var ctx = document.getElementById('canvas').getContext('2d');
var img = new Image();
img.src = 'Lord-of-Bones.png';
img.onload = function(){
ctx.drawImage(img,0,0);
ctx.globalCompositeOperation = "copy";
ctx.strokeStyle = "rgba(0,0,0,0)";
ctx.beginPath();
ctx.moveTo(30,96);
ctx.lineTo(70,66);
ctx.lineTo(103,76);
ctx.lineTo(170,15);
ctx.stroke();
}
}
答案 0 :(得分:1)
这最终为我工作。
var imageData = context.getImageData(x,y,50,50);
var data = imageData.data;
for (var i = 0; i < data.length; i+=4) {
data[i] = 0; //red
data[i+1] = 0; //green
data[i+2] = 0; //blue
data[i+3] = 0; //alpha
}
context.putImageData(imageData, x, y);
答案 1 :(得分:0)
我认为复合操作应该是复制操作 - 也许是目标输出。
https://developer.mozilla.org/samples/canvas-tutorial/6_1_canvas_composite.html
获得这种工作的另一种方法是直接从上下文的ImageData中清除像素数据。
答案 2 :(得分:0)
您可以在一个画布上绘制图像,在另一个具有更高z-index的画布上绘制待删除的蒙版。