Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

Previous Book Contents Book Index Next

Inside Macintosh: Advanced Color Imaging on the Mac OS /
Appendix A - ColorSync Manager Backward Compatibility / ColorSync 1.0 Profile Support


How ColorSync 1.0 Profiles and Version 2.x Profiles Differ

A ColorSync 1.0 profile is smaller than a version 2.x profile and can therefore reside in memory. It is handle-based. A version 2.x profile as implemented by the ColorSync Manager is commonly file based, but it can also be memory based. You use an abstract internal data structure, called a profile reference, to access a version 2.x profile.

A ColorSync 1.0 profile contains a header, a copy of the Apple CMProfileChromaticities record, profile response data for the associated device, and a profile name string for use in dialog boxes. Custom profiles may also have additional, private data. ColorSync 1.0 defines the following profile data structure:

struct CMProfile, *CMProfilePtr, **CMProfileHandle {
   CMHeader             header;
   CMProfileChromaticitiesprofile;
   CMProfileResponse    response;
   IString              profileName;/* variable length */
   char                 customData[anyNumber];
                              /* optional custom CMM data */ 
};
The response data fields contain nine tables. The first table is for grayscale values. The next three are red, green, and blue values, followed by three for cyan, magenta, and yellow values. The eighth and ninth tables are for CMYK printers requiring undercolor removal and black generation data.

The ColorSync 1.0 profile header and the version 2.x profile header contain many fields in common. However, the ColorSync 1.0 profile header contains fields that reflect its table-based structure. ColorSync 1.0 defines the following profile header data structure. For more information, see "Profile Header Structure for ColorSync 1.0" in Advanced Color Imaging Reference.

struct CMHeader {
   unsigned long  size;             /* byte size of profile */
   OSType         CMMType;          /* signature of preferred CMM */
   unsigned long  applProfileVersion;/* Apple profile version */
   OSType         dataType;         /* type of color data, such as rgb */
   OSType         deviceType;       /* device type, such as monitor */
   OSType         deviceManufacturer;/* device manufacturer */
   unsigned long  deviceModel;      /* as specified by manufacturer */
   unsigned long  deviceAttributes[2];/* private info on ink, paper, etc. */
   unsigned long  profileNameOffset;/* offset to name from top of data */
   unsigned long  customDataOffset; /* offset to custom data from top */
   CMMatchFlag    flags;            /* misc. info used by drivers */
   CMMatchOption  options;          /* matching type, such as perceptual */
   CMXYZColor     white;            /* white point in XYZ space */
   CMXYZColor     black;            /* black point in XYZ space */
};
As implemented in the ColorSync Manager, a version 2.x profile is a tagged-element structure that begins with a profile header. A version 2.x profile supports use of lookup table transforms that allow for faster processing. The ColorSync Manager defines the following profile header data structure for version 2.x profiles. For more information, see "Profile Header Structure for ColorSync 2.x" in Advanced Color Imaging Reference.

struct CM2Header {
   unsigned long  size;             /* total size of profile */
   OSType         CMMType;          /* CMM signature, registered with
                                       CS2 consortium */
   unsigned long  profileVersion;   /* version of the profile format */
   OSType         profileClass;     /* input, display, output, devicelink,
                                       abstract, color conversion, or
                                       named color profile type */
   OSType         dataColorSpace;   /* color space of data */
   OSType         profileConnectionSpace;/* profile connection color space */
   CMDateTime     dateTime;         /* date & time of profile creation */
   OSType         CS2profileSignature;/* 'acsp' constant, required by ICC */
   OSType         platform;         /* signature of primary profile
                                       platform, registered
                                       with CS2 consortium */
   unsigned long  flags;            /* gives hints for certain options */
   OSType         deviceManufacturer;/* registered with ICC consortium */
   unsigned long  deviceModel;      /* registered with ICC consortium */
   unsigned long  deviceAttributes[2];/* attributes such as paper type */
   unsigned long  renderingIntent;  /* preferred rendering intent of object
                                       tagged with this profile */
   CMFixedXYZColorwhite;            /* profile illuminant */
   OSType         creator;          /* signature of profile creator */
   char           reserved[44];     /* reserved for future use */
};

Previous Book Contents Book Index Next

© Apple Computer, Inc.
13 NOV 1996