La risposta si trova nel Tutorial per la scrittura / salvataggio di un'immagine della documentazione Java .
La Image I/O
classe fornisce il seguente metodo per salvare un'immagine:
static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException
Il tutorial lo spiega
La classe BufferedImage implementa l'interfaccia RenderedImage.
quindi può essere utilizzato nel metodo.
Per esempio,
try {
BufferedImage bi = getMyImage(); // retrieve image
File outputfile = new File("saved.png");
ImageIO.write(bi, "png", outputfile);
} catch (IOException e) {
// handle exception
}
È importante racchiudere la write
chiamata con un blocco try perché, come per l'API , il metodo genera un fileIOException
"se si verifica un errore durante la scrittura"
Vengono inoltre spiegati l'obiettivo, i parametri, i ritorni e i lanci del metodo, in modo più dettagliato:
Scrive un'immagine utilizzando un ImageWriter arbitrario che supporta il formato specificato in un file. Se è già presente un file, il suo contenuto viene eliminato.
parametri:
im - una RenderedImage da scrivere.
formatName - una stringa contenente il nome informale del formato.
output - un file su cui scrivere.
Ritorna:
false se non viene trovato alcun writer appropriato.
Produce:
IllegalArgumentException - se un parametro è null.
IOException - se si verifica un errore durante la scrittura.
Tuttavia, formatName
può ancora sembrare piuttosto vago e ambiguo; il tutorial lo chiarisce un po ':
Il metodo ImageIO.write chiama il codice che implementa PNG scrivendo un "plug-in di scrittura PNG". Il termine plug-in viene utilizzato poiché Image I / O è estensibile e può supportare un'ampia gamma di formati.
Ma sono sempre presenti i seguenti plugin di formato immagine standard: JPEG, PNG, GIF, BMP e WBMP.
Per la maggior parte delle applicazioni è sufficiente utilizzare uno di questi plugin standard. Hanno il vantaggio di essere prontamente disponibili.
Esistono, tuttavia, formati aggiuntivi che puoi utilizzare:
La classe Image I / O fornisce un modo per collegare il supporto per formati aggiuntivi che possono essere utilizzati e molti di questi plug-in esistono. Se sei interessato a quali formati di file sono disponibili per caricare o salvare nel tuo sistema, puoi usare i metodi getReaderFormatNames e getWriterFormatNames della classe ImageIO. Questi metodi restituiscono un array di stringhe che elenca tutti i formati supportati in questo JRE.
String writerNames[] = ImageIO.getWriterFormatNames();
L'array di nomi restituito includerà eventuali plug-in aggiuntivi installati e uno qualsiasi di questi nomi può essere utilizzato come nome di formato per selezionare un writer di immagini.
Per un esempio completo e pratico, si può fare riferimento all'esempio di Oracle SaveImage.java
.