使用javafx中的文件对话框保存矩形的背景图像

时间:2016-04-20 10:58:50

标签: java user-interface javafx

我的场景中有两个矩形。然后我使用setFill()在这些矩形中设置背景并进行一些更改。如何使用saveDialog将这些图像保存到磁盘?这是我的保存功能 -

  FileChooser fileChooser = new FileChooser();
  fileChooser.getExtensionFilters().add(new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif"));
  fileChooser.setTitle("Save Image");
  File file = fileChooser.showSaveDialog(window);
  rect2.getFill();
  SaveFile(file);

1 个答案:

答案 0 :(得分:1)

您可以通过调用节点上的snapshot(...)从任意节点创建javafx.scene.image.Image

Image img = rect2.snapshot(null, null);

javax.imageio.ImageIO类具有以标准格式保存图像的方法,但仅适用于AWT图像,因此您需要先转换它:

BufferedImage bImg = SwingFXUtils.fromFXImage(img, null);
String format = file.getName().substring(file.getName().lastIndexOf(".")+1);
ImageIO.write(bImg, format, file);