Aufgabe 5.8: BMP-Format

Aus LNTwww
Wechseln zu:Navigation, Suche

Foto Sonnenuntergang

Ein Bitmap ist ein Bildformat, bei dem die einzelnen Pixel (von Picture Elements) in Matrixform abgespeichert werden. Der Header einer solchen BMP–Datei umfasst mindestens 54 Byte, bestehend aus dem Dateikopf (in Hexadezimaldarstellung von 0x00 bis 0x0D) sowie dem Informationsblock ab 0x0E. Anschließend folgen die Bilddaten, bei Farbbildern mit den Farbkomponenten R – G – B.

Der nachfolgende Hexdump beschreibt das Foto „Sunset.bmp”. Dargestellt sind die ersten und letzten 96 der insgesamt 176456 Byte in Hexadezimaldarstellung.

Hexdump zu Sunset.bmp

Der Dateikopf beinhaltet folgende Informationen (der Präfix 0x zeigt die Hexadezimaldarstellung an):

  • 0x00 ... 0x01 (2 Byte) BMP–Kennung: 0x 42 4D  ⇒  „BM”,
  • 0x02 ... 0x05 (4 Byte) Dateigröße in Byte,
  • 0x06 ... 0x09 (5 Byte) reserviert (muss immer mit 0 belegt sein),
  • 0x0A ... 0x0D (4 Byte) Offset (Beginn der Bilddaten).


Diese Angaben gelten nur für den Intel–Prozessor, der nach der Little–Endian–Byteanordnung vom niederwertigsten (LSB) zum höchstwertigen (MSB) Byte liest. Die Anordnung 48 B1 02 00 der Bytes 2, 3, 4 und 5 ist somit als 0x 00 02 B1 48 zu interpretieren, was der Dezimalzahl 176456 entspricht.

Der 40 Byte–Informationsblock beinhaltet folgende Werte:

  • 0x0E ... 0x11 (4 Byte) Länge des Info–Blocks,
  • 0x12 ... 0x15 (4 Byte) Bildbreite in Pixel,
  • 0x16 ... 0x19 (4 Byte) Bildhöhe in Pixel,
  • 0x1A ... 0x1B (2 Byte) Anzahl der Farbebenen (immer auf 1 gesetzt),
  • 0x1C ... 0x1D (2 Byte) Bits per Pixel (BPP),
  • 0x1E ... 0x21 (4 Byte) Art der Datenkomprimierung,
  • 0x22 ... 0x25 (4 Byte) Größe der Bitmap in Byte,
  • 0x26 ... 0x29 (4 Byte) Horizontalauflösung in Pixel/Meter,
  • 0x2A ... 0x2D (4 Byte) Vertikalauflösung in Pixel/Meter,
  • 0x2E ... 0x31 (4 Byte) Anzahl der verwendeten Farben,
  • 0x32 ... 0x35 (4 Byte) Anzahl der wichtigen Farben.


Hinweis:


Fragebogen

1

Multiple-Choice Frage

Falsch
Richtig

2

Input-Box Frage

$\Alpha \ = \ $


Musterlösung

(1)  (2)  (3)  (4)  (5)  (6)