Mit Hilfe der JAI-Bibliothek können u.a. auch TIFF-Bilder dargestellt und gespeichert werden.
Das Beispiel zeigt, wie ein TIFF-Bild geladen, angezeigt und wieder abgespeichert werden kann.
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.awt.image.renderable.ParameterBlock;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.ParameterBlockJAI;
import javax.media.jai.PlanarImage;
import javax.media.jai.RenderedOp;
import javax.swing.JFrame;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.widget.DisplayJAI;
public class TiffDarstellenClass extends JFrame {
private static final long serialVersionUID = 1L;
private PlanarImage source = null;
public TiffDarstellenClass() {
String inputFilename = "bild.tif";
String outputFilenameBMP = "bild.bmp";
FileSeekableStream image = null;
try {
image = new FileSeekableStream(inputFilename);
} catch (IOException e) {
e.printStackTrace();
System.exit(0);
}
ParameterBlock pb = new ParameterBlock();
pb.add(image);
RenderedOp image1 = JAI.create("tiff", pb);
DisplayJAI panel = new DisplayJAI(image1);
this.add(panel);
JAI.create("filestore", image1, outputFilenameBMP, "BMP");
}
public static void main(String[] args) {
TiffDarstellenClass jtc = new TiffDarstellenClass();
jtc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jtc.setVisible(true);
jtc.pack();
}
}
Ein InputStream vom Typ FileSeekableStream
wird mit Hilfe des Pfades der zu öffnenden Datei gebildet.
Nun muss zunächst ein Objekt vom Typ ParameterBlock
gebildet und diesem die Instanz des InputStream
übergeben werden. Mit Hilfe des ParameterBlock-Objektes
wird über die Methode create()
der Klasse JAI
eine Instanz eines PlanarImage erstellt. Sie stellt die
zentrale Klasse eines zweidimensionalen RenderedImage
der JAI-Bibliothek dar.
Zur Darstellung des geladenen
Bildes wird ein Objekt eines DisplayJAI erzeugt. Die
Klasse erweitert JPanel, ihr Konstruktor erwartet ein
Objekt eines RenderedImage, das im Panel angezeigt
wird.
Zum Speichern des Bildes wird über die Methode
JAI.create() ein Operator gebildet, dem ein Bezeichner,
der Ausgangs-Operator, der Speicher-Pfad und der Dateityp als
String übergeben werden.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.