我有一张地图的帆布。我希望画布变暗,然后画布中的多边形变得透明(聚焦,不会变暗)。帆布上的透明多边形
我无法获得多边形的透明度。现在我用一种颜色填充多边形,但如何用透明颜色填充多边形?
我做错了吗?
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