如何使用 javaFx 中的 FileChooser 以用户选择的格式保存图像?
How to save Image in a user selected format using FileChooser in javaFx?
我正在尝试以用户从 FileChooser SaveDialog 中选择的格式保存图像。这是我的代码:
java docs says the same thing for both get and set methods没看懂
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 save dialog" 获取用户的扩展名
并使用该扩展名写入图像。
我不知道如何在 javaFx 的 Filechooser 中使用 get&set 扩展方法,也找不到实际的实现。
查看我的最后一行代码:我想知道如何将 "png" 更改为用户从 "fileChooser save dialog" 中选择的任何扩展名。
提前致谢。
selected 扩展过滤器只是用户 select 从对话框中的组合框(或类似框)中获取的内容。这可能与文件的实际扩展名匹配,也可能不匹配。例如。使用 windows 您可以 select png
过滤器,但使用键盘输入 xyz.gif
.
您应该从 showSaveDialog
返回的文件中得到结尾:
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);
}
我正在尝试以用户从 FileChooser SaveDialog 中选择的格式保存图像。这是我的代码:
java docs says the same thing for both get and set methods没看懂
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 save dialog" 获取用户的扩展名 并使用该扩展名写入图像。
我不知道如何在 javaFx 的 Filechooser 中使用 get&set 扩展方法,也找不到实际的实现。
查看我的最后一行代码:我想知道如何将 "png" 更改为用户从 "fileChooser save dialog" 中选择的任何扩展名。
提前致谢。
selected 扩展过滤器只是用户 select 从对话框中的组合框(或类似框)中获取的内容。这可能与文件的实际扩展名匹配,也可能不匹配。例如。使用 windows 您可以 select png
过滤器,但使用键盘输入 xyz.gif
.
您应该从 showSaveDialog
返回的文件中得到结尾:
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);
}