Share via


ICM Color Structures

This group of structures is used to specify colors for translation.

The GRAYCOLOR Structure

struct GRAYCOLOR {
  WORD    gray;
};

The RGBCOLOR Structure

struct RGBCOLOR {
  WORD    red;
  WORD    green;
  WORD    blue;
};

The CMYKCOLOR Structure

struct CMYKCOLOR {
  WORD    cyan;
  WORD    magenta;
  WORD    yellow;
  WORD    black;
};

The XYZCOLOR Structure

struct XYZCOLOR {
  WORD    X;
  WORD    Y;
  WORD    Z;
};

The YxyCOLOR Structure

struct YxyCOLOR {
  WORD    Y;
  WORD    x;
  WORD    y;
};

The L*a*bCOLOR Structure

struct LabCOLOR {
  WORD    L;
  WORD    a;
  WORD    b;
};

The GENERIC3CHANNEL Structure

struct GENERIC3CHANNEL {
  WORD    ch1;
  WORD    ch2;
  WORD    ch3;
};

The NAMEDCOLOR Structure

struct NAMEDCOLOR {
  DWORD   dwIndex;
};

The HiFiCOLOR Structure

struct HiFiCOLOR {
  BYTE    channel[MAX_COLOR_CHANNELS];
};

The COLOR Structure

typedef union tagCOLOR {
  struct GRAYCOLOR        gray;
  struct RGBCOLOR         rgb;
  struct CMYKCOLOR        cmyk;
  struct XYZCOLOR         XYZ;
  struct YxyCOLOR         Yxy;
  struct LabCOLOR         Lab;
  struct GENERIC3CHANNEL  gen3ch;
  struct NAMEDCOLOR       named;
  struct HiFiCOLOR        hifi;
} COLOR;

A variable of type COLOR may be accessed as any of the supported color space colors by accessing the appropriate member of the union. For instance, given the following variable declaration:

COLOR aColor;

the red, green and blue values could be set in the following manner:

aColor.rgb.red=100;
aColor.rgb.green=50;
aColor.rgb.blue=2;

Requirements

**  Windows NT/2000/XP/Vista:** Included in Windows 2000 and later.
**  Windows 95/98/Me:** Included in Windows 98 and later.
**  Header:** Declared in Icm.h.

See Also

Basic Color Management Concepts, Structures