www.wikidata.de-de.nina.az
Windows Bitmap BMP oder device independent bitmap DIB ist ein zweidimensionales Rastergrafikformat das fur die Betriebssysteme Microsoft Windows und OS 2 entwickelt und mit Microsoft Windows 3 0 eingefuhrt wurde welches 1990 erschien Die Dateiendung ist bmp seltener dib Windows BitmapDateiendung bmp dibMIME Type image x ms bmp image x bmp image bmpMagische Zahl 42 4D hex BMEntwickelt von MicrosoftAktuelle Version 5Art Rastergrafik Inhaltsverzeichnis 1 Merkmale 2 Dateiformat Version 3 2 1 Dateikopf 2 2 Informationsblock 2 2 1 Bitmap Eigenschaften 2 2 2 Farbmasken 2 2 3 Farbtabelle 2 3 Bilddaten 3 Vor und Nachteile 4 Versionen 4 und 5 5 Siehe auch 6 Literatur 7 Weblinks 8 EinzelnachweiseMerkmale BearbeitenBMPs gibt es in drei verschiedenen Versionen Die meisten BMP Dateien liegen in der Version 3 vor es gibt keine fruheren Versionen Die spateren Versionen 4 und 5 sind hochst selten anzutreffen Windows Bitmaps der Version 3 erlauben Farbtiefen von 1 4 8 16 24 oder 32 bpp bpp bits per pixel Bits je Bildpunkt wobei bei 16 und 32 bpp nicht alle Bits tatsachlich genutzt werden mussen Alphakanale Farbkorrektur und Metadaten werden nicht unterstutzt Windows Bitmaps werden entweder unkomprimiert oder verlustfrei mit RLE Komprimierung Lauflangenkodierung gespeichert Dies ist ein eher schwaches Verfahren sodass BMP Dateien wesentlich grosser sind als andere Formate wie PNG und kaum fur das Internet genutzt werden Dafur ist das BMP Format relativ einfach aufgebaut BMPs sind vor allem im Windows Umfeld weit verbreitet gangige Grafiksoftware unterstutzt das Format problemlos mit Ausnahme der eher exotischen Farbtiefen 16 und 32 bpp Die maximale Breite Hohe eines Bildes betragt theoretisch je 2 147 483 647 Pixel 231 1 In der Praxis akzeptieren viele Decoder nur deutlich niedrigere Werte 1 2 Dateiformat Version 3 BearbeitenDateikopf BITMAPFILEHEADER Informationsblock BITMAPINFO Bitmap Eigenschaften BITMAPINFOHEADER Eventuell Farbmasken Eventuell FarbtabelleEventuell Ungenutzter PlatzBilddatenEventuell Ungenutzter PlatzBMP Dateien bestehen aus drei Teilen dem Dateikopf dem Informationsblock und den Bilddaten siehe Schema rechts Im Folgenden bezeichnet WORD einen 16 Bit vorzeichenlosen Integer DWORD einen 32 Bit vorzeichenlosen Integer und LONG einen im Zweierkomplement kodierten 32 Bit Integer BMP verwendet die Little Endian Konvention Dateikopf Bearbeiten BITMAPFILEHEADER Grosse 14 Byte Offset Byte Datentyp Grosse Name InhaltDez Hex Windows Style C Style0 0 WORD uint16 t 2 Byte bfType ASCII Zeichenkette BM Hex 0x42 0x4D Dezimal 66 77 2 2 DWORD uint32 t 4 Byte bfSize Grosse der BMP Datei in Byte unzuverlassig 6 6 DWORD uint32 t 4 Byte bfReserved Reserviert von der Software abhangig standardmassig 010 A DWORD uint32 t 4 Byte bfOffBits Offset der Bilddaten in Byte vom Beginn der Datei an Dieser hat nicht immer den Wert 54 er ergibt sich aus 14 Byte Header 40 Byte Infoblock und muss daher dynamisch ausgelesen werden weil es sonst ggf zu Fehldarstellungen im Bild kommt 3 Informationsblock Bearbeiten Bitmap Eigenschaften Bearbeiten Der Informationsblock beginnt mit folgender Struktur die die Bitmap Eigenschaften enthalt 4 5 BITMAPINFOHEADER Grosse 40 Byte Offset Byte Datentyp Grosse Name InhaltDez Hex Windows Style C Style14 0E DWORD uint32 t 4 Byte biSize Grosse der BITMAPINFOHEADER Struktur in Byte18 12 LONG int32 t 4 Byte biWidth Breite der Bitmap in Pixel Dabei ist das erste Byte niederwertig und das letzte Byte hochstwertig 22 16 LONG int32 t 4 Byte biHeight Der Betrag gibt die Hohe der Bitmap in Pixel an Dabei ist das erste Byte niederwertig und das letzte Byte hochstwertig Ist der Wert positiv so ist die Bitmap eine sogenannte bottom up Bitmap die Bilddaten beginnen mit der untersten und enden mit der obersten Bildzeile Dies ist die gebrauchlichste Variante Ist der Wert negativ so ist die Bitmap eine top down Bitmap die Bilddaten beginnen mit der obersten und enden mit der untersten Bildzeile 26 1A WORD uint16 t 2 Byte biPlanes 1 Stand in einigen alteren Formaten wie PCX fur die Anzahl der Farbebenen wird aber fur BMP nicht verwendet 28 1C WORD uint16 t 2 Byte biBitCount Gibt die Farbtiefe der Bitmap in bpp an muss einer der folgenden Werte sein 1 4 8 16 24 oder 32 Bei 1 4 und 8 bpp sind die Farben indiziert 30 1E DWORD uint32 t 4 Byte biCompression Einer der folgenden Werte 0 BI RGB Bilddaten sind unkomprimiert 1 BI RLE8 Bilddaten sind lauflangenkodiert fur 8 bpp Nur erlaubt wenn biBitCount 8 und biHeight positiv 2 BI RLE4 Bilddaten sind lauflangenkodiert fur 4 bpp Nur erlaubt wenn biBitCount 4 und biHeight positiv 3 BI BITFIELDS Bilddaten sind unkomprimiert und benutzerdefiniert mittels Farbmasken kodiert Nur erlaubt wenn biBitCount 16 oder 32 34 22 DWORD uint32 t 4 Byte biSizeImage Wenn biCompression BI RGB Entweder 0 oder die Grosse der Bilddaten in Byte Ansonsten Grosse der Bilddaten in Byte 38 26 LONG int32 t 4 Byte biXPelsPerMeter Horizontale Auflosung des Zielausgabegerates in Pixel pro Meter wird aber fur BMP Dateien meistens auf 0 gesetzt 42 2A LONG int32 t 4 Byte biYPelsPerMeter Vertikale Auflosung des Zielausgabegerates in Pixel pro Meter wird aber fur BMP Dateien meistens auf 0 gesetzt 46 2E DWORD uint32 t 4 Byte biClrUsed Wenn biBitCount 1 0 Wenn biBitCount 4 oder 8 die Anzahl der Eintrage der Farbtabelle 0 bedeutet die maximale Anzahl 2 16 oder 256 Ansonsten Die Anzahl der Eintrage der Farbtabelle 0 keine Farbtabelle Auch wenn sie in diesem Fall nicht notwendig ist kann dennoch eine fur die Farbquantisierung empfohlene Farbtabelle angegeben werden 50 32 DWORD uint32 t 4 Byte biClrImportant Wenn biBitCount 1 4 oder 8 Die Anzahl samtlicher im Bild verwendeten Farben 0 bedeutet alle Farben der Farbtabelle Ansonsten Wenn eine Farbtabelle vorhanden ist und diese samtliche im Bild verwendeten Farben enthalt deren Anzahl Ansonsten 0 Farbmasken Bearbeiten Wenn biCompression BI BITFIELDS dann folgen 3 DWORDs die Bitmasken fur die Rot Grun und Blauwerte enthalten Gesetzte Bits bedeuten dass in den Daten eines Pixels jenes Bit fur den jeweiligen Farbkanal verwendet wird Dabei mussen folgende Bedingungen erfullt sein gesetzte Bits mussen direkt nacheinander folgen fur 16 bpp mussen sich die gesetzten Bits in den beiden niederwertigen Bytes befinden die Bitmasken der einzelnen Farbkanale durfen einander nicht uberlappen Farbtabelle Bearbeiten Wenn biClrUsed 0 Wenn biBitCount 1 4 oder 8 Es folgt eine Farbtabelle mit 2biBitCount Eintragen Ansonsten Es folgt keine Farbtabelle Ansonsten Es folgt eine Farbtabelle mit biClrUsed Eintragen Jeder Eintrag der Farbtabelle ist 4 Byte gross und enthalt jeweils ein Byte fur den Blau Grun und Rotanteil sowie ein auf 0 gesetztes Byte in dieser Reihenfolge Bilddaten Bearbeiten Die Bilddaten beginnen am Offset bfOffBits Die Grosse der Bilddaten betragt naherungsweise gilt nur fur durch 4 teilbare Bildbreiten biWidth biHeight biBitCount 8 wenn biCompression BI RGB ansonsten biSizeImage Die Bilddaten werden Zeile fur Zeile gespeichert Wenn biHeight positiv ist beginnen die Bilddaten mit der letzten und enden mit der ersten Bildzeile ansonsten ist es umgekehrt Bei BI BITFIELDS und bei BI RGB ist die Lange jeder Zeile ein Vielfaches von 4 Bytes und wird falls erforderlich mit Nullbytes aufgefullt Das weitere Format der Bilddaten hangt vom Wert des biCompression Felds ab BI BITFIELDSJede Bildzeile ist durch rechtsseitiges Auffullen mit Nullen auf ein ganzzahliges Vielfaches von 4 Bytes ausgerichtet Das Format der Pixel ist in den Farbmasken definiert Bei 16 bpp werden nur die beiden niederwertigen Bytes der Farbmasken berucksichtigt BI RGBJede Bildzeile ist durch rechtsseitiges Auffullen mit Nullen auf ein ganzzahliges Vielfaches von 4 Bytes ausgerichtet 1 4 oder 8 bpp Die Daten jedes Pixels bestehen aus einem 0 basierten Index auf den Eintrag in der Farbtabelle 16 bpp Das Format ist wie bei BI BITFIELDS wenn folgende Farbmasken verwendet wurden 0x00007C00 fur den Rot Kanal 0x000003E0 fur den Grun Kanal 0x0000001F fur den Blau Kanal dd Jeder Farbkanal ist 5 Bit pro Pixel gross insgesamt ergeben sich 32 768 mogliche Farben ein Bit ist ungenutzt 24 bpp Die Daten jedes Pixels bestehen aus jeweils einem Byte fur den Blau Grun und Rot Kanal in dieser Reihenfolge 32 bpp Das Format ist wie bei BI BITFIELDS wenn folgende Farbmasken verwendet wurden 0x00FF0000 fur den Rot Kanal 0x0000FF00 fur den Grun Kanal 0x000000FF fur den Blau Kanal dd Jeder Farbkanal ist 8 Bit pro Pixel gross insgesamt ergeben sich 16 777 216 mogliche Farben 8 Bit sind ungenutzt Einige Programme wie etwa Adobe Photoshop interpretieren die verbleibenden 8 Bits 0xFF000000 als Alphakanal mit 256 moglichen Transparenzstufen Dies ist jedoch von der Spezifikation nicht vorgesehen BI RLE8 und BI RLE4Jeweils zwei aufeinanderfolgende Bytes bilden einen Datensatz Hat das erste Byte einen anderen Wert als 0 so wird das zweite Byte so oft bei BI RLE4 die nachsten 2 Nibbles insgesamt Beispiel 05 67 6 7 6 7 6 wiederholt wie das erste Byte angibt Hat das erste Byte hingegen den Wert 0 so hangt die Bedeutung vom zweiten Byte ab 0 Ende der Bildzeile 1 Ende der Bitmap 2 Verschiebung der aktuellen Pixelposition Die beiden nachsten Bytes geben die Verschiebung nach rechts und nach unten an n 3 255 Die folgenden n Bytes bei BI RLE4 die folgenden n Nibbles werden direkt ubernommen der nachste Datensatz findet sich am darauffolgenden geraden Offset vom Start der Bilddaten aus gezahlt Das Resultat wird wie im unkomprimierten Fall interpretiert Vor und Nachteile BearbeitenVorteile von Bitmaps sind unter anderem 6 Die einfache Erstellung aus bereits im Arbeitsspeicher des Computers vorhandenen Pixeldaten Der effiziente und simple Zugriff auf die Bilddaten auf Grund ihrer rasterartigen Anordnung Eine Anderung der Farbinformation durch Anderung einer eventuell vorhandenen Palette ist moglich ohne die Bilddaten selber zu andern Die einfache Ausgabe auf rasterbasierte Ausgabegerate wie Monitore oder Drucker Nachteile von Bitmaps sind unter anderem Die grosse Dateigrosse im Vergleich zu komprimierten Formaten Sofern die ubliche Zeilenanordnung gewahlt wird steht das Bild verglichen mit der Zeilenfolge auf einem ublichen Bildschirm auf dem Kopf 7 Versionen 4 und 5 BearbeitenMicrosoft hat mit Windows 95 und Windows 98 neuere Versionen 4 und 5 des BMP Formates eingefuhrt die Alphakanale und Farbkorrektur ermoglichen und als Containerformat fur PNG und JFIF Dateien verwendet werden konnen Diese neuen Formate sind jedoch nur sehr selten als eigenstandige Dateien anzutreffen und werden kaum von Anwendungen unterstutzt sie finden eher als internes Format in Windows Programmen Verwendung Siehe auch BearbeitenWireless Application Protocol Bitmap Format WBMP Literatur BearbeitenThomas W Lipp Grafikformate Microsoft Press Unterschleissheim 1997 ISBN 3 86063 391 0 John Miano Compressed Image File Formats Addison Wesley Reading 2000 ISBN 0 201 60443 4 Weblinks BearbeitenSpezifikation aus dem Microsoft Platform SDK Einfache C Klasse zum Laden einer Windows BitmapEinzelnachweise Bearbeiten Quellcode fur BMPImageReader cpp in Chromium Nicht mehr online verfugbar In chromium googlesource com Archiviert vom Original am 8 Dezember 2015 abgerufen am 2 Dezember 2015 nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot chromium googlesource com Quellcode fur nsBMPDecoder cpp in Mozilla Firefox In dxr mozilla org Abgerufen am 2 Dezember 2015 BITMAPFILEHEADER Structure BITMAPINFOHEADER Structure Bitmap Storage Pros and Cons of Bitmap File Formats In James D Murray William VanRyper Encyclopedia of Graphics File Formats 2 Auflage O Reilly amp Associates Bonn 1996 ISBN 1 56592 161 5 Bitmap Storage Abgerufen von https de wikipedia org w index php title Windows Bitmap amp oldid 221687674