2017-02-08 7 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); 

는 "저장 대화 상자를 filechooser"로부터 사용자의 확장을받을 수 있도록 확장자를 가진 이미지를 작성하는 것입니다.

javafx의 Filechooser에서 & 확장 메서드를 설정하는 방법을 모르겠으므로 실제 구현을 찾을 수 없습니다.

마지막 코드 줄을보십시오 : "fileChooser 저장 대화 상자"에서 사용자가 선택한 확장명으로 "png"를 변경하는 방법을 알고 싶습니다.

미리 감사드립니다.

+2

당신은 사용자가 choosed 할 확장'getSelectedExtensionFilter'으로 확인할 수 있습니다. 또는 파일의 이름을 확인할 수 있습니다. – IQV

+0

이 예는 이것을 완료하는 데 필요한 단계에 대한 아이디어를 제공합니다. 내선을 선택하는 방식에 따라 파일을 올바른 형식으로 변환하는 방법이 필요하다고 생각합니다. 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); 
}