12.10.1 | Lesen und Schreiben von Bildern |
Das Image-I/O-API wird am einfachsten über die static
vereinbarten Methoden der Klasse ImageIO benutzt.
Zum Lesen wird lediglich die Methode read(), zum Schreiben
die Methode write() benötigt. Durch folgende
Zeilen wird somit ein Bild gelesen:
import javax.imageio.ImageIO;
...
File f = new File("c:\\img.gif");
BufferedImage img = ImageIO.read(f);
...
Beim Lesevorgang wird automatisch geprüft, ob ein Modul installiert ist, mit dem
das Bildformat gelesen werden kann. Falls ja, wird das Bild als
BufferedImage-Exemplar zurückgegeben.
Analog dazu kann der Inhalt eines BufferedImage wieder in einem
konkreten Format geschrieben werden:
import javax.imageio.ImageIO;
...
BufferedImage img;
...
File f = new File("c:\\imgout.gif");
BufferedImage img = ImageIO.write(img, "png", f);
...
Der zweite Parameter der write()-Methode erwartet das Format, in dem
das Bild geschrieben werden soll (im obigen Beispiel png).
Die aktuell installierten Bildformate können über die ebenfalls
static vereinbarten Methoden getReaderFormatNames()
und getWriterFormatNames() ermittelt werden.
Somit werden durch folgende Zeilen alle unterstützten Schreibformate ausgegeben:
String[] names = ImageIO.getWriterFormatNames();
for(int i=0; i < names.length; i++)
System.out.println(names[i]);
Ohne zusätzliche Plug-ins ist
das J2SDK 1.4 in der Lage, gif, jpg
und png zu lesen und jpg und png zu schreiben.
Zusätzliche Plug-ins müssen der Plug-in-Schnittstelle entsprechen und werden installiert, indem man das JAR-Archiv mit den Klassen im Klassenpfad verfügbar macht.