Jpeg, von Tiff (jpeg-komprimiert)
Wie kann ich extrahieren, Bild vom JPEG-komprimierte TIFF-Datei ?
Habe ich gelesen bytes nach StripOffests und StripBytesCount Felder, aber ich konnte nicht laden Sie ein Bild von Ihnen.
- Sind Sie auf der Suche nach der komprimierten Bild-Daten, oder sind Sie auf der Suche nach dem eigentlichen Bild?
- Ich bin auf der Suche nach dem aktuellen Bild
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alten Stil TIFF-JPEG (Komprimierung Typ 6) grundsätzlich stopfte einen normalen JFIF-Datei in eine TIFF-wrapper. Die neueren Stil-TIFF-JPEG (Komprimierung Typ 7) erlaubt die JPEG-Tabelle Daten (Huffman, Quantisierung), gespeichert in einem separaten tag (0x015B JPEGTables). Dies ermöglicht es Ihnen, legen Sie die Streifen von JPEG-Daten mit SOI/EOI-Marker in die Datei, ohne zu wiederholen die Huffman-und Quantisierungs-Tabellen. Dies ist wahrscheinlich das, was Sie sehen, mit Sie Ihre Datei. Die einzelnen Streifen beginnen mit der Sequenz FFD8, aber es fehlen die Huffman-und Quantisierungs-Tabellen. Dies ist der Weg, die Photoshop-Produkte in der Regel schreiben die Dateien.
Mit JAI:
Große Lösung , hat mir sehr geholfen .
Nur hinzufügen , wenn Sie mehrere Seiten in TIFF-müssen Sie Lesen, den stream mit der Definition einer anderen Verzeichnis-Nummer in
TIFFDirectory
Objekt und wiederholen Sie alle der oben genannten.Das problem mit der erwähnten Bibliothek libtiff ist, dass er das extrahieren der Bild-und speichert Sie dann erneut komprimiert, das heißt, ein weiterer Qualitätsverlust bei jpg. Das heißt ich kann den selben Zweck erfüllen, ohne auch nur mit einem 3rd-party-lib nur durch Aufruf von GDI+ - Methoden von NET-Framework.
Der ursprüngliche Autor dieses Threads versucht, die jpeg-binary, ohne zu komprimieren, und das ist genau das, was ich versuche zu tun, wie gut.
Dies ist eine mögliche Lösung, wenn Sie Leben können mit Qualitätsverlust und nicht möchten, verwenden Sie anythin aber .NET-Bibliothek Klassen:
den verwendeten Helfer-Methode:
Lesen der compression-flag:
Wenn Sie versuchen, zu extrahieren, die das eigentliche Bild von TIFF -, JPEG-oder anders, Sie sind am besten aus mit einer Bibliothek wie libtiff, um so zu tun. TIFF ist ein sehr kompliziert, spec und während Sie vielleicht in der Lage sein, dies selbst zu tun und bekommen eine oder zwei Klassen von Bildern, die Chancen sind Sie nicht in der Lage sein zu handhaben, die anderen Fälle, die entstehen Häufig, vor allem "old-style" - JPEG-was ist ein sub-format untergeschoben TIFF und passt nicht gut in das Gesamtbild.
Meine Firma, Atalasoft, macht eine .NET Produkt mit einer sehr guten codec für TIFF. Wenn Sie nur brauchen, um über eine einzige Seite mit Bildern, die unser Produkt wird gut funktionieren für Sie.
In der .NET Reich, Sie konnten auch einen Blick auf Bit-Wunder's geschafft version von libtiff. Es ist eine ziemlich anständig-Anschluss in der Bibliothek.