2017-02-08 5 views
-2

FileChooser SaveDialogからユーザーが選択した形式でイメージを保存しようとしています。ここに私のコードです:javaFxのFileChooserを使用して、ユーザーが選択した形式で画像を保存する方法は?

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); 

は 「ダイアログ保存ファイルチューザ」からユーザーから拡張子を取得し、その拡張子を持つ画像を作成することです。

私はjavaFxのFilechooserで&拡張メソッドを設定する方法を知りませんし、実用的な実装を見つけることができませんでした。

私の最後のコード行を見てください: "fileChooser保存ダイアログ"からユーザが選択した拡張子に "png"を変更する方法を知りたい。

ありがとうございます。

+2

あなたは、ユーザーが選びまし拡張子 'getSelectedExtensionFilter'に確認することができます。代わりに、ファイルの名前を確認することができます。 – IQV

+0

この例では、これを完了するために必要な手順を示します。私はあなたが選択されたextに応じてファイルを正しいフォーマットに変換する方法が必要だと思います。 http://java-buddy.blogspot.com/2012/05/save-file-with-javafx-filechooser.html – Sedrick

+0

@IQVは私に小さな実装例を教えてくれます。 – KalyanamKiran

答えて

0

選択した拡張フィルタは、ダイアログボックスのコンボボックス(または同様のもの)からユーザーが選択したものだけです。これは、ファイルの実際の拡張子と一致する場合と一致しない場合があります。例えば。ウィンドウでは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); 
} 
関連する問題