有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用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) 个答案

  1. # 1 楼答案

    通过调用节点上的^{},可以从任何节点创建javafx.scene.image.Image

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

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

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