在画布上更改路径的fillStyle时,实际上混合不会发生变化

时间:2016-07-18 20:35:27

标签: javascript canvas alphablending

我正在尝试将路径的fillStyle更改为完全透明,但我得到混合颜色。

{{1}}

如何更改路径fillStyle?是否可以清除画布的矩形区域?

1 个答案:

答案 0 :(得分:1)

Okey,所以这里有简单的解决方案。非常感谢Kalido

在我的情况下,我可以将globalCompositeOperation值更改为source-in然后我可以更改颜色(和不透明度)而不是混合颜色。

请注意,您将此值更改为整个上下文,因此我发现使用它后将其设置回默认值非常好。

我的代码示例:

var changeElement = function(path) {
    ctx.globalCompositeOperation = "source-in";
    ctx.fillStyle = "rgba(0,0,0,0)";
    ctx.strokeStyle = ctx.fillStyle;
    ctx.fill(path);
    ctx.stroke(path);
    ctx.globalCompositeOperation = "source-over"; //setting back to default value to prevent odd behavior of other part of canvas.
}

changeElement(path);