Die Antwort liegt im Tutorial der Java-Dokumentation zum Schreiben / Speichern eines Bildes .
Die Image I/O
Klasse bietet die folgende Methode zum Speichern eines Bildes:
static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException
Das Tutorial erklärt das
Die BufferedImage-Klasse implementiert die RenderedImage-Schnittstelle.
so kann es in der Methode verwendet werden.
Beispielsweise,
try {
BufferedImage bi = getMyImage(); // retrieve image
File outputfile = new File("saved.png");
ImageIO.write(bi, "png", outputfile);
} catch (IOException e) {
// handle exception
}
Es ist wichtig, den write
Aufruf mit einem try-Block zu umgeben , da die Methode gemäß der API ein IOException
"Wenn beim Schreiben ein Fehler auftritt" auslöst.
Außerdem werden das Ziel, die Parameter, die Rückgaben und die Würfe der Methode ausführlicher erläutert:
Schreibt ein Bild mit einem beliebigen ImageWriter, der das angegebene Format unterstützt, in eine Datei. Wenn bereits eine Datei vorhanden ist, wird deren Inhalt verworfen.
Parameter:
im - ein zu schreibendes RenderedImage.
formatName - Ein String, der den informellen Namen des Formats enthält.
Ausgabe - eine Datei, in die geschrieben werden soll.
Kehrt zurück:
false, wenn kein geeigneter Writer gefunden wird.
Würfe:
IllegalArgumentException - Wenn ein Parameter null ist.
IOException - wenn beim Schreiben ein Fehler auftritt.
Allerdings formatName
scheinen mag noch recht vage und mehrdeutig; Das Tutorial klärt es ein wenig auf:
Die ImageIO.write-Methode ruft den Code auf, der das Schreiben eines PNG-Writer-Plug-Ins durch PNG implementiert. Der Begriff Plug-In wird verwendet, da Image I / O erweiterbar ist und eine Vielzahl von Formaten unterstützen kann.
Die folgenden Standard-Plugins für das Bildformat sind jedoch immer vorhanden: JPEG, PNG, GIF, BMP und WBMP.
Für die meisten Anwendungen ist es ausreichend, eines dieser Standard-Plugins zu verwenden. Sie haben den Vorteil, leicht verfügbar zu sein.
Es gibt jedoch zusätzliche Formate, die Sie verwenden können:
Die Image I / O-Klasse bietet eine Möglichkeit, die Unterstützung für zusätzliche Formate einzubinden, die verwendet werden können, und es gibt viele solcher Plug-Ins. Wenn Sie daran interessiert sind, welche Dateiformate zum Laden oder Speichern in Ihrem System verfügbar sind, können Sie die Methoden getReaderFormatNames und getWriterFormatNames der ImageIO-Klasse verwenden. Diese Methoden geben ein Array von Zeichenfolgen zurück, in denen alle in dieser JRE unterstützten Formate aufgelistet sind.
String writerNames[] = ImageIO.getWriterFormatNames();
Das zurückgegebene Array von Namen enthält alle zusätzlichen Plug-Ins, die installiert sind, und jeder dieser Namen kann als Formatname zur Auswahl eines Bildschreibers verwendet werden.
Ein vollständiges und praktisches Beispiel finden Sie im Beispiel von Oracle SaveImage.java
.