ICCHEADER

typedef struct _ICCHEADER
{
   L_IccUInt32Number uSize;
   L_IccSignature nCmmID;
   L_IccUInt32Number uVersion;
   L_UINT32 uDeviceClass;
   L_UINT32 uColorSpace;
   L_UINT32 uPCS;
   ICC_DATE_TIME_NUMBER DateTime;
   L_IccSignature nProfileSignature;
   L_UINT32 uPlatform;
   L_IccUInt32Number uFlags;
   L_IccSignature nManufacturer;
   L_IccUInt32Number uModel;
   L_IccUInt64Number uAttributes;
   L_IccUInt32Number uRenderingIntent;
   ICC_XYZ_NUMBER Illuminant;
   L_IccSignature nCreator;
   L_IccUInt8Number uProfileID[16];
   L_IccUInt8Number uReserved[28];
} ICCHEADER, * pICCHEADER;

The ICCHEADER structure is used to save all the information and data about an ICC profile header.

Member

Description

uSize

A value that indicates the size of the ICC profile in bytes.

nCmmID

A value that indicates the Color Management Module for the profile.

uVersion

A value that indicates the version of the ICC profile.

uDeviceClass

A value that indicates the device class profile of the ICC profile. For a list of possible values, refer to ICCPROFILECLASS.

uColorSpace

A value that indicates the color space used for the ICC profile. For a list of possible values, refer to ICCCOLORSPACE.

uPCS

A value that indicates the color space used for the Profile Connection Space. For a list of possible values, refer to ICCCOLORSPACE.

DateTime

Pointer to ICC_DATE_TIME_NUMBER structure that contains the date and time of creation of the ICC profile.

nProfileSignature

A value that indicates the profile signature.

uPlatform

A value that indicates the primary platform for which the ICC profile was created. For a list of possible values, refer to ICCPLATFORMSIGNATURE.

uFlags

Flags that indicate if the ICC profile is embedded, and if the ICC profile can be used independently from the embedded color data. You can use a bitwise OR (|) to specify one flag from each group. The following flags indicate if the ICC profile is embedded or not:

 

Value

Meaning

 

ICC_EMBEDDED_PROFILE_FALSE

[0x00000000] ICC profile is not embedded

 

ICC_EMBEDDED_PROFILE_TRUE

[0x00000001] ICC profile is embedded

 

The following flags indicate if the ICC profile can be used independently from the embedded color data or not:

 

Value

Meaning

 

ICC_USE_ANYWHERE

[0x00000000] ICC profile can be used independently

 

ICC_USE_WITH_EMBEDDED_DATA_ONLY

[0x00000002] ICC profile cannot be used independently

nManufacturer

A value that indicates the device manufacturer for the device for which the ICC profile was created.

uModel

A value that indicates the model of the device for which the ICC profile was created.

uAttributes

Flags that identify attributes unique to a particular device. You can use a bitwise OR (|) to specify one flag from each group. The following flags indicate the transparency of the media:

 

Value

Meaning

 

ICC_REFLECTIVE

[0x0000000000000000] Reflective media

 

ICC_TRANSPARENCY

[0x0000000000000001] Transparent media

 

The following flags indicate if the media is glossy or matte:

 

Value

Meaning

 

ICC_GLOSSY

[0x0000000000000000] Glossy media

 

ICC_MATTE

[0x0000000000000002] Matte media

 

The following flags indicate media polarity:

 

Value

Meaning

 

ICC_MEDIA_POLARITY_POSITIVE

[0x0000000000000000] Positive media polarity

 

ICC_MEDIA_POLARITY_NEGATIVE

[0x0000000000000004] Negative media polarity

 

The following flags indicate if the media is colored or not:

 

Value

Meaning

 

ICC_COLOR_MEDIA

[0x0000000000000000] Color media

 

ICC_BLACK_AND_WHITE

[0x0000000000000008] Black and white media

uRenderingIntent

A value that indicates the rendering intent. For a list of possible values, refer to ICCRENDERINGINTENT.

Illuminant

Pointer to ICC_XYZ_NUMBER structure that indicates the CIEXYZ values of the illuminant used for the profile connection space.

nCreator

A value that identifies the creator of the ICC profile.

uProfileID

An array that contains 16 byte values generated using an MD5 algorithm. This indicates a checksum value for the ICC profile.

uReserved

An array of reserved bytes for the ICC organization.

Comments

The nCmmID value must match a CMM type signature registered in the ICC registry. If no preferred CMM is identified, this field is set to zero (00000000h). The registration authority for this data is the ICC Technical Secretary. Set the ICC web site (www.color.org) for contact information.

The uVersion contains the value ICC_PROFILE_VER42 for ICC version 4.2.0.0 over which this ICC profile structure and all the functions associated with it was built.

For all profile classes, other than a device link profile, the profile connection space field uPCS is either XyzData or LabData. When the device class is a device link profile, the value of the profile connection space must be an appropriate color space from the list in ICCCOLORSPACE.

The nProfileSignature contains the fixed value of ICC_PROFILE_SIG. Please note that ICC_PROFILE_SIG is the actual value that is always used for the nProfileSignature member.

If there is no primary platform identified, uPlatform is set to NoPlatformSignature (0x00000000).

The nManufacturer and uModel values must match the signature contained in the appropriate section of the ICC signature registry found at (http://www.color.org/). If not used, this field is set to zero (00000000h).

For the Illuminant field, the only illuminant permitted for the profile connection space is D50 (where X=0.9642; Y=1.0 and z=0.8249).

The nCreator value must match the signature contained in the device manufacturer section of the ICC signature registry found at (www.color.org). If not used, this field is set to zero (00000000h).

The uProfileID value is generated using the MD5 fingerprinting method as defined in the Internet RFC 1321. If it has not been calculated, the value of the uProfileID is set to zero (00000000h).

The uReserved member is reserved for future ICC definition and is set to zero (00000000h).