Java und mehrseitige TIFFs

Ich sag's mal so:

Da ich auch anderswo nicht fündig wurde, hatte ich mich dazu entschlossen, das Ganze via PDF zu realisieren - keine Spitzenlösung, aber das brachte schon mal relativ gute Ergebnisse.
Die TIFF-Lösung wäre allerdings wesentlich schöner, zumal dann auch beim Drucken alles verlustfrei übergeben werden würde und TIFFs auch für Archivierungszwecke akzeptiert werden).

An einem hilfreichen Tutorial oder einen Codebeispiel (z.B. wie man das JAI in Bezug auf mehrseitige TIFFs verwendet), wäre ich weiterhin interessiert.
 
Hi Schnuffie,

also erst einmal musst Du das JAI ImageIO Framework "installieren" (nicht JAI selbst), um TIFFs schreiben zu können. Sind nur ein paar JARs, die Du in den Klassenpfad einbinden musst (ich glaube, eine DLL ist auch noch dabei, welche Du ins Windows\System-Verzeichnis kopieren musst).

Dann müsste folgender Code-Schnippsel funktionieren (ich habe ihn nicht kompiliert):

Iterator<ImageWriter> writers= ImageIO.getImageWritersByFormatName("TIFF");
ImageWriter writer;
if (writers != null) writer= (ImageWriter) writers.next();

writer.setOutput(new FileImageOutputStream(new File("d:\\schnuffie.tif")));
writer.writeInsert(1, new IIOImage(img1, null, null), writer.getDefaultWriteParam());
writer.writeInsert(2, new IIOImage(img2, null, null)
, writer.getDefaultWriteParam());
writer.writeInsert(3, new IIOImage(img3, null, null)
, writer.getDefaultWriteParam());
writer.dispose();

D.h. Du schreibst mit dieser Routine mehrere TIFFs in ein TIFF mit verschiedenen Indizes. Allerdings heißt das nicht zwangsläufig, dass jedes Bild auf einer Druckseite erscheint.

Gruß,

CHRisDeDisk
 
Zuletzt bearbeitet:
Hi !

Mich interessiert als erstes mal, wo bei dir der Unterschied zwischen einem Tiff (welches 4 zusammenhängende Bilder enthält) und einem Gif,Png oder Jpeg (welches ebenfalls aus 4 unterschiedlichen Bildern besteht) liegt ?
Ein Tiff hat den Vorteil, daß du ihm beliebige,selbsdefinierte Tags mitgeben kannst ( daher der Name Tagged Image File Format), sprich du kannst ihm Metadaten mitgeben. Darüber kannst du nun angeben welcher Bereich des Tiffs wohin gehört. Ein Tiff kann soweit ich weiss daher auch in verschiedene Bereiche bzw. Streifen zerlegt werden. Häufig verwendet wird es, was wahrscheinlich dein Beweggrund ist, grosse Bilder zu Speichern. Zusätzlich werden im Bereich Geodaten die Eckkoordinaten in Tags zu speichern, um sie zu "georeferenzieren".

Allerdings kannst du eigentlich, wie Thomas schon gesagt hat, alle vier Bilder in ein Jpeg/Gif/Png etc. "auf eine Seite" schreiben bzw. zeichnen. Warum also unbedingt Tiff ? Nenn mir deine Bewegründe, dann kann ich dir vielleicht besser helfen.
Beruflich habe ich schon Tiffs mit JAI geschrieben, habe den Code aber leider nicht hier zuhause .. müsste ich mal nachsehen.

Grüsse,

Krösi
 
Nun ja, TIFFs sind ja bekanntlich von hoher Qualität und können aus mehreren Seiten bestehen. Daher sind sie für Archivierungszwecke bestens geeignet.

JPEGs sind stets komprimiert, mal mehr mal weniger, außerdem wüßte ich nicht, wie man in einem JPEG 4 Seiten unterbekommt, mal abgesehen vom Qualitätsverlust.
GIF hat nur 256 Farben. Animierte GIFs könnten sozusagen aus mehreren Seiten bestehen, die allerdings nur in einer Browserumgebung zu sehen sind, sonst wird nur das 1. Bild sichtbar.
PNG vereinigt die Vorteile von JPEG und GIF, kann aber glaube ich auch nicht mehrere Seiten.

Auf TIFF bin ich gekommen durch unseren Scanner. Der scannt einen Auftrag (1-n A4-Seiten) als einziges TIFF, ideal zur Archivierung. Wenn man dieses TIFF dann ausdrucken wöllte, würde man wieder diese n A4-Seiten erhalten.

Versuch' das mal mit JPEG, GIF oder PNG!

Falls ich hier ziemlichen Quatsch aus Unwissenheit erzähle, berichtigt mich bitte.
@kroesi: Wäre schön, wenn Du das Code-Schnipsel ausgraben könntest. :)
 
Zurück