DIBs im CMYK-Farbraum werden von DaVinci in einem Format gespeichert, dass Microsoft mit ICM (Integrated Color Management 1.0) und Windows 4.0 / 95 eingeführt hat. Dieses Format wurde von Microsoft spezifiziert, obwohl keine Unterstützung durch das Betriebssystem vorhanden ist.
Mit Windows 95/Windows NT kann eine DIB nun mit einer BITMAPV4HEADER Struktur anstelle einer BITMAPINFOHEADER-Struktur beginnen. 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.
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 | |
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.
Beispiel: Erkennen ob eine DIB im CMYK Farbraum vorliegt.
/* DIBIsCmyk |
|
* |
|
* Returns TRUE if the DIB pointed to by lpbmi is a DIB in CMYK color format. |
|
*/ |
|
BOOL WINAPI DIBIsCmyk(LPBITMAPINFOHEADER lpbmi) |
|
{ |
|
BOOL |
Result = FALSE; |
if (lpbmi->biSize == sizeof(BITMAPV4HEADER)) |
|
{ |
|
LPBITMAPV4HEADER lpbmi4 = (LPBITMAPV4HEADER) lpbmi; |
|
Result = lpbmi4->bV4CSType == LCS_DEVICE_CMYK; |
|
} |
|
return Result; |
|
} // DIBIsCmyk |