使用 FileChooser 保存可写图像图像

Using FileChooser to save a writableimage image

我有一个可写图像,我想使用 FileChooser 保存。 我该怎么做,因为它不适用于此代码:

public void handle(ActionEvent event) {
          FileChooser fileChooser = new FileChooser();

          //Set extension filter
          FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.png");
          fileChooser.getExtensionFilters().add(extFilter);

          //Show save file dialog
          File file = fileChooser.showSaveDialog(primaryStage);

          if(file != null){
              SaveFile(writableImage, file);
          }
      }

这是 SaveFile() 的代码 Class:

private void SaveFile(writableimage content, File file){
    try {
        FileWriter fileWriter = null;

        fileWriter = new FileWriter(file);
        fileWriter.write(content);
        fileWriter.close();
    } catch (IOException ex) {
    }

}

您需要 AWT 缓冲图像而不是使用文件编写器 reader,试试这个

private void SaveFile(Image content, File file){
    try {
        BufferedImage bufferedImage = SwingFXUtils.fromFXImage(image, null);
        ImageIO.write(bufferedImage, "png", file);
    } catch (IOException ex) {
        ex.printStackTrace();
    }

}

我也在网上找到这个http://java-buddy.blogspot.com/2014/12/javafx-filechooser-open-and-save-image.html

编辑:你还应该打印你的异常,因为当它中断时你不知道它为什么会告诉哪一行中断了它