Previous Book Contents Book Index Next

Inside Macintosh: Advanced Color Imaging Reference /
Chapter 3 - ColorSync Manager Reference for Applications and Device Drivers / Constants and Data Types
Apple Profile Header

Profile Header Structure for ColorSync 1.0

ColorSync 1.0 defines a version 1.0 profile whose structure and format are different from that of the ICC version 2.x profile. To obtain a copy of the International Color Consortium Profile Format Specification, or to get other information about the ICC, visit the ICC's Web site at

Your application cannot use ColorSync Manager functions to update a version 1.0 profile or to search for version 1.0 profiles. However, your application can use other ColorSync Manager functions that operate on version 1.0 profiles. For example, your application can open a version 1.0 profile using the CMOpenProfile function (page 3-69), obtain the version 1.0 profile header using the CMGetProfileHeader function (page 3-88), and access version 1.0 profile elements using the CMGetProfileElement function (page 3-87).

To make it possible to operate on version 1.0 profiles, the ColorSync Manager defines the CMAppleProfileHeader union (page 3-42), which supports either profile header version. The CMHeader data type defines the version 1.0 profile header.

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,
                                       and so on */
   unsigned long  profileNameOffset;/* offset to name from top of data */
   unsigned long  customDataOffset; /* offset to custom data from top */
   CMMatchFlag    flags;            /* miscellaneous info for drivers */
   CMMatchOption  options;          /* matching type, such as perceptual */
   CMXYZColor     white;            /* white point in XYZ space */
   CMXYZColor     black;            /* black point in XYZ space */
Field Description
The total size in bytes of the profile, including any custom data.
The signature of the preferred CMM for color-matching and color-checking sessions for this profile. To avoid conflicts with other CMMs, this signature must be registered with the ICC. For the signature of the Apple CMM, see "Signature of the Default Apple Color Management Module" (page 3-14).

The Apple profile version. Set this field to $0100 (defined as the constant kCMApplProfileVersion).
The kind of color data. The types are
cmRGBData = 'RGB ', source or destination profiles
cmCMYKData = 'CMYK', destination profiles
cmGrayData = 'GRAY', source or destination profiles
cmXYZData = 'XYZ ' source or destination profiles
The kind of device. The types are
cmMonitorDevice = 'mntr'
cmScannerDevice = 'scnr'
cmPrinterDevice = 'prtr'
A name supplied by the device manufacturer.
The device model specified by the manufacturer.
Private information such as paper surface and ink temperature.
The offset to the profile name from the top of data.
The offset to any custom data from the top of data.
A field used by drivers; it can hold one of the following flags:
The CMNativeMatchingPreferred flag is available for developers of intelligent peripherals that can off-load color matching into the peripheral. Most drivers will not use this flag. (Its default setting is 0, meaning that the profile creator does not care whether matching occurs on the host or the device.)
Use the CMTurnOffCache flag for CMMs that won't benefit from a cache, such as those that can look up data from a table with less overhead, or that don't want to take the memory hit a cache entails, or that do their own caching and don't want the CMM to do it. (The default is 0, meaning turn on cache.)
The options field specifies the preferred matching for this profile; the default is CMPerceptualMatch; other values are CMColorimetricMatch or CMSaturationMatch. The options are set by the image creator.
The profile illuminant white reference point, expressed in the XYZ color space.
The black reference point for this profile, expressed in the XYZ color space.
For more information on ColorSync 1.0 headers, see the appendix "ColorSync Manager Backward Compatibility" in Advanced Color Imaging on the Mac OS.

Previous Book Contents Book Index Next

© Apple Computer, Inc.
11 NOV 1996