我有一張地圖的帆布。我希望畫布變暗,然後畫布中的多邊形變得透明(聚焦,不會變暗)。帆布上的透明多邊形
我無法獲得多邊形的透明度。現在我用一種顏色填充多邊形,但如何用透明顏色填充多邊形?
我做錯了嗎?
canv = document.getElementById("canvas");
ctx = canv.getContext("2d");
image = document.getElementById('img_holder');
ctx.drawImage(image,0,0, canv.width, canv.height);
ctx.fillStyle = "rgba(0, 0, 0, 0.5)";
ctx.fillRect(0, 0, 870, 500);
ctx.restore();
ctx.save();
ctx.globalCompositeOperation = 'destination-out';
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(100,50);
ctx.lineTo(100, 100);
ctx.lineTo(200, 150);
ctx.lineTo(10, 150);
ctx.fillStyle = "rgba(0, 0, 0, 0.5)";
ctx.closePath();
ctx.fill();
爲什麼使用'ctx.globalCompositeOperation'繪製透明形狀?你簡單的'fillStyle = rgba'應該可以做到這一點......如果你需要繪製一個透明的圖像,'globalCompositeOperation'是有用的,但是填充一個形狀很容易,就像'fillStyle'一樣... – somethinghere
@somethinghere - 我很喜歡新的畫布,所以也許我誤解了你的答案 - 但這是你的意思嗎? http://jsfiddle.net/Sykvr/142/。這劑量使多邊形完全透明。我希望它能像真正的照片一樣成爲父母,而不需要黑色調光器覆蓋。也許我誤解了它的工作原理。 –
您是否試圖從黑色透明覆蓋層中刪除多邊形? – somethinghere