globalCompositeOperation

globalCompositeOperation

如何使用globalCompositeOperation擦除内容?

http://canvaspaint.org/有橡皮擦,但这只是一条白线-仅当您的背景为白色时才可以...

我知道您可以使用ctx.clearRect()。但这实际上对我没有用,因为用橡皮擦(设置为8x8px)拖动鼠标时,它只能使未连接的8x8px正方形-并不是真正的平滑线。

有没有办法使用globalCompositeOperation作为橡皮擦?

就像是:

ctx.globalCompositeOperation = "___something___";
ctx.beginPath();
ctx.lineTo(mouseX , mouseY);
ctx.closePath();

谢谢。

最佳答案

是的,您可以使用globalCompositeOperation as described here进行擦除。只需将其设置为"copy"并使用例如strokeStyle = "rgba(0,0,0,0)",这将清除笔画中的 Canvas 。

更新:,感谢您指出现在@ will-huang无法使用。如前所述,您应该将globalCompositeOperation设置为destination-out,而strokeStyle设置为rgba(0,0,0,1)。 (实际上,您可以具有任何RGB值,只需要将alpha设置为1.0即可完全擦除笔触的内容。)

这是一个擦除示例:http://jsfiddle.net/FGcrq/1/

关于javascript - HTML5 Canvas:globalCompositeOperation(橡皮擦),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3445935/

10-09 22:01