如何在不通知用户的情况下将画布保存为 png 文件,

Posted

技术标签:

【中文标题】如何在不通知用户的情况下将画布保存为 png 文件,【英文标题】:How to save canvas as png file without inform user, 【发布时间】:2021-12-30 07:11:03 【问题描述】:

我想用 javafx 保存我的画布而不实现 showDialog,我可以用 showDialog 做到这一点,但我想删除它。

    public void exportCanvasToPNG(String fileName) 
        // face = Canvase
        if (face != null) 
            WritableImage img = face.snapshot(new SnapshotParameters(), null);

            FileChooser fChooser = new FileChooser();
            fChooser.setTitle("Sauvegarde preview");
            fChooser.setInitialFileName(fileName);
            fChooser.setInitialDirectory(dir);
            fChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Fichier PNG", "*.png"));

            // selectedFile = File
            selectedFile = fChooser.showSaveDialog(stage);

            try 
                if (selectedFile != null) 
                    ImageIO.write(SwingFXUtils.fromFXImage(img, null), "png", selectedFile);
                
             catch (IOException e) 
                e.printStackTrace();
            

        

    ``

【问题讨论】:

到底是什么问题?只需在某个目标目录中创建一个文件并保存您想要的任何内容。 不要使用FileChooser 是的,就是那个 kleopatra,我想在没有 showSaveDialog 的情况下这样做 然后完成一个关于 java 语言基础的教程,特别是关于与文件系统的交互,将你学到的东西应用到你的上下文中,当卡住时返回 minimal reproducible example 来演示什么没有按预期工作 【参考方案1】:
public void exportCanvasToPNG(String fileName) 
    // face = Canvas
    if (face != null) 
        WritableImage img = face.snapshot(new SnapshotParameters(), null);
        try 
            File outputFile = new File("FaceSnapshot.png");
            ImageIO.write(SwingFXUtils.fromFXImage(img, null), "png", outputFile);
         catch (IOException e) 
            e.printStackTrace();
        

    


【讨论】:

非常感谢!!! swpalmer @BabaProg 见***.com/help/someone-answers

以上是关于如何在不通知用户的情况下将画布保存为 png 文件,的主要内容,如果未能解决你的问题,请参考以下文章

在不更改字体的情况下将SVG转换为PNG

imagemagick 在不使用 -extent 的情况下将画布更改为正方形(保留最长边)

如何在不损失质量的情况下将 PNG 转换为 BMP

在不显示文件保存对话框的情况下将 FixedDocument/XPS 打印为 PDF

如何在不复制的情况下将画布 imageData 传递给 emscripten c++ 程序?

在不更改像素值的情况下将 svg 转换为 png