Google дает мне много старых результатов для этого (JavaFX). Люди указывают на код, используя:
RenderedImage, SwingFXUtils и ImageIO
У меня openJFX11, и он не содержит этих библиотек.
Как сохранить холст, используя встроенные библиотеки JFX11?
Мой класс SaveUtil использует старые библиотеки, которые не могут быть найдены:
public void saveCanvas(){
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){
try {
WritableImage writableImage = new WritableImage(CANVAS_WIDTH, CANVAS_HEIGHT);
canvas.snapshot(null, writableImage);
RenderedImage renderedImage = SwingFXUtils.fromFXImage(writableImage, null);
ImageIO.write(renderedImage, "png", file);
} catch (IOException e) {
e.printStackTrace();
}
}
}