gpt4 book ai didi

java - 在 JavaFX 中打开、编辑和保存 file.pgm 上的图像 Canvas

转载 作者:行者123 更新时间:2023-11-30 11:17:30 26 4
gpt4 key购买 nike

此绘图区用 Canvas 绘制图像

        Canvas canvas= new Canvas();
canvas.setHeight(500);
canvas.setWidth(700);

GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setFill(Color.BLACK);
gc.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
gc.setFill(Color.WHITE);
gc.fillRect(1, 1, canvas.getWidth() - 2, canvas.getHeight() - 2);

我用这种方法将绘图 Canvas 导出到 imagem.pgn 或快照及其正确

public void snapshotCanvasImageToPNG(Stage primaryStage) {

FileChooser fileChooser = new FileChooser();

FileChooser.ExtensionFilter extFilter
= new FileChooser.ExtensionFilter("png files (*.png)", "*.png");
fileChooser.getExtensionFilters().add(extFilter);

File file = fileChooser.showSaveDialog(primaryStage);

if (file != null) {
try {
WritableImage writableImage = new WritableImage((int) canvas.getWidth(), (int) canvas.getHeight());
canvas.snapshot(null, writableImage);
RenderedImage renderedImage = SwingFXUtils.fromFXImage(writableImage, null);
ImageIO.write(renderedImage, "png", file);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

我对使用这些方法打开编辑并将 Canvas 绘图保存到 file.pgm 有很多疑问我做了这个但是完成起来很复杂

public void openFilePGM(Stage primaryStage) {

FileChooser fileChooser = new FileChooser();

FileChooser.ExtensionFilter extFilter
= new FileChooser.ExtensionFilter("PGM files (*.pgm)", "*.pgm");
fileChooser.getExtensionFilters().add(extFilter);


File file = fileChooser.showOpenDialog(primaryStage);

if (file != null) {
//doubt here
}
}

public void saveFilePGM(Stage primaryStage) {

FileChooser fileChooser = new FileChooser();

FileChooser.ExtensionFilter extFilter
= new FileChooser.ExtensionFilter("PGM files (*.pgm)", "*.pgm");
fileChooser.getExtensionFilters().add(extFilter);

File file = fileChooser.showSaveDialog(primaryStage);

if (file != null) {
//doubt here
}
}

最佳答案

在 JavaFX 中使用 PGM 图像的唯一方法是通过 ImageJ 或 Java Advanced Imaging@VGR所述或其他第三方插件。

请查看this plugin包含此类 IO 函数的代码。

您可能还想看看 this answer它可以向您展示可以使用 JavaFX 轻松处理的格式。

关于java - 在 JavaFX 中打开、编辑和保存 file.pgm 上的图像 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com