我正在 JavaFX 中处理一个 gui,它需要在画布上合成大量对象(通常使用 alpha 蒙版和类似的)。
为了在 HTML5 画布上进行比较,这可以通过drawImage
函数在 DOM 结构之外的临时画布对象的帮助下轻松完成。例如,要在带有 alpha 蒙版的画布上绘制图像,我首先在临时画布上绘制图像,使用 绘制(即 blit)蒙版在其上globalCompositeOperation = "destination-in"
,然后使用复合模式在原始画布上绘制临时画布source-over
。临时画布可以重新用于每个此类操作。非常简单。
但是,从目前我所看到的,在 JavaFX 中推荐的这样做的方法是使用分组层,即多个叠加的画布节点,它们永远不会“变平”。
我也可以在 HTML5 中这样做,但在我最近的项目中,这会导致数十或数百个可见层,这显然非常愚蠢。我的方法给了我出色的表现。
话虽如此,有没有一种合理的方法可以在 JavaFX 画布上做同样的事情?我认为手动执行逐像素复制是笨拙的最后手段。
我错过了什么?我是否以错误的方式思考 JavaFX?
长风秋雁
相关分类