如何在不通知用户的情况下将画布保存为 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 文件,的主要内容,如果未能解决你的问题,请参考以下文章
imagemagick 在不使用 -extent 的情况下将画布更改为正方形(保留最长边)
在不显示文件保存对话框的情况下将 FixedDocument/XPS 打印为 PDF