Profiles contain the following types of information:
Data determined by the specific conditions in which colors are expected to be viewed (for example, the lighting conditions and type of media that will be used).
Tables of data or equation parameters that a CMM uses to transform color data.
CMM-specific information. Each profile is owned by a specific CMM. Although all profiles have common, public information, there may be private data in an individual profile format for use by that particular CMM.
Profiles are the focus of your programming efforts. Typically, you write applications to load profiles, read profile attributes, connect profiles, optimize profiles, and apply profiles to color data. To perform these types of operations, you incorporate KCMS API functions into your application. See "KCMS API Functional Overview" for a summary of all the API functions.
Typically, you use the API to combine or connect existing profiles to create profiles, rather than to generate new ones. Creating new profiles is the left to the CMM developer.
When you write applications that use the KCMS API, you do not need to understand the details of the profile file format. However, you might be interested to know that KCMS, by default, uses the International Color Consortium (ICC) profile format. The ICC format is an emerging default de facto standard supported by a wide range of computer and color device vendors. This is extremely advantageous for users, as this standard allows a single profile to work over multiple platforms.
The ICC format is endorsed by many regular members. The founding members are Adobe Systems Inc., Agfa-Gevaert N.V., Apple Computer Inc., Eastman Kodak Company, FOGRA (Honorary), Microsoft Corporation, Silicon Graphics, Inc., Sun Microsystems Inc., and Taligent Inc.
The KCMS framework uses the ICC format as the default profile format. For details on the ICC profile format, see the ICC profile format specification. By default, it is located on-line in the SUNWsdk/kcms/doc directory. For the latest version of the ICC specification, see the web site at http://www.color.org.
Each color profile is owned by or associated with a specific CMM. Each CMM may have a different way of performing its color-correction technology. For example, a CMM may incorporate a unique way to calibrate its profiles.
In general, your application does not need to know which CMM owns a profile. In the case where the profile owner is not present and the profile is a valid ICC profile, the default CMM can provide the functionality necessary to use that profile.
The KCMS API functions your application calls are device-independent interfaces to the KCMS framework. The manner in which these API functions are preformed may differ depending on the underlying CMM and its particular color correction technology, but your application interface does not change. It always calls the API functions in the standard way. What you might want to be aware of, however, is that occasionally your application may receive CMM-specific error codes.
For more information on CMMs, see the DDK document, KCMS CMM Developer's Guide.