如何在javaFx中使用FileChooser以用户选择的格式保存图像?
我正在尝试从FileChooser SaveDialog以用户选择的格式保存图像。这是我的密码: 我不明白如何在javaFx中使用FileChooser以用户选择的格式保存图像?,java,image,javafx,filechooser,save-dialog,Java,Image,Javafx,Filechooser,Save Dialog,我正在尝试从FileChooser SaveDialog以用户选择的格式保存图像。这是我的密码: 我不明白 File f1 = new File("C:\\Users\\KIRAN\\Desktop\\Andromeda1.png"); FileChooser stegoImageSaver = new FileChooser(); stegoImageSaver.setTitle("Save Image File"); stegoImageSaver.setI
File f1 = new File("C:\\Users\\KIRAN\\Desktop\\Andromeda1.png");
FileChooser stegoImageSaver = new FileChooser();
stegoImageSaver.setTitle("Save Image File");
stegoImageSaver.setInitialDirectory(new File("C:\\"));
stegoImageSaver.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("PNG Files", "*.png"),
new FileChooser.ExtensionFilter("BMP Files", "*.bmp"),
new FileChooser.ExtensionFilter("GIF Files", "*.gif"));
File f1 = stegoImageSaver.showSaveDialog(null);
ImageIO.write(img, "png", f1);
我需要的是从“filechooser保存对话框”中从用户处获取扩展名
并用该扩展名编写图像
我不知道如何在javaFx的Filechooser中使用get&set扩展方法,也找不到实际的实现
查看我的最后一行代码:我想知道如何将“png”更改为用户从“fileChooser保存对话框”中选择的任何扩展名
提前感谢。所选扩展筛选器仅为用户从对话框中的组合框(或类似框)中选择的内容。这可能与文件的实际扩展名匹配,也可能不匹配。例如,使用windows,您可以选择
png
过滤器,但可以使用键盘输入xyz.gif
您应该从从showsavedilog
返回的文件中获取结尾:
File f1 = stegoImageSaver.showSaveDialog(null);
if (f1 != null) {
String name = f1.getName();
String extension = name.substring(1+name.lastIndexOf(".")).toLowerCase();
ImageIO.write(img, extension, f1);
}
您可以使用
getSelectedExtensionFilter
检查用户选择的扩展名。你也可以检查文件名。这个例子应该能让你了解完成这项工作所需的步骤。我认为您需要一种方法将文件转换为正确的格式,具体取决于选择的ext@IQV你能给我一个实现它的小例子吗?对不起,我只看了文档。但我认为可能是这样的:FileChooser.ExtensionFilter fcExt=stegoImageSaver.getSelectedExtensionFilter()然后stringext=fcExt.getExtensions().get(0)代码>。剩下的你得自己试试,没用了。