3

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

例如

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);

这应该在原本透明的画布上绘制一个圆形“洞”。

显然不是。使用 TRANSPARENT 绘图没有任何效果,因为默认的混合模式 SRC_OVER 保持目标不透明度。不幸的是,所有替代混合模式都声称对 alpha 使用相同的方程,如 SRC_OVER。似乎不存在混合模式“SUBTRACT”之类的东西。

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

我的意思是没有画出看起来像洞的边界的线条,也没有使用 setLineWidth。我想将它与更复杂的形状一起使用,所以 clearRect() 也太有限了......

非常感谢提前!

4

0 回答 0