PATHMac OS 8 and 9 Developer Documentation > Mutlimedia and Graphics > ColorSync Manager >

Managing Color With ColorSync


Profiles

To perform color matching or color conversion across different color spaces requires the use of a profile for each device involved. Profiles provide the information necessary to understand how a particular device reproduces color. A profile may contain such information as lightest and darkest possible tones (referred to as white point and black point), the difference between specific "targets" and what is actually captured, and maximum densities for red, green, blue, cyan, magenta, and yellow. Together these measurements represent the data which describe a particular color gamut.

The International Color Consortium Profile Format

ColorSync supports the profile format defined by the International Color Consortium (ICC). The ICC format provides a single cross-platform standard for translating color data across devices. The ICC defines several types of profiles, including input, output, and display profiles. Each of these types specifies a different required set of information, but all follow the same format.

The founding members of the ICC include Adobe Systems Inc.; Agfa-Gevaert N.V.; Apple Computer, Inc.; Eastman Kodak Company; FOGRA (Honorary); Microsoft Corporation; Silicon Graphics, Inc.; and Sun Microsystems, Inc. These companies have committed to full support of this specification in their operating systems, platforms, and applications.

To obtain a copy of the International Color Consortium Profile Format Specification, or to get other information about the ICC, visit the ICC Web site at http://www.color.org .

ColorSync and ICC Profile Format Version Numbers

The first version of ColorSync used a 1.0 profile format that preceded the ICC profile format definition. Starting with version 2.0 of the ColorSync Manager, ColorSync uses a 2.x profile format that supports all current ICC profile format versions. As of this writing, that includes ICC versions 2.0 and 2.1. The ICC defines the profile format version as part of the profile header. For more information on the differences between these profile format versions, see ColorSync 1.0 Profiles and Version 2.x Profiles .

Source and Destination Profiles

When a ColorSync-supportive scanning application creates a scanned image, it embeds a profile for the scanner in the image. The profile that is associated with the image and describes the characteristics of the device on which the image was created is called the source profile. If the colors in the image are subsequently converted to another color space by the scanning application or by another ColorSync-supportive application, ColorSync can use that source profile to identify the original colors and to match them to colors expressed in the new color space.

Displaying the image requires using another profile, which is associated with the output device, such as a display. The profile for that device is called the destination profile. If the image is destined for a display, ColorSync can use the display's profile (the destination profile) along with the image's source profile to match the image's colors to the display's gamut. If the image is printed, ColorSync can use the printer's profile to match the image's colors to the printer, including generating black and removing excessive color densities (known as undercolor removal , or UCR ) where appropriate.

Profile Classes

The ColorSync Manager supports seven classes, or types, of profiles. These classes are defined below. Three of the profile classes define device profiles for different types of devices: input, output, and display devices. The other four profile classes include definitions for an abstract profile, a color space profile, a named color space profile, and a device link profile. The constants used to specify these classes are described in Profile Class .

A device profile characterizes a particular device: that is, it describes the characteristics of a color space for a physical device in a particular state. A display, for example, might have a single profile, or it might have several, based on differences in gamma value and white point. A printer might have a different profile for each paper type or ink type it uses because each paper type and ink type constitutes a different printer state. When an application calls a ColorSync Manager color-matching function to match colors between devices, such as a display and a printer, it specifies the profile for each device.

Device profiles are divided into three broad classifications:

Each device profile class has its own signature. The ColorSync constants for these signatures are described in Profile Class . For related information, see Devices and Their Profiles .

A profile connection space (PCS) is a device-independent color space used as an intermediate when converting from one device-dependent color space to another. Profile connection spaces are typically based on spaces derived from the CIE color space, which is described in Device-Independent Color Spaces . ColorSync supports two of these spaces, XYZ and L*a*b.

A color space profile contains the data necessary to convert color values between a PCS and a non-device color space (such as L*a*b to or from L*u*v, or XYZ to or from Yxy), for color matching. The ColorSync Manager uses color space profiles when mapping colors between different color spaces. Color space profiles also provide a convenient means for CMMs to convert between different non-device profiles.

L*a*b, L*u*v, XYZ, and Yxy color spaces are described in Color Spaces .

Abstract profiles allow applications to perform special color effects independent of the devices on which the effects are rendered. For example, an application may choose to implement an abstract profile that increases yellow hue on all devices. Abstract profiles allow users of the application to make subjective color changes to images or graphics objects.

A device link profile represents a one-way link or connection between devices. It can be created from a set of multiple profiles, such as various device profiles associated with the creation and editing of an image. It does not represent any device model, nor can it be embedded into images.

For more information on device link profiles, see CWNewLinkProfile and CMConcatProfileSet .

IMPORTANT

The CMConcatProfileSet structure used to create a device link profile includes a field that identifies the one CMM to use for the entire color-matching session across all profiles. However, you should read How the ColorSync Manager Selects a CMM , for a full description of the algorithm ColorSync uses to choose a CMM.

A named color space profile contains data for a list of named colors. The profile specifies a device color value and the corresponding CIE value for each color in the list. Profiles are typically stored as individual files in the ColorSync Profiles folder. For example, device-specific profiles provided by hardware vendors should be stored in the ColorSync Profiles folder. The location and use of the ColorSync Profiles folder has changed beginning in version 2.5. For a description of these changes, see Profile Search Locations .

Profiles can also be embedded within images. For example, profiles can be embedded in PICT, EPS, and TIFF files and in the private file formats used by applications. Embedded profiles allow for the automatic interpretation of color information as the color image is transferred from one device to another.

Note

The ICC profile format implemented in a ColorSync version 2.x profile is significantly different from the ColorSync 1.0 profile implementation. For more information, see ColorSync and ICC Profile Format Version Numbers .

Embedding a profile in an image guarantees that the image can be rendered correctly on a different system. However, profiles can be large--the largest can be several hundred KB or even larger. A profile identifier is an abbreviated data structure that uniquely identifies, and possibly modifies, a profile in memory or on disk, but takes up much less space than a large profile. For example, an application might embed a profile identifier to change just the rendering intent in an image without having to embed an entire new profile. Rendering intents are described in Rendering Intents . For more information on embedding profile information, see Embedding Profiles and Profile Identifiers .

IMPORTANT

A document containing an embedded profile identifier (as opposed to an embedded profile) is not necessarily portable to different systems or platforms.

Profile Properties

Profiles can contain different kinds of information. For example, a scanner profile and a printer profile have different sets of minimum required tags and element data. However, all profiles have at least a header followed by a required element tag table. The required tags may represent lookup tables, for example. The required tags for various profile classes are described in the International Color Consortium Profile Format Specification .

Profiles contain additional information, such as a specification for how to apply matching. For more information, see Color Management Modules . Profiles may also have a series of optional and private tagged elements. These private tagged elements may contain custom information used by particular color management modules.

Profile Location

In most cases, a ColorSync version 2.x profile is stored in a disk file. However, to support special requirements, a profile can also be located in memory or in an arbitrary location that is accessed by a procedure you specify. See Profile Location for a description of ColorSync Manager structures for working with profiles that are stored in each of these locations. See Opening a Profile and Obtaining a Reference to It for information on working with profile locations in your application.

Setting Default Profiles

Prior to version 2.5, the default system profile (or simply the system profile) served as the default display profile; it also served as the default profile for color operations for which no profile was specified. The system profile had to be an RGB profile. A user could specify the system profile through the ColorSync control panel (formerly called the "ColorSync System Profile" control panel). If a user did not specify a system profile, then by default ColorSync used the Apple 13-inch color display profile.

Because the system profile was used for two dissimilar functions (default display profile and default profile for some RGB operations), there were several limitations:

Figure 2-1 The ColorSync control panel

Starting with ColorSync version 2.5, a user can set default profiles for RGB and CMYK color spaces, as well as for the system profile, using the ColorSync control panel shown in Figure 1 . In addition, your application can call routines to get and set default profiles for the RGB, CMYK, Lab, and XYZ color spaces. As in previous versions of ColorSync, you can also call routines to get and set the current system profile.

Also starting with ColorSync version 2.5, a user can specify a separate profile for each monitor using the Monitors & Sound control panel. In addition, your application can call routines to get and set the profile for each display.

IMPORTANT

When a user sets a profile for a monitor in the Monitors & Sound control panel, ColorSync makes that profile the current system profile. When your application sets a profile for a monitor, it may also wish to make that profile the system profile.

Because ColorSync version 2.5 provides capabilities for getting and setting default profiles for color spaces and for assigning a profile to each monitor, your application and anyone using it can more precisely specify source and destination profiles. For example, your application can set the destination profile for an operation to be the profile for a specific monitor or the source profile to be the default CMYK profile.

IMPORTANT

Under certain conditions, functions such as NCMUseProfileComment still use the system profile, so you should set the system profile to an appropriate value, such as a profile for your main display.

For information on getting and setting profiles in code, see Getting and Setting Default Profiles by Color Space . Monitor Calibration and Profiles , describes how a user can specify a separate profile for each available monitor.


© 1988-1999 Apple Computer, Inc. — (Last Updated 20 Jan 99)