Как сохранить изображение из ImageView при помощи FileChooser
Моё приложение сохраняет изображение в этом методе:
private void saveFile() throws IOException {
FileChooser fileChooser = new FileChooser();
fileChooser.setInitialDirectory(new File("D:\\save_pict"));
fileChooser.setTitle("Save Picture");
fileChooser.setInitialFileName("new picture");
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("JPG", "*.jpg"),
new FileChooser.ExtensionFilter("BMP", "*.bmp"),
new FileChooser.ExtensionFilter("PNG", "*.png")
);
File file = fileChooser.showSaveDialog(null);
if (file != null) {
System.out.println("Процесс сохранения файла");
if (imgView.getImage() != null) {
ImageIO.write(SwingFXUtils.fromFXImage(imgView.getImage(), null), "jpg", file);
System.out.println("Файл сохранен\n");
} else System.out.println("Файл не найден\n");
} else {
System.out.println("Файл не удалось сохранить\n");
}
}
Я изменяю изображение, и после сохраняю измененное изображение в ImageView:
Image pict = SwingFXUtils.toFXImage(result, null);
imgView.setImage(pict);
После этого действия, метод saveFile не сохраняет изображение, в чем может быть проблема?
Если я сохраню сразу после изменений в изображении, все работает отлично:
File output = new File("test_grey.jpg");
ImageIO.write(result, "jpg", output);