情况就是这样:
我在窗格中添加了Mesh
和PointLight
,我想从窗格中获取快照并在图像视图中显示结果。但它只有在我将窗格添加到场景时才有效。
有没有办法从未添加到场景的节点拍摄快照?
答案 0 :(得分:6)
注意:为了使CSS和布局正常运行,节点必须是场景的一部分(场景可以附加到舞台,但不一定是)。
您可以创建新场景而不将其附加到舞台,甚至不显示它:
WritableImage writableImage = new WritableImage(1000, 600);
// here is your node such as PointLight
new Circle(200, 200, 50).snapshot(null, writableImage);
new Scene(chartVH, 1000, 600);
chartVH.snapshot(null, writableImage);
File outFile = new File("/tmp/aa.png");
System.out.println(outFile);
try {
ImageIO.write(SwingFXUtils.fromFXImage(writableImage, null), "png", outFile);
} catch (IOException e) {
e.printStackTrace();
}