Tiff-Header und Bit-Reihenfolge

1917
Tony Stark

Bytes 0-1: Die in der Datei verwendete Bytereihenfolge. Zulässige Werte sind: "II" (4949.H) "MM" (4D4D.H) Im "II" -Format ist die Byte-Reihenfolge immer vom niedrigstwertigen Byte zum höchstwertigen Byte, sowohl für 16-Bit- als auch für 32-Bit-Byte. bit Ganzzahlen Dies wird als Little-Endian-Byte-Reihenfolge bezeichnet. Im MM-Format ist die Byte-Reihenfolge sowohl für 16-Bit- als auch für 32-Bit-Ganzzahlen immer von höchstwertig bis niedrigstwertig. Dies wird als Big-Endian-Byte-Reihenfolge bezeichnet.

Bytes 2-3 Eine beliebige, aber sorgfältig ausgewählte Zahl (42), die die Datei weiter als TIFF-Datei identifiziert. Die Reihenfolge der Bytes hängt vom Wert der Bytes 0-1 ab.

Bytes 4-7 Der Offset (in Bytes) der ersten IFD. Das Verzeichnis kann sich an einem beliebigen Ort in der Datei nach dem Header befinden, muss jedoch an einer Wortgrenze beginnen. Insbesondere kann ein Bilddateiverzeichnis den von ihm beschriebenen Bilddaten folgen. Leser müssen den Zeigern folgen, wo immer sie hinführen. Der Begriff Byte-Offset wird in diesem Dokument immer verwendet, um sich auf einen Ort in Bezug auf den Anfang der TIFF-Datei zu beziehen. Das erste Byte der Datei hat einen Offset von 0.

Verstehe ich, dass die Bytes 0-1 zwei 8-Bit-Werte darstellen, die Bytes 2-3 eine 16-Nummer und die Bytes 4-7 eine 32-Bit-Nummer sind?

3
Hallo Hatorade - sind die Fragen, die Sie Hausaufgaben stellen? Können Sie alle Fragen, die Sie in Bezug auf TIFF gestellt haben, in einem einzigen Fragen-Thread zusammenfassen? caliban vor 14 Jahren 0
Nein, sie sind keine Hausaufgaben. Sie sind alle auf demselben Projekt. und ich wurde vorher gesagt, Fragen in eindeutige Fragen zu trennen, anstatt mehrere Fragen in ein und demselben Posting zu stellen. Tony Stark vor 14 Jahren 0
Na dann, viel Glück bei Antworten! caliban vor 14 Jahren 0

1 Antwort auf die Frage

4
nik
  1. Die Bytes 0-1 repräsentieren zwei 8-Bit-Werte>
    • Ja
    • Bytes 2-3 sind eine 16-Nummer?
    • Ja, es sollte ein 16-Wert sein, der 42in der Reihenfolge steht, die von den ersten zwei Bytes erwartet wird
    • und diese Bytes 4-7 sind eine 32-Bit-Zahl
    • Ja. Sein Wert ist basierend auf dem zuvor bestätigten Endian-Wert korrekt zu interpretieren.

Der Little-Endian-Start

0x49 0x49 0x2A 0x00 0x67 0x45 0x23 0x01 ... ---- ---- --------- ------------------- 

Kann im Big Endian dargestellt werden als

0x4D 0x4D 0x00 0x2A 0x01 0x23 0x45 0x67 ... ---- ---- --------- ------------------- 

Wo das Wort Wert hat 19088743.

Vielleicht diese Referenz - Code wird Ihnen helfen, es besser.
Beachten Sie auch meinen früheren Kommentar zu Bytefolgen und Wörtern in der anderen Antwort ...