Directory Contents Search >>


DaVinci 4: Struktur BITMAPV4HEADER

Microsoft hat mit Windows 4.0 und Windows 95 das Dateiformat für DIBs erweitert. Optional kann eine DIB nun durch eine BITMAPV4HEADER-Struktur anstelle einer BITMAPINFOHEADER Struktur beginnen. Der Beginn der neuen Struktur enthält dieselben Datenfelder wie bei der BITMAPINFOHEADER Struktur, am Ende sind zusätzliche Datenfelder vorhanden. Alle anderen Strukturen (Farbpaletten, Bits) sind dementsprechend nach hinten versetzt. Das Feld biSize gibt an, ob es sich um eine DIB basierend auf BITMAPINFOHEADER oder BITMAPV4HEADER handelt.

biSize

Wert

Bedeutung

sizeof(BITMAPCOREHEADER)

0x0c

OS/2 1.3 kompatible DIB

sizeof(BITMAPINFOHEADER)

0x28

Windows 3.1 kompatible DIB

sizeof(BITMAPV4HEADER)

0x6c

Windows 95 / NT 4.0 DIB

sizeof(BITMAPV5HEADER)

Windows 98 / NT 5.0 DIB

typedef struct
tagBITMAPINFOHEADER{

DWORD biSize;

LONG biWidth;

LONG biHeight;

WORD biPlanes;

WORD biBitCount

DWORD biCompression;

DWORD biSizeImage;

LONG biXPelsPerMeter;

LONG biYPelsPerMeter;

DWORD biClrUsed;

DWORD biClrImportant;

} BITMAPINFOHEADER;

typedef struct
{
DWORD bV4Size;
LONG bV4Width;
LONG bV4Height;
WORD bV4Planes;
WORD bV4BitCount;
DWORD bV4V4Compression;
DWORD bV4SizeImage;
LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter;
DWORD bV4ClrUsed;
DWORD bV4ClrImportant;
DWORD bV4RedMask;
DWORD bV4GreenMask;
DWORD bV4BlueMask;
DWORD bV4AlphaMask;
DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed;
DWORD bV4GammaGreen;
DWORD bV4GammaBlue;
} BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER;

Die Felder der BITMAPV4HEADER-Struktur entsprechen denen der BITMAPINFOHEADER Struktur, jedoch sind zusätzliche Felder vorhanden.

Verwendung in DaVinci

DaVinci verwendet die BITMAPV4HEADER-Struktur, wenn mit DIBs in besonderen Formaten gearbeitet werden muss, deren Informationen in der BITMAPINFOHEADER Struktur nicht dargestellt werden können:

Kennzeichnung einer CMYK-DIB

Als Kennzeichen einer CMYK-DIB dient das Feld bV4CSType (Color Space Type), das folgende Werte annehmen kann:

Symbolische Konstante

Wert

Bedeutung

LCS_CALIBRATED_RGB

0

die DIB ist im normalisierten sRGB-Farbraum von ICM

LCS_DEVICE_RGB

1

die DIB ist im RGB-Farbraum des Bildschirms. Dies entspricht der früheren Definition von BITMAPINFOHEADER

LCS_DEVICE_CMYK

2

die DIB ist im CMYK-Farbraum des Druckers

Da die DIB mit 8 Bit je CMYK-Komponente abgelegt wird, ist bV4BitCount bzw. biBitCount = 32.

Kennzeichnung einer RGBA-DIB

Als Kennzeichen einer RGBA-DIB wird das Feld bV4AlphaMask auf einen Wert ungleich 0 gesetzt. Da die DIB mit 8 Bit je RGB und Alpha-Komponente abgelegt wird, ist bV4BitCount bzw. biBitCount = 32.

RGBA DIBs werden von Windows-Funktionen wie alle anderen DIBs behandelt, haben aber eine besondere Bedeutung bei der Verwendung der Funktion DIBAlphaBlend.

Anmerkungen

Die Struktur BITMAPV4HEADER ist bei neueren 32-Bit-Compilern in der Header-Datei WINGDI.H definiert. Bei 16-Bit Compilern ist sie dagegen nicht in WINDOWS.H vorhanden und wird daher in LEONARDO.H definiert.

Siehe Auch

Struktur BITMAPINFOHEADER

CMYK-DIBs

RGBA-DIBs

-


Valid HTML 4.01!