![](/img/trans.png)
[英]JavaFX: Get image from FileChooser and save it in a byte[]
[英]How to save Image in a user selected format using FileChooser in javaFx?
我正在嘗試從 FileChooser SaveDialog 以用戶選擇的格式保存圖像。 這是我的代碼:
java docs 對 get 和 set 方法說同樣的事情我不明白。
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
。
您應該從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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.