小编MrE*_*aus的帖子

使用透明像素保存javafx.scene.canvas

我正在尝试编写一个简单的"Paint"式JavaFX-Application.我借鉴了JavaFX.scene.canvas,这非常有效.

现在我想将此画布保存为".png"图像.可以工作,但透明像素与白色交换.

如何将透明像素保存为透明像素?

以下是我保存画布的方法:

private void saveFile(){
    FileChooser fc = new FileChooser();
    fc.setInitialDirectory(new File("res/maps"));
    fc.getExtensionFilters().add(new FileChooser.ExtensionFilter("PNG","*.png"));
    fc.setTitle("Save Map");
    File file = fc.showSaveDialog(primaryStage);
    if(file != null){
        WritableImage wi = new WritableImage((int)WIDTH,(int)HEIGHT);
        try {                    ImageIO.write(SwingFXUtils.fromFXImage(canvas.snapshot(null,wi),null),"png",file);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java javafx-8

5
推荐指数
1
解决办法
3494
查看次数

标签 统计

java ×1

javafx-8 ×1