Как сохранить openJFX11 Canvas в виде PNG / растрового изображения? - PullRequest
0 голосов
/ 11 мая 2019

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();
        }
    }

}
...