Directory Contents Search << >>


DaVinci 4: BITMAPINFOHEADER

Formatinformationen für geräteunabhängige Bitmaps

Die BITMAPINFOHEADER-Struktur enthält Informationen über die Dimensionen und das Farbformat eines geräteunabhängigen Bitmap DIB für Windows 3.0 und neuer.

typedef struct tagBITMAPINFOHEADER{

DWORD biSize;

LONG biWidth;

LONG biHeight;

WORD biPlanes;

WORD biBitCount

DWORD biCompression;

DWORD biSizeImage;

DWORD biXPelsPerMeter;

DWORD biYPelsPerMeter;

DWORD biClrUsed;

DWORD biClrImportant;

} BITMAPINFOHEADER;

Die BITMAPINFOHEADER-Struktur hat folgende Felder:

Feld

Typ

Beschreibung

biSize

DWORD

bestimmt die Anzahl von Bytes, die von der BITMAPINFOHEADER-Struktur benötigt werden,

biWidth

LONG

bestimmt die Breite der Bitmap in Pixel.

biHeight

LONG

bestimmt die Höhe der Bitmap in Pixel.
Falls negativ, handelt es sich um eine Top-Down DIB. Diese werden beim Import einer BMP-Datei mittels
ipImportInd oder LoadDIB automatisch in Bottom-Up DIBs umgewandelt. Die meisten DaVinci-Funktionen können mit Top-Down DIBs nicht umgehen.

biPlanes

WORD

bestimmt die Anzahl der Farbebenen des Zielgerätes und muss auf 1 gesetzt sein.

DaVinci-Erweiterung: Für Bitmaps mit 16 Bits je Farbwert (48-Bit DIBs) wird biPlanes auf 2 gesetzt,

biBitCount

WORD

bestimmt die Anzahl der Bits pro Pixel. Dieser Wert muss 1, 4, 8, oder 24 sein, bei 32-Bit Windows auch 16 oder 32,

biCompression

DWORD

bestimmt den Kompressionstyp für ein komprimiertes Bitmap. Folgende Werte sind möglich:

Wert

Bedeutung

BI_RGB

bestimmt, dass das Bitmap nicht komprimiert ist,

BI_RLE4

bestimmt ein lauflängenkodiertes Format für Bitmaps mit 4 Bit pro Pixel. Sie finden im nachfolgenden Abschnitt » Bitmap-Komprimierungsformate « nähere Informationen hierzu,

BI_RLE8

bestimmt ein lauflängenkodiertes Format für das Bitmap mit 8 Bit pro Pixel. Sie finden im nachfolgenden Abschnitt » Bitmap-Komprimierungsformate « nähere Informationen hierzu,

biSizeImage

DWORD

bestimmt die Bildgröße in Bytes, ohne BITMAPINFOHEADER und RGBQUAD-Strukturen,

biXPelsPerMeter

DWORD

bestimmt die horizontale Auflösung des Bitmaps für das Zielgerät in Pixel pro Meter. Eine Anwendung kann diesen Wert zur Auswahl eines Bitmaps aus einer Ressourcengruppe verwenden, die am besten der Charakteristik des aktuellen Gerätes entspricht,

biYPelsPerMeter

DWORD

bestimmt die vertikale Auflösung des Bitmaps für das Zielgerät in Pixel pro Meter,

biClrUsed

DWORD

Bestimmt die Anzahl der Farbindizes in der Farbpalette, die gerade vom Bitmap verwendet wird. Wenn dieser Wert 0 ist, dann benutzt das Bitmap die maximale Anzahl von Farben, entsprechend dem Wert im Feld biBitCount. Mehr Informationen über die maximale Größe der Farbpalette sind in der Beschreibung der BITMAPINFO-Datenstruktur enthalten.Wenn biClrUsed ungleich 0 ist, dann bestimmt das Feld biClrUsed die aktuelle Anzahl von Farben, auf die die Grafikkarte bzw. der Gerätetreiber zugreift, wenn das Feld biBitCount kleiner als 24 ist. Wenn das Feld biBitCount auf 24 gesetzt ist, bestimmt das Feld biClrUsed die Größe der Referenzfarbpalette, die dazu verwendet wird, die Ausführungsgeschwindigkeit von Windows-Farbpaletten zu optimieren. Wenn dieses Bitmap ein verdichtetes Bitmap ist (dies ist ein Bitmap, in dem das Bitmap-Feld direkt nach dem BITMAPINFO-Kopf folgt und durch einen einzigen Zeiger bezeichnet wird), dann muss das Feld biClrUsed auf 0 oder auf die aktuelle Größe der Farbpalette gesetzt sein,

biClrImportant

DWORD

Bestimmt die Anzahl der Farbindizes, die für die Darstellung des Bitmaps für unabdingbar erachtet werden. Wenn dieser Wert 0 ist, dann sind alle Farben wichtig.

Anmerkungen

Die BITMAPINFO -Datenstruktur verbindet die Struktur BITMAPINFOHEADER und eine Farbpalette, um eine komplette Definition der Dimensionen und Farben eines geräteunabhängigen Bitmaps unter Windows bereitstellen zu können. Mehr Informationen über die Definition eines geräteunabhängigen Bitmaps für Windows finden Sie in der Beschreibung der BITMAPINFO-Datenstruktur.

Eine Anwendung sollte die im Feld biSize gespeicherte Information verwenden, um die Farbpalette in der BITMAPINFO-Datenstruktur zu lokalisieren. Folgende Methode sollte verwendet werden:

pColor = ((LPSTR) pBitmapInfo + (UINT) (pBitmapInfo -> biSize))

Ein geräteunabhängiges Bitmap von Windows besteht aus zwei verschiedenen Teilen: Einer BITMAPINFO -Datenstruktur, die die Dimensionen und Farben des Bitmaps beschreibt, und einem Byte-Feld, das die Pixel des Bitmaps beschreibt. Die Bits in dem Feld sind verdichtet, aber jede Rasterzeile muss mit Nullen aufgefüllt sein, um an einer LONG-Grenze zu enden. Segmentgrenzen (nur 16-Bit Programme) können jedoch überall im Bitmap auftreten.

Der Ursprung des Bitmaps ist die untere linke Ecke.

Ab Windows NT 3.5 und Windows 95 ist auch eine Variante der DIBs mit dem Ursprung in der oberen linken Ecke (top-down DIBs) spezifiziert, dazu wird das Feld biHeight negativ bestückt . DaVinci unterstützt diesen Typus aber nicht. BMP-Dateien, die solche Bitmaps enthalten, werden beim Import in das bottom-up format umgesetzt.

biBitCount

Das Feld biBitCount der BITMAPINFOHEADER-Struktur legt die Anzahl der Bits fest, die jedes Pixel und die maximale Anzahl der Farben im Bitmap beschreiben. Dieses Feld kann mit folgenden Werten besetzt werden:

Wert

Bedeutung

1

Das Bitmap ist monochrom, und das Feld bmciColors der BITMAPINFO Struktur muss zwei Einträge enthalten. Jedes Bit im Bitmap repräsentiert ein Pixel. Wenn das Bit gelöscht ist, dann wird das Pixel mit der Farbe des ersten Eintrags in der Tabelle bmciColors dargestellt. Wenn das Bit gesetzt ist, dann hat das Pixel die Farbe des zweiten Eintrags in der Tabelle. Die Bits werden in der Reihenfolge 7,6,5,4,3,2,1,0 interpretiert.

4

Das Bitmap hat maximal 16 Farben, und das Feld bmciColors der BITMAPINFO Struktur enthält 16 Einträge. Jedes Pixel im Bitmap wird durch einen vier Bit langen Index auf die Farbpalette repräsentiert. Wenn zum Beispiel das erste Byte im Bitmap 0x1F ist, dann repräsentiert das Byte zwei Pixel. Das erste Pixel enthält die Farbe im zweiten Tabelleneintrag, und das zweite Pixel enthält die Farbe im sechzehnten Tabelleneintrag.

8

Das Bitmap besitzt maximal 256 Farben, und das Feld bmciColors bmciColors der BITMAPINFO Struktur enthält maximal 256 Einträge. In diesem Fall repräsentiert jedes Byte in dem Feld ein einzelnes Pixel.

16

(Ab Windows NT 3.5, Windows 95, Video for Windows). Die Bitmap besitzt maximal 32767 Farben. Das Feld bmciColors ist leer. Je zwei Bytes im Bitmap des Feldes repräsentieren die relativen Intensitäten von Rot, Grün und Blau unabhängig für jedes Pixel.

24

Das Bitmap hat maximal 2^24 Farben. Das Feld bmciColors ist leer. Je drei Bytes im Bitmap des Feldes repräsentieren die relativen Intensitäten von Blau, Grün und Rot unabhängig für jedes Pixel. Die Reihenfolge der Bytes lautet Blau, Grün, Rot.

32

Das Bitmap hat maximal 2^24 Farben. Das Feld bmciColors ist leer. Je vier Bytes im Bitmap des Feldes repräsentieren die relativen Intensitäten von Blau, Grün und Rot unabhängig für jedes Pixel. Das vierte Byte wird nicht benutzt und ist üblicherweise 0.

Das Feld biClrUsed der Struktur BITMAPINFOHEADER legt die Anzahl der Farbindizes in der aktuell vom Bitmap verwendete Farbpalette fest.

Die Farben in der Tabelle bmiColors sollten in der Reihenfolge ihrer Wichtigkeit erscheinen.

Hinweis

Für Funktionen, die geräteunabhängige Bitmaps verwenden, kann das Feld bmiColors alternativ ein Feld aus vorzeichenlosen 16-Bit-Integer-Werten sein. Das Feld legt einen Index auf die aktuell verwendete virtuelle Palette anstelle eines expliziten RGB-Wertes fest. In diesem Fall muss eine Anwendung, die dieses Bitmap benutzt, geräteunabhängige Bitmap-Funktionen, die mit dem Parameter wUsage auf DIB_PAL_COLORS gesetzt sind, verwenden.

Das Feld bmiColors sollte keine Palettenindizes enthalten, wenn das Bitmap in einer Datei gespeichert oder an eine andere Anwendung übergeben werden soll. Wenn eine Anwendung das Bitmap nicht exklusiv und unter ihrer vollständigen Kontrolle verwendet, dann sollte die Bitmap-Farbpalette explizite RGB-Werte enthalten.

Bitmap-Komprimierungsformate

Windows unterstützt Formate zur Komprimierung von Bitmaps, die ihre Farben mit 8 Bit und 4 Bit pro Pixel definieren. Komprimierung reduziert den Platten- und Hauptspeicherbedarf für Bitmaps. DaVinci Funktionen unterstützen diese Datenformate nicht, sie werden beim Import einer Grafik mit einer DaVinci-Funktion dekomprimiert.

Siehe auch:

BITMAPINFOHEADER

BITMAPINFO

-


Valid HTML 4.01!