情况是这样的:
我在 Pane 中添加了Mesh
和PointLight
,我想从 Pane 中拍摄快照并在 ImageView 中显示结果。但是仅当我将 Pane 添加到场景时它才起作用。
有什么方法可以从尚未添加到场景的节点获取快照?
最佳答案
根据Node.snapshot的文档
您可以创建新的场景而无需将其附加到舞台上甚至不显示它:
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();
}