The ICCHEADER structure is used to save all the information and data about an ICC profile header.
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;
A value that indicates the size of the ICC profile in bytes.
A value that indicates the Color Management Module for the profile.
A value that indicates the version of the ICC profile.
A value that indicates the device class profile of the ICC profile. For a list of possible values, refer to ICCPROFILECLASS.
A value that indicates the color space used for the ICC profile. For a list of possible values, refer to ICCCOLORSPACE.
A value that indicates the color space used for the Profile Connection Space. For a list of possible values, refer to ICCCOLORSPACE.
Pointer to ICC_DATE_TIME_NUMBER structure that contains the date and time of creation of the ICC profile.
A value that indicates the profile signature.
A value that indicates the primary platform for which the ICC profile was created. For a list of possible values, refer to ICCPLATFORMSIGNATURE.
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. Possible values are:
Value | Meaning |
---|---|
ICC profile embedding: | |
ICC_EMBEDDED_PROFILE_FALSE | [0x00000000] ICC profile is not embedded |
ICC_EMBEDDED_PROFILE_TRUE | [0x00000001] ICC profile is embedded |
ICC profile can be used independently from the embedded color data: | |
ICC_USE_ANYWHERE | [0x00000000] ICC profile can be used independently |
ICC_USE_WITH_EMBEDDED_DATA_ONLY | [0x00000002] ICC profile cannot be used independently |
A value that indicates the device manufacturer for the device for which the ICC profile was created.
A value that indicates the model of the device for which the ICC profile was created.
Flags that identify attributes unique to a particular device. You can use a bitwise OR ( | ) to specify one flag from each group. Possible values are:
Value | Meaning |
---|---|
Transparency of the media: | |
ICC_REFLECTIVE | [0x0000000000000000] Reflective media |
ICC_TRANSPARENCY | [0x0000000000000001] Transparent media |
Media is glossy or matte: | |
ICC_GLOSSY | [0x0000000000000000] Glossy media |
ICC_MATTE | [0x0000000000000002] Matte media |
Media polarity: | |
ICC_MEDIA_POLARITY_POSITIVE | [0x0000000000000000] Positive media polarity |
ICC_MEDIA_POLARITY_NEGATIVE | [0x0000000000000004] Negative media polarity |
Media is colored: | |
ICC_COLOR_MEDIA | [0x0000000000000000] Color media |
ICC_BLACK_AND_WHITE | [0x0000000000000008] Black and white media |
A value that indicates the rendering intent. For a list of possible values, refer to ICCRENDERINGINTENT.
Pointer to ICC_XYZ_NUMBER structure that indicates the CIEXYZ values of the illuminant used for the profile connection space.
A value that identifies the creator of the ICC profile.
An array that contains 16 byte values generated using an MD5 algorithm. This indicates a checksum value for the ICC profile.
An array of reserved bytes for the ICC organization.
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 (https://www.color.org/index.xalter) 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 (https://www.color.org/index.xalter). 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 (https://www.color.org/index.xalter). 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).
The LICCProfile::Fill function can allocate and fill this structure using the ICC data stored in ICCPROFILEEXT.pData.