JavaFX:将窗格视图保存到图像

时间:2016-06-25 13:05:35

标签: java javafx

假设我在StackPane上有N层,我会在StackPane上进行混合,绘图,图像,矩形等。如何保存结果?即StackPane在屏幕上显示的内容。

通常,假设我有任何可绘制的JavaFX元素,我将如何将该特定元素绘制到图像文件中。

我知道swing会提供getGraphics()直接绘制到图像的像素缓冲区,但我找不到类似于NodePane的任何内容。

1 个答案:

答案 0 :(得分:4)

您可以Node public void captureAndSaveDisplay(){ FileChooser fileChooser = new FileChooser(); //Set extension filter fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("png files (*.png)", "*.png")); //Prompt user to select a file File file = fileChooser.showSaveDialog(null); if(file != null){ try { //Pad the capture area WritableImage writableImage = new WritableImage((int)getWidth() + 20, (int)getHeight() + 20); snapshot(null, writableImage); RenderedImage renderedImage = SwingFXUtils.fromFXImage(writableImage, null); //Write the snapshot to the chosen file ImageIO.write(renderedImage, "png", file); } catch (IOException ex) { ex.printStackTrace(); } } } 并将其保存到文件

涵盖以下内容:snapshot

我倾向于使用类似下面的内容:

GCM-DMM : broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=THE_PACKAGE_NAME (has extras) }