2017-04-13 3 views
0

Hier ist der Code-Schnipsel, wo ich das Bild mit einer .png Erweiterung speichern:Wie kann ich in Java meine Standard-Dateierweiterung machen .png

WritableImage img = rectCanvas.snapshot(new SnapshotParameters(), null); 
     JFileChooser chooser = new JFileChooser(); 
     chooser.setCurrentDirectory(new File(System.getProperty("user.home"))); 
     int result = chooser.showSaveDialog(null); 
     if (result == JFileChooser.APPROVE_OPTION) { 
      try { 
     File fileToSave = chooser.getSelectedFile(); 
       ImageIO.write(SwingFXUtils.fromFXImage(img, null), "png", fileToSave); 
      } catch (IOException ex) { 
       Logger.getLogger(GuiClass.class.getName()).log(Level.SEVERE, null, ex); 
      } 
     } 

Ich mag .png meine Standard-Dateierweiterung sein. Wenn ich jedoch ein Bild in einer Datei speichern und den Speicherdialog öffnen möchte, muss ich den Dateinamen im folgenden Format eingeben: filename.png. Wie kann ich den PNG-Teil entfernen und als Standard festlegen?

+3

Was ist die Erweiterung der Datei, die Sie erhalten, wenn Sie 'chooser.getSelectedFile()' nennen? –

+0

Wenn ich mir die Eigenschaften der gespeicherten Datei anschaue, sehe ich .file .Das beantwortet die Frage oder habe ich Ihre Frage falsch beantwortet? – melar

+1

@melar Sie öffnen eine Dateiauswahl. Was machst du mit diesem Dateiwähler? Gibst du einen neuen Dateinamen ein? Wenn ja, was trittst du ein? Wählen Sie eine vorhandene Datei aus? Wenn ja, wie lautet der Name und die Erweiterung? –

Antwort

2

Was stellen Sie als Wert von "fileToSave" ein? Wenn das nicht .png ist, sollte es keine png-Erweiterung sein.

Siehe die folgenden von Oracles Dokumentation:

try { 
    // retrieve image 
    BufferedImage bi = getMyImage(); 
    File outputfile = new File("saved.png"); 
    ImageIO.write(bi, "png", outputfile); 
} catch (IOException e) { 
    ... 
} 
+0

jetzt mein Problem mit Ihrem Hinweis gelöst! Vielen Dank! – melar

Verwandte Themen