KCMS Application Developer's Guide

Operation Hint Constants

Four operation hint constants describe the operations in Table 3-2 that can be performed on CCPs to transform color data (are also referred to as transforms). These are

Operations Performed

Ordinarily, an application transforms data in the forward direction, for example, from a scanner to a printer. Your application can specify KcsOpForward to achieve this.

Your application also may be able to convert the data in the reverse direction, for example, from a monitor to a scanner. To do this, it specifies KcsOpReverse. The reverse direction can be useful if, for instance, you are given colors in the monitor device color space and you want to transform the data back to the original scanner color space.

KcsOpSimulate lets your application simulate the effect of running data through a complete profile, but leaves it in the color space of the last device profile in the connected sequence of profiles. For instance, suppose you have a CCP consisting of scanner => printer => monitor profiles. Your application can use the CCP with the simulate operation on monitor data to produce monitor data that simulates the result of printing the data. For this to work, it must have connected a destination device to a source => destination combination. In this situation, the scanner is the source device, the printer is the first destination device, and the monitor is the connected destination device.


Note -

A typical color monitor can display colors that a printer cannot print. Similarly, many printers are capable of printing colors that cannot be displayed on a color monitor. KcsOpSimulate lets users preview what a graphic or image will look like (approximately) when printed.


KcsOpGamutTest lets your application determine if each source color is in the gamut of the destination device. The resulting image contains 0 for a pixel with in-gamut color and FF for a pixel with out-of-gamut color.

Constraints When Using Operation Hints

Because of constraints in the CMM or in the specific profile, not all of the above operations may be supported. Also, some CMMs may offer additional custom operations. Your application can use KcsGetAttribute() and supply the KcsAttrSupportedOperations attribute to determine which operations are supported by a given profile.

Specifying any single or combination of operation load hints to the KcsLoadProfile() function has no effect. KCMS equates this to KcsOpAll. When the application calls KcsConnectProfiles(), KCMS automatically loads all the transforms to support the full range of operations.

Your application cannot specify KcsOpAll as an argument to KcsEvaluate().