KCMS Application Developer's Guide

CMM-Specific Attribute Definitions

The following attribute definitions in the icc.h header file are CMM-specific. These definitions are registered with the ICC and are available for public use.

Attribute Definitions

icHeader

typedef struct {
     icUInt32Number                size;               /* Profile size in bytes */
     icSignature                   cmmId;              /* CMM for this profile */
     icUInt32Number                version;            /* Format version number */
     icProfileClassSignature       deviceClass;        /* Type of profile */
     icColorSpaceSignature         colorSpace;         /* Color space of data*/
     icColorSpaceSignature         pcs;                /* PCS, XYZ or LAB only */
     icDateTimeNumber              date;               /* Date profile was created */
     icSignature                   magic;              /* icMagicNumber */
     icPlatformSignature           platform;           /* Primary Platform */
     icUInt32Number                flags;              /* Various bit settings */
     icSignature                   manufacturer;       /* Device manufacturer */
     icUInt32Number                model;              /* Device model number */
     icUInt64Number                attributes;         /* Device attributes */
     icUInt32Number                renderingIntent;    /* Rendering intent */
     icXYZNumber                   illuminant;         /* Profile illuminant */
     icSignature                   creator;            /* Profile creator */
     icInt8Number                  reserved[48];       /* Reserved for future */
 } icHeader;

icProfile

typedef struct {
     icHeader                      header;       /* header */
     icUInt32Number                count;        /* number of tags in profile */
     icInt8Number                  data[icAny];  /* tagTable and tagData */

 /* Data the follows is of this form:
  * icTag                    tagTable[icAny];     * tag table
  * icInt8Number             tagData[icAny];      * tag data
  */

 } icProfile;

icTag

typedef struct {
     icTagSignature            sig;        /* tag signature */
     icUInt32Number            offset;     /* start of tag relative to start of
                                            * header, See ICC spec, sect 8 */
     icUInt32Number            size;       /* size in bytes */
 } icTag;

icTagList

typedef struct {
     icUInt32Number            count;        /* number of tags in profile */
     icTag                     tags[icAny];  /* variable array of tags */
 } icTagList;