JavaFX Canvas“绘制”透明度(绘制孔)

时间:2018-11-27 16:07:01

标签: java canvas javafx alphablending blend-mode

在预先用较高的alpha绘制JFX画布后,是否可以为该矩形(或任何形状)设置较低的值?

例如

gc.setFill(Color.BLACK)
gc.fillRoundRect(0, 0, 30, 30, 2, 2);
// Next command shall set transparency
gc.setFill(Color.TRANSPARENT)
gc.fillRoundRect(10, 10, 10, 10, 2, 2);

这应该在原本透明的Canvas中绘制一个矩形的“孔”。

显然不是。使用TRANSPARENT绘制无效,因为默认的blendmode SRC_OVER保留了目标的不透明度。 不幸的是,所有其他混合模式都声称对Salpha使用相同的方程式,例如SRC_OVER。 似乎不存在混合模式“ SUBTRACT”之类的东西。

有什么办法可以直接实现我想要的?

我的意思是不绘制看起来像孔边界的线并且不使用setLineWidth。我想将其用于更复杂的形状,因此clearRect()也太局限了...

非常感谢!

0 个答案:

没有答案