簡體   English   中英

刪除畫布繪制的png圖像

[英]Erasing a png image drawn by a canvas

我正在為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();
            }
        } 

這就是最終為我工作的原因。

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);

我認為復合操作應該是復制以外的東西-可能是目的地輸出。

https://developer.mozilla.org/samples/canvas-tutorial/6_1_canvas_composite.html

獲得這種工作的另一種方法可能是直接從上下文的ImageData中清除像素數據。

您可以在一個畫布上繪制圖像,在另一個具有較高z索引的畫布上繪制要擦除的蒙版。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM