Image 使用FileChooser保存可写映像

Image 使用FileChooser保存可写映像,image,javafx,filechooser,Image,Javafx,Filechooser,我有一个可写映像,我想使用文件选择器保存。 我该怎么做,因为它不适用于此代码: public void handle(ActionEvent event) { FileChooser fileChooser = new FileChooser(); //Set extension filter FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter

我有一个可写映像,我想使用文件选择器保存。 我该怎么做,因为它不适用于此代码:

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()类的代码:


您不需要使用文件编写器,而需要AWT缓冲的图像读取器,请尝试以下操作

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

}
我也在网上找到了这个

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

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

}