KCMS Application Developer's Guide

Required ICC Attributes

Some attributes in the profile structure are required by the ICC. These attributes provide a common base level of functionality for all CMMs to translate color information. If, for example, a requested CMM is not present, the default CMM information is used, knowing these attributes are present.

The names of the required attributes discussed in this section are defined in the icc.h header file. The associated data structures are defined in "Attribute Types" and are in the icc.h header file. See the ICC profile format specification for more detailed definitions of device profiles, attribute names, and attribute types (data structures). ICC-specification section titles are referenced in each profile class section discussed next. (The ICC profile format specification is located on-line in the SUNWsdk/kcms/doc directory. For the latest version of the specification, see the web site at http://icc.color.org.)

Table 5-1 shows attributes that are required depending on the profile type and interpretation. The attributes in the first five table rows can be set using KcsGetAttribute(), KcsSetAttribute(), or KcsUpdateProfile(). The icSigGrayTRCTag attribute is required for input profiles only.

Table 5-1 Attributes Required Depending on Interpretation

Profile 

Attribute Name 

Interpretation 

Input Profile 

icSigAToB0Tag

None 

Display Profile 

icSigAToB0Tag

None 

Output Profile 

icSigBToA0Tag

Perceptual rendering 

Output Profile 

icSigBToA1Tag

Colorimetric rendering 

Output Profile 

icSigBToA2Tag

Saturation rendering 

Input Profile 

icSigGrayTRCTag

Depends on intent 

Display Profile 

icSigGrayTRCTag

Additive 

Output Profile 

icSigGrayTRCTag

Subtractive 

Note that these tags, once set with KcsSetAttribute(), cannot be accessed and used unless the KcsSaveProfile() function has been called first. The save initiates certain CMM operations to be performed on the LUTs for future use.


Note -

This section uses the ICC equivalent names for KCMS profile format classifications (that is, input profile, output profile, and so forth) because the section presents some of the material as you will find it in the ICC profile format specification and in icc.h. See Table 2-1 in Chapter 2, Profiles, for the corresponding KCMS names.


Input Profile

The following attributes are required for input devices such as scanners. See "Input Profile" in the ICC specification for more information.

Monochrome Input Profiles

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigCopyrightTag

icText

icSigGrayTRCTag

icCurve

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

RGB Input Profiles

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigBlueColorantTag

icXYZArray

icSigBlueTRCTag

icCurve

icSigCopyrightTag

icText

icSigGreeColorantTag

icXYZArray

icSigGreenTRCTag

icCurve

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

icSigRedColorantTag

icXYZArray

icSigRedTRCTag

icCurve

N-Component Input Profiles

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigAtoB0Tag

icLut8 or icLut16

icSigCopyrightTag

icText

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

Display Profile

The following attributes are required for display devices such as monitors. See "Display Profile" in the ICC specification for more information.

Monochrome Display Profiles

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigCopyrightTag

icText

icSigGrayTRCTag

icCurve

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

RGB Display Profiles

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigBlueColorantTag

icCurve

icSigBlueTRCTag

icCurve

icSigCopyrightTag

icText

icSigGreenColorantTag

icCurve

icSigGreenColorantTag

icCurve

icSigGreenTRCTag

icCurve

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

icSigRedColorantTag

icCurve

icSigRedTRCTag

icCurve

Output Profile

The following attributes are required for output devices such as printers. See "Output Profile" in the ICC specification for more information.

Monochrome Output Profiles

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigCopyrightTag

icText

icSigGrayTRCTag

icCurve

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

RGB and CMYK Output Profiles

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigAtoB0Tag

icLut8 or icLut16

icSigAtoB1Tag

icLut8 or icLut16

icSigAtoB2Tag

icLut8 or icLut16

icSigBtoA0Tag

icLut8 or icLut16

icSigBtoA1Tag

icLut8 or icLut16

icSigBtoA2Tag

icLut8 or icLut16

icSigCopyrightTag

icText

icSigCrdInfoTag

icCrdInfo

icSigGamutTag

icLut8 or icLut16

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

Additional Profile Formats

In addition to the three basic classifications of device profiles (that is, input, display, and output), the ICC specification defines four other color processing profiles, namely

Device Link Profile

The device link profile is for a link or connection between devices. The following attributes are for device link profiles.

See "DeviceLink Profile" in the ICC specification for more information.

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigAToB0Tag

icLut8 or icLut16

icSigCopyrightTag

icText

icSigProfileDescriptionTag

icTextDescription

icSigProfileSequenceDescTag

icProfileSequenceDesc

Color Space Conversion Profile

The color space conversion profile is for color space transformation between non-device color spaces and the profile connection space (PCS). The following attributes are for color space conversion profiles. See "ColorSpaceConversion Profile" in the ICC specification for more information.

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigAToB0Tag

icLut8 or icLut16

icSigBToA0Tag

icLut8 or icLut16

icSigCopyrightTag

icText

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

Abstract Profile

The abstract profile is for color transformations between PCS and PCS. The following attributes are for abstract profiles. See "Abstract Profile" in the ICC specification for more information.

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigAToB0Tag

icLut8 or icLut16

icSigCopyrightTag

icText

icSigMediaWhitePointTag

icXYZArray

icSigProfileDescriptionTag

icTextDescription

List of All Attributes

This is an alphabetical list of all attributes by name that KCMS allows your application to specify in calls to KcsGetAttribute() and KcsSetAttribute(). The list includes attributes from the ICC profile specification as well as the attributes KCMS registered with the ICC for public use.

Attribute Name 

Attribute Type 

icSigHeaderTag

icHeader

icSigAToB0Tag

icLut8 or icLut16

icSigAToB1Tag

icLut8 or icLut16

icSigAToB2Tag

icLut8 or icLut16

icSigBlueColorantTag

icXYZArray

icSigBlueTRCTag

icCurve

icSigBToA0Tag

icLut8 or icLut16

icSigBToA1Tag

icLut8 or icLut16

icSigBToA2Tag

icLut8 or icLut16

icSigCalibrationDateTimeTag

icSigDateTimeType

icSigCharTargetTag

icText

icSigCopyrightTag

icText

icSigCrdInfoTag

icCrdInfo

icSigDeviceMfgDescTag

icTextDescription

icSigDeviceModelDescTag

icTextDescription

icSigGamutTag

icLut8 or icLut16

icSigGrayTRCTag

icCurve

icSigGreenColorantTag

icXYZArray

icSigGreenTRCTag

icCurve

icSigLuminanceTag

icXYZArray

icSigMeasurementTag

icMeasurement

icSigMediaBlackPointTag

icXYZArray

icSigMediaWhitePointTag

icXYZArray

icSigNamedColorTag

icNamedColor

icSigNamedColor2Tag

icNamedColor2

icSigPreview0Tag

icLut8 or icLut16

icSigPreview1Tag

icLut8 or icLut16

icSigPreview2Tag

icLut8 or icLut16

icSigProfileDescriptionTag

icTextDescription

icSigProfileSequenceDescTag

icProfileSequenceDesc

icSigPs2CRD0Tag

icData

icSigPs2CRD1Tag

icData

icSigPs2CRD2Tag

icData

icSigPs2CRD3Tag

icData

icSigPs2CSATag

icData

icSigPs2RenderingIntentTag

icData

icSigRedColorantTag

icXYZArray

icSigRedTRCTag

icSigCurve

icSigScreeningDescTag

icTextDescription

icSigScreeningTag

icScreening

icSigTechnologyTag

icSignature

icSigUcrBgTag

icUcrBg

icSigViewingCondDescTag

icTextDescription

icSigViewingConditionsTag

icViewingConditions


Note -

The icSigProfileSequence attribute is read only and therefore can't be modified by KcsSetAttribute(); it can be read with KcsGetAttribute(). The attribute is valid for device link (complete color) profiles only.