BMP Dateiformat

Das BMP Dateiformat, auch bekannt als bitmap Bilddatei oder Dateiformat von Device Independent Bitmap (DIB) oder einfach ein bitmap, ist ein Rastergrafikbilddateiformat, das verwendet ist, um bitmap Digitalimages, unabhängig vom Anzeigegerät (wie ein Grafikadapter), besonders auf Windows von Microsoft und OS/2 Betriebssysteme zu versorgen.

Das BMP Dateiformat ist dazu fähig, 2. Digitalimages der willkürlichen Breite, Höhe und Entschlossenheit, sowohl monochrom als auch Farbe, in verschiedenen Farbentiefen, und fakultativ mit der Datenkompression, den Alpha-Kanälen und den Farbenprofilen zu versorgen.

Mit dem Gerät unabhängiger bitmaps und das BMP Dateiformat

Microsoft hat eine besondere Darstellung der Farbe bitmaps von verschiedenen Farbentiefen, als eine Hilfe zum Austauschen bitmaps zwischen Geräten und Anwendungen mit einer Vielfalt von inneren Darstellungen definiert. Sie haben diese mit dem Gerät unabhängigen bitmaps oder RECHT genannt, und das Dateiformat für sie wird DIB Dateiformat oder BMP Bilddateiformat genannt. Gemäß der Unterstützung von Microsoft:

Mit dem Gerät unabhängiger bitmap (DIB) ist ein Format, das verwendet ist, um mit dem Gerät unabhängigen bitmaps in verschiedenen Farbenentschlossenheiten zu definieren. Der Hauptzweck des RECHTS ist, bitmaps zu erlauben, von einem Gerät bis einen anderen (folglich, der mit dem Gerät unabhängige Teil des Namens) bewegt zu werden. Ein DIB ist ein Außenformat im Gegensatz zu einem geräteabhängigen bitmap, der im System als ein Bitmap-Gegenstand (geschaffen durch eine Anwendung...) scheint. Ein DIB wird normalerweise in metafiles transportiert (gewöhnlich StretchDIBits Funktion verwendend), BMP Dateien und die Zwischenablage (CF_DIB Datenformat).

Die folgenden Abteilungen besprechen die Daten, die in der BMP Datei oder DIB in Details versorgt sind. Das ist das BMP Standarddateiformat. Einige Anwendungen schaffen bitmap Bilddateien, die mit der aktuellen Dokumentation von Microsoft nicht entgegenkommend sind. Außerdem werden nicht alle Felder verwendet; ein Wert von 0 wird in diesen unbenutzten Feldern gefunden.

Dateistruktur

Die bitmap Bilddatei besteht aus Strukturen der festen Größe (Kopfbälle) sowie Strukturen der variablen Größe, die in einer vorher bestimmten Folge erscheinen. Viele verschiedene Versionen von einigen dieser Strukturen können in der Datei wegen der langen Evolution dieses Dateiformats erscheinen.

Mit Bezug auf das Diagramm 1 wird die bitmap Datei aus Strukturen in der folgenden Ordnung zusammengesetzt:

RECHT im Gedächtnis

Eine bitmap ins Gedächtnis geladene Bilddatei wird eine DIB Datenstruktur - ein wichtiger Bestandteil von Windows GDI API. Die DIB Datenstruktur im Gedächtnis ist fast dasselbe als das BMP Dateiformat, aber es enthält die 14 Bytes bitmap Dateikopfball nicht und beginnt mit dem DIB Kopfball. Für das im Gedächtnis geladene RECHT kann der Farbentisch auch aus 16-Bit-Einträgen bestehen, die Indizes zur zurzeit begriffenen Palette (ein zusätzliches Niveau des Umwegs) statt ausführlicher RGB-Farbendefinitionen einsetzen. In allen Fällen muss die Pixel-Reihe an einer Speicheradresse beginnen, die ein Vielfache von 4 Bytes ist. Im nichtgepackten im Gedächtnis geladenen RECHT sollten die fakultativen Farbenprofil-Daten sofort nach dem Farbentisch und vor dem gap1 und der Pixel-Reihe gelegen werden (unterschiedlich in diag. 1).

Wenn die Größe von gap1 und gap2 Null ist, wird die DIB Datenstruktur im Gedächtnis gewöhnlich genannt, "hat DIB eingepackt" und kann auf durch einen einzelnen Zeigestock verwiesen werden, der zum Anfang des DIB Kopfballs hinweist. In allen Fällen muss die Pixel-Reihe an einer Speicheradresse beginnen, die ein Vielfache von 4 Bytes ist. In einigen Fällen kann es notwendig sein, die Zahl von Einträgen im Farbentisch anzupassen, um die Speicheradresse der Pixel-Reihe zu einem Vielfache von 4 Bytes zu zwingen. Für das "gepackte RECHT, das" im Gedächtnis geladen ist, sollten die fakultativen Farbenprofil-Daten der Pixel-Reihe, wie gezeichnet, in diag sofort folgen. 1 (mit gap1=0 und gap2=0). "Gepacktes RECHT" ist durch Windows-Zwischenablage-API-Funktionen sowie durch ein Windows gestaltete Bürste und Quellenfunktionen erforderlich.

Dateikopfball von Bitmap

Dieser Block von Bytes ist am Anfang der Datei und wird verwendet, um die Datei zu identifizieren. Eine typische Anwendung liest diesen Block zuerst, um sicherzustellen, dass die Datei wirklich eine BMP Datei ist, und dass es nicht beschädigt wird. Die ersten zwei Bytes des BMP Dateiformats sind der Charakter 'B' dann der Charakter 'M' in ASCII 1-Byte-Verschlüsselung. Alle Werte der ganzen Zahl werden in wenig-endian dem Format (d. h. meist - bedeutendes Byte zuerst) versorgt.

Gleichwertiger Kopfball auf c Sprache

  1. einschließen

/* Zeichen: Die Zauberzahl ist von der bmpfile_header Struktur entfernt worden

da es Anordnungsprobleme verursacht

struct bmpfile_magic sollte der erste geschrieben/gelesen werden

gefolgt vom

struct bmpfile_header

[das vermeidet mit dem Bearbeiter spezifische Anordnung pragmas usw.]

  • /

struct bmpfile_magic {\

nicht unterzeichnete Rotforelle-Magie [2];

};

struct bmpfile_header {\

uint32_t filesz;

uint16_t creator1;

uint16_t creator2;

uint32_t bmp_offset;

};</syntaxhighlight>

DIB Kopfball (bitmap Informationskopfball)

Dieser Block von Bytes sagt, dass die Anwendung über Information über das Image ausführlich berichtet hat, das verwendet wird, um das Image auf dem Schirm zu zeigen. Der Block vergleicht auch den Kopfball verwendet innerlich durch Windows und OS/2 und hat mehrere verschiedene Varianten. Sie alle enthalten einen dword (32-Bit-)-Feld, ihre Größe angebend, so dass eine Anwendung leicht bestimmen kann, welcher Kopfball im Image verwendet wird. Der Grund, dass es verschiedene Kopfbälle gibt, besteht darin, dass Microsoft das DIB-Format mehrere Male erweitert hat. Die neuen verlängerten Kopfbälle können mit einigen GDI-Funktionen statt der älteren verwendet werden, mehr Funktionalität zur Verfügung stellend. Da der GDI eine Funktion unterstützt, um bitmap Dateien zu laden, verwenden typische Windows-Anwendungen diese Funktionalität. Eine Folge davon ist, dass für solche Anwendungen die BMP-Formate, die sie unterstützen, die Formate vergleichen, die durch die Windows-Version unterstützt sind, die wird führt. Sieh den Tisch unten für mehr Information.

Versionen nach BITMAPCOREHEADER fügen nur Felder zum Ende des Kopfballs der vorherigen Version hinzu.

Zum Beispiel: BITMAPV2INFOHEADER fügt Felder zu BITMAPINFOHEADER hinzu, und BITMAPV3INFOHEADER fügt Felder zu BITMAPV2INFOHEADER hinzu (oder BITMAPINFOHEADER ist eine beraubte Version von BITMAPV2INFOHEADER)

Aus Vereinbarkeitsgründen verwenden die meisten Anwendungen die älteren DIB Kopfbälle, um Dateien zu sparen. Mit OS/2 veraltet, für jetzt das Standardformat zu sein, ist der BITMAPINFOHEADER Kopfball.

Sieh folgenden Tisch für seine Beschreibung. Alle Werte werden als nicht unterzeichnete ganze Zahlen, wenn ausführlich nicht bemerkt, versorgt.

Zeichen: Das Bildgröße-Feld kann 0 für BI_RGB bitmaps sein.

Gleichwertiger Kopfball auf c Sprache

typedef struct {\

uint32_t header_sz;

Int32_t-Breite;

Int32_t-Höhe;

uint16_t nplanes;

uint16_t bitspp;

uint32_t compress_type;

uint32_t bmp_bytesz;

int32_t hres;

int32_t vres;

uint32_t ncolors;

uint32_t nimpcolors;

} BITMAPINFOHEADER;

</syntaxhighlight>

Das Kompressionsmethode-Feld (Bytes #30-33) kann die folgenden Werte haben:

Zeichen: BI_JPEG und BI_PNG sind für Drucker-Fahrer und werden nicht unterstützt, wenn sie zum Schirm machen.

Gleichwertiger Kopfball auf c Sprache (Kompressionsmethoden)

typedef enum {\

BI_RGB = 0,

BI_RLE8,

BI_RLE4,

BI_BITFIELDS,//Auch Huffman 1D Kompression für BITMAPCOREHEADER2

BI_JPEG,//Auch RLE-24 Kompression für BITMAPCOREHEADER2

BI_PNG,

} bmp_compression_method_t;

</syntaxhighlight>

Der OS/2 BITMAPCOREHEADER Kopfball ist auch populär:

Zeichen: OS/2 BITMAPCOREHEADER bitmaps kann nicht zusammengepresst werden und kann nicht 16 oder 32 Bit/Pixel sein. Alle Werte im OS/2 BITMAPCOREHEADER Kopfball sind nicht unterzeichnete ganze Zahlen.

Eine 16-bit- und 32-Bit-Version von DIB mit einem einheitlichen Alpha-Kanal ist mit dem undokumentierten BITMAPV3INFOHEADER und mit dem dokumentierten BITMAPV4HEADER (seit Windows 95) eingeführt worden und wird innerhalb von Windows XP logon und Thema-System sowie Microsoft Office (seit v2000) verwendet; es wird durch eine Bildredigieren-Software, wie Adobe Photoshop seit der Version 7 und Adobe Flash seit der Version MX 2004 (dann bekannt als Makromediablitz) unterstützt. Es wird auch durch GIMP, Google Chrome, FRAU PowerPoint und MS Word unterstützt.

Farbentisch

Der Farbentisch (Palette) kommt in der BMP Bilddatei direkt nach dem BMP Dateikopfball, dem DIB Kopfball vor (und nach fakultativen drei roten, grünen und blauen bitmasks, wenn der BITMAPINFOHEADER Kopfball mit der BI_BITFIELDS Auswahl verwendet wird). Deshalb ist sein Ausgleich die Größe des BITMAPFILEHEADER plus die Größe des DIB Kopfballs (plus fakultative 12 Bytes für die Drei-Bit-Masken).

Die Zahl von Einträgen in der Palette ist entweder 2 oder eine kleinere im Kopfball angegebene Zahl (im OS/2 BITMAPCOREHEADER Kopfball-Format, nur die lebensgroße Palette wird unterstützt). In den meisten Fällen besetzt jeder Zugang im Farbentisch 4 Bytes, in der Ordnung blau, grün, rot, 0x00 (sieh unten für Ausnahmen).

Der Farbentisch ist ein Block von Bytes (ein Tisch) Auflistung der durch das Image verwendeten Farben. Jedes Pixel in einem mit einem Inhaltsverzeichnis versehenen Farbenimage wird durch mehrere Bit beschrieben (1, 4, oder 8) der ein Index einer einzelnen durch diesen Tisch beschriebenen Farbe ist. Der Zweck der Farbenpalette in der mit einem Inhaltsverzeichnis versehenen Farbe bitmaps soll die Anwendung über die wirkliche Farbe informieren, dass jeder dieser Index-Werte entspricht. Der Zweck des Farbentisches im mit einem Inhaltsverzeichnis nichtversehenen (non-palettized) bitmaps soll die Farben verzeichnen, die durch den bitmap zu den Zwecken der Optimierung auf Geräten mit der beschränkten Farbenanzeigefähigkeit verwendet sind und zukünftige Konvertierung zu verschiedenen Pixel-Formaten und paletization zu erleichtern.

Die Farben im Farbentisch werden gewöhnlich in den 4 Bytes pro Zugang 8.8.8.0.8 Format (in der RGBAX Notation) angegeben. Der Farbentisch, der mit dem OS/2 BITMAPCOREHEADER verwendet ist, verwendet die 3 Bytes pro Zugang 8.8.8.0.0 Format. Für das im Gedächtnis geladene RECHT kann der Farbentisch aus 2-Byte-Einträgen fakultativ bestehen - diese Einträge setzen Indizes zur zurzeit begriffenen Palette statt ausführlicher RGB-Farbendefinitionen ein.

Microsoft weist die Anwesenheit einer gültigen Alpha-Kanalbit-Maske in BITMAPV4HEADER und BITMAPV5HEADER für 1bpp, 4bpp und 8bpp mit einem Inhaltsverzeichnis versehene Farbenimages nicht zurück, der anzeigt, dass die Farbentabelleneinträge auch einen Alpha-Bestandteil das Verwenden der 8.8.8 angeben können. [0-8]. [0-8] Format über das RGBQUAD.rgbReserved Mitglied. Jedoch weisen einige Versionen der Dokumentation des Microsofts diese Eigenschaft durch das Feststellen zurück, dass das RGBQUAD.rgbReserved Mitglied "Null sein muss".

Wie oben erwähnt wird der Farbentisch normalerweise nicht verwendet, wenn die Pixel in den 16 Bit pro Pixel (16bpp) Format (und höher) sind; es gibt normalerweise keine Farbentabelleneinträge in jenen bitmap Bilddateien. Jedoch gibt die Dokumentation von Microsoft (auf der MSDN Website bezüglich am 16. November 2010) an, dass für 16bpp (und höher) der Farbentisch da sein kann, um eine Liste von Farben zu versorgen, die für die Optimierung auf Geräten mit der beschränkten Farbenanzeigefähigkeit beabsichtigt sind, während es auch angibt, dass in solchen Fällen keine mit einem Inhaltsverzeichnis versehenen Palette-Einträge in diesem Farbentisch da sind. Das kann einem Widerspruch ähnlich sein, wenn keine Unterscheidung zwischen den obligatorischen Palette-Einträgen und der fakultativen Farbenliste gemacht wird.

Pixel-Lagerung

Die Bit, die die bitmap Pixel vertreten, sind in Reihen gepackt. Die Größe jeder Reihe wird zu einem Vielfache von 4 Bytes (ein 32-Bit-DWORD) durch das Polstern zusammengetrieben.

Für Images mit der Höhe> 1 werden vielfache gepolsterte Reihen aufeinander folgend versorgt, eine Pixel-Reihe bildend.

Die Gesamtzahl von Bytes, die notwendig sind, um eine Reihe von Pixeln zu versorgen, kann als berechnet werden:

:

:ImageWidth wird in Pixeln ausgedrückt.

Die Summe von Bytes, die notwendig sind, um eine Reihe von Pixeln in Bit pro Pixel (bpp) Image mit 2 Farben zu versorgen, kann durch die Erklärung der Wirkung berechnet werden, die Größe jeder Reihe zu einem Vielfache 4 Bytes wie folgt zusammenzutreiben:

:

:ImageHeight wird in Pixeln ausgedrückt. Der absolute Wert ist notwendig, weil ImageHeight negativer sein kann

Der bitmap Gesamtbilddateigröße kann als näher gekommen werden:

:

:for BPP  8 (weil für Pixel, die größer sind als 8 Bit, die Palette ist nicht obligatorisch)

Nur Images mit 8 oder weniger Bit pro Pixel müssen für die Palette verantwortlich sein. 16bpp Images (oder höher), kann den Palette-Teil aus der Größe-Berechnung wie folgt weglassen:

:

:for-Bit pro Pixel> 8.

In den Formeln oben ist die Nummer 54 die vereinigte Größe der 14 Bytes bitmap Dateikopfball, und der populäre 40-Byte-Kopfball von WindowsDIB - der BITMAPINFOHEADER (werden einige andere DIB Kopfball-Versionen größer oder kleiner sein als das, wie beschrieben, durch den Tisch oben), und der Ausdruck ist die Größe der Farbenpalette in Bytes.

Diese Gesamtdateigröße-Formel ist nur eine Annäherung, da die Größe der Farbenpalette Bytes für den OS/2 DIB Kopfball-Version BITMAPCOREHEADER sein wird, und einige Dateien nur die Zahl von Farben definieren können, die durch das Image, potenziell weniger erforderlich sind als.

Eine zusätzliche Größe-Unklarheit wird durch die fakultative Anwesenheit der 12 oder 16 Bytes eingeführt, die für die Extrabit-Masken erforderlich sind, versorgt sofort nach dem Kopfball von BITMAPINFOHEADER DIB und der LÜCKE der variablen Größe, die in Diag.1 gezeichnet ist

Pixel-Reihe (bitmap Daten)

Die Pixel-Reihe ist ein Block von 32-Bit-DWORDs, der das Bildpixel durch das Pixel beschreibt. Normalerweise werden Pixel "umgekehrt" in Bezug auf die normale Bildrasteransehen-Ordnung versorgt, an der niedrigeren linken Ecke anfangend, vom linken bis Recht, und dann der Reihe durch die Reihe vom Boden bis die Spitze des Images gehend.

Wenn BITMAPCOREHEADER nicht verwendet wird, kann unkomprimiertes Windows bitmaps auch von der Spitze bis Boden versorgt werden, wenn der Bildhöhe-Wert negativ ist.

Im ursprünglichen OS/2 DIB waren die nur vier gesetzlichen Werte der Farbentiefe 1, 4, 8, und 24 Bit pro Pixel (bpp).

Zeitgenössische DIB Kopfbälle erlauben Pixel-Formate mit 1, 2, 4, 8, 16, 24 und 32 Bit pro Pixel (bpp).

Das Polstern von Bytes (nicht notwendigerweise 0) muss am Ende der Reihen angehangen werden, um die Länge der Reihen zu einem Vielfache von vier Bytes heraufzubringen. Wenn die Pixel-Reihe ins Gedächtnis geladen wird, muss jede Reihe an einer Speicheradresse beginnen, die ein Vielfache 4 ist. Diese Beschränkung der Adresse/Ausgleichs ist nur für die Pixel-Reihe obligatorisch hat im Gedächtnis geladen. Zu Dateilagerungszwecken muss nur die Größe jeder Reihe ein Vielfache von 4 Bytes sein, während der Dateiausgleich willkürlich sein kann.

24 Bit bitmap mit Width=1, würde 3 Bytes von Daten pro Reihe (blau, grün, rot) und 1 Byte des Polsterns haben, während Width=2 2 Bytes des Polsterns haben würde, würde Width=3 3 Bytes des Polsterns haben, und Width=4 würde kein Polstern überhaupt haben.

Bitmap-Bilddateien sind normalerweise viel größer als Bilddateiformate, die mit anderen Algorithmen für dasselbe Image zusammengepresst sind. Zum Beispiel, 1058×1058, der ungefähr 271 Kilobytes im lossless PNG Format besetzt, nimmt ungefähr 3358 Kilobytes als 24bpp BMP Bilddatei. Unkomprimierte Formate sind allgemein unpassend, um Images im Internet oder den anderen langsamen oder höchstbeschränkten Medien zu übertragen.

Kompression

Mit einem Inhaltsverzeichnis versehene Farbenimages können mit 4-bit- oder 8-Bit-RLE oder Huffman 1D Algorithmus zusammengepresst werden.

OS/2 BITMAPCOREHEADER2 24bpp Images kann mit dem RLE 24-Bit-Algorithmus zusammengepresst werden.

16bpp und 32bpp werden Images immer unkomprimiert versorgt.

Bemerken Sie, dass Images in allen Farbentiefen ohne Kompression auf Anfrage versorgt werden können.

Pixel-Format

In der bitmap Bilddatei auf einer Platte oder bitmap Image im Gedächtnis können die Pixel durch die unterschiedliche Zahl von Bit definiert werden.

:* Das 1 Bit pro Pixel (1bpp) Format unterstützt 2 verschiedene Farben, (zum Beispiel: schwarz und weiß). Die Pixel-Werte werden in jedem Bit, mit dem ersten (ganz links) Pixel in die meisten - bedeutendes Bit des ersten Bytes versorgt. Jedes Bit ist ein Index in einen Tisch von 2 Farben. Ein ungesetztes Bit wird sich auf den ersten Farbentabellenzugang beziehen, und ein Satz hat gebissen wird sich auf den letzten (zweiten) Farbentabellenzugang beziehen.

:* Die 2 Bit pro Pixel (2bpp) Format unterstützen 4 verschiedene Farben und versorgen 4 Pixel pro 1 Byte, ganz links Pixel, das in den zwei bedeutendsten Bit (Windows CE nur) ist. Jeder Pixel-Wert ist ein 2-Bit-Index in einen Tisch von bis zu 4 Farben.

:* Die 4 Bit pro Pixel (4bpp) Format unterstützen 16 verschiedene Farben und versorgen 2 Pixel pro 1 Byte, ganz links Pixel, das im bedeutenderen Nagen ist. Jeder Pixel-Wert ist ein 4-Bit-Index in einen Tisch von bis zu 16 Farben.

:* Die 8 Bit pro Pixel (8bpp) Format unterstützen 256 verschiedene Farben und versorgen 1 Pixel pro 1 Byte. Jedes Byte ist ein Index in einen Tisch von bis zu 256 Farben.

:* Die 16 Bit pro Pixel (16bpp) Format unterstützen 65536 verschiedene Farben und versorgen 1 Pixel pro 2-Byte-WORT. Jedes WORT kann das Alpha, die roten, grünen und blauen Proben des Pixels definieren.

:* Das 24-Bit-Pixel (24bpp) Format unterstützt 16,777,216 verschiedene Farben und versorgt 1 Pixel-Wert pro 3 Bytes. Jeder Pixel-Wert definiert die roten, grünen und blauen Proben des Pixels (8.8.8.0.0 in der RGBAX Notation). Spezifisch in der Ordnung (blau, grün und rot, 8 Bit pro jede Probe).

:* Die 32 Bit pro Pixel (32bpp) Format unterstützen 4,294,967,296 verschiedene Farben und versorgen 1 Pixel pro 4-Byte-DWORD. Jeder DWORD kann das Alpha, die Roten, Grünen und Blauen Proben des Pixels definieren.

Um die Zweideutigkeit aufzulösen, deren Bit definieren, welche Proben, die DIB Kopfbälle bestimmtem Verzug sowie spezifischen BITFIELDS zur Verfügung stellen, die Bit-Masken sind, die die Mitgliedschaft der besonderen Gruppe von Bit in einem Pixel zu einem besonderen Kanal definieren. Das folgende Diagramm definiert diesen Mechanismus:

Diag. 2 - Der BITFIELDS Mechanismus für ein 32-Bit-Pixel, das in der RGBAX Beispiellänge-Notation gezeichnet ist

Die durch den BITFIELDS definierten Beispielfelder haben Masken gebissen müssen aneinander grenzend und nichtüberlappend sein.

Die roten, grünen und blauen Bit-Masken sind nur gültig, wenn das Kompressionsmitglied des DIB Kopfballs auf BI_BITFIELDS gesetzt wird.

Die Alpha-Bit-Maske ist gültig, wann auch immer sie im DIB Kopfball da ist, oder wenn das Kompressionsmitglied des DIB Kopfballs auf BI_ALPHABITFIELDS (Windows CE nur) gesetzt wird.

Diag.3 - Das Pixel-Format mit einem Alpha-Kanal in einem 16-Bit-Pixel (in der RGBAX Beispielnotation von Lngth) wirklich erzeugt von Adobe Photoshop

:::: Der Tisch verzeichnet unten alle möglichen Pixel-Formate eines DIB (in der RGBAX Notation).

Der BITFIELD Mechanismus, der oben beschrieben ist, berücksichtigt die Definition von Zehntausenden verschiedene Pixel-Formate, jedoch werden nur mehrere von ihnen in der Praxis verwendet wie:

  • 8.8.8.0.0
  • 8.8.8.0.8
  • 8.8.8.8.0
  • 5.5.5.0.1
  • 5.5.5.1.0
  • 5.6.5.0.0
  • 4.4.4.0.4
  • 4.4.4.4.0
  • Alle Palettized-Formate (gekennzeichnet im Gelb im Tisch oben)

Beispiel 1

Folgender ist ein Beispiel 2×2 Pixel, 24 Bit bitmap (Windows DIB Kopfball BITMAPINFOHEADER) mit dem Pixel-Format 8.8.8.0.0 (in der RGBAX Notation).

Beispiel 2

Folgender ist ein Beispiel 4×2 Pixel, 32 Bit bitmap mit Undurchsichtigkeitswerten im Alpha-Kanal (Windows DIB Kopfball BITMAPV4HEADER) mit dem Pixel-Format 8.8.8.8.0 (in der RGBAX Notation).

Bemerken Sie, dass die bitmap Daten mit der niedrigeren Ecke der linken Hand des Images anfangen.

Gebrauch des BMP-Formats

Die Einfachheit des BMP Dateiformats und seine weit verbreitete Vertrautheit in Windows und anderswohin, sowie die Tatsache, dass dieses Format relativ gut dokumentiert wird und frei von Patenten, machen es ein sehr Standardformat, das Bildverarbeitungsprogramme von vielen Betriebssystemen lesen und schreiben können.

Viele ältere grafische Benutzerschnittstellen haben bitmaps in ihren eingebauten Grafiksubsystemen verwendet; zum Beispiel, Windows von Microsoft und das GDI Subsystem von OS/2 Plattformen, wo das spezifische verwendete Format Windows und OS/2 bitmap Dateiformat ist, das gewöhnlich mit der Dateierweiterung genannt ist oder.

Während die meisten BMP Dateien eine relativ große Dateigröße haben, die erwartet ist, von jeder Kompression zu fehlen (oder allgemein Verschlüsselung der Lauf-Länge des niedrigen Verhältnisses auf palletized Images), können viele BMP Dateien mit lossless Datenkompressionsalgorithmen wie SCHWIRREN beträchtlich zusammengepresst werden (in äußersten Fällen von nichtfotografischen Daten, bis zu 0.1 % der ursprünglichen Größe), weil sie überflüssige Daten enthalten. Einige Formate, wie RAR, schließen sogar bei der effizienten Kompression solcher Daten spezifisch ins Visier genommene Routinen ein.

Zusammenhängende Formate

Der X Window System verwendet ein ähnliches XBM-Format für Schwarzweißimages und XPM (pixelmap) für Farbenimages. Es gibt auch eine Vielfalt von "rohen" Formaten, die rohe Daten ohne andere Information spart. Der Tragbare Pixmap (PPM) und Truevision TGA Formate bestehen auch, aber werden weniger häufig - oder nur zu speziellen Zwecken verwendet; zum Beispiel kann TGA Durchsichtigkeitsinformation enthalten.

Viele andere bitmap Dateiformate existieren, obwohl die meisten nicht weit verwendet werden.

Siehe auch

  • Der Vergleich der Grafikdatei formatiert

Außenverbindungen


Robert Maclennan, Baron Maclennan von Rogart / Marilyn Bowering
Impressum & Datenschutz