我正在寻找一种渲染场景的视图隐藏方式,然后创建第二个缩小的副本以进行初始显示的方法。显然,我可以再次渲染内容,以仅创建较小的副本。使用另一种语言编写的原始代码通过使用平滑(空间过滤)收缩功能来创建小副本产生了更好的结果。 JavaFX中是否有这样的位图复制/缩小/平滑功能,这有什么用吗?
最佳答案
您可以将场景的快照创建为WritableImage
,如下所示:
Scene scene = ... ;
Image image = scene.snapshot(null);
然后在图像视图中使用以下命令显示其缩放版本:
ImageView sceneImage = new ImageView();
sceneImage.setFitWidth(desiredWidth);
sceneImage.setFitHeight(desiredHeight);
// force aspect ratio to be preserved if fitWidth and fitHeight would distort it:
sceneImage.setPreserveRatio(true);
// this provides a tiny bit of control over the scaling used:
sceneImage.setSmooth(true);
sceneImage.setImage(image);