Rendering intent overrides
This page applies to Harlequin v14.0r0 and later; both Harlequin Core and Harlequin MultiRIP.
There are two forms of rendering intent override, both controlled by the /IntentMappings
key of setreproduction.
One form is a simple mapping of one of the four ICC rendering intents to a different intent; the other form is for object-based color management which allows for forcing specific rendering intents to be used for particular graphical object types, see Object-based color management for the definition of supported object types.
It is normal to avoid mixing absolute and relative intents on the same page. If they were mixed, the effect is often very noticeable as artifacts where relative and absolute “white” objects about each other. For example, an absolute background “white” might be darker than the media white; while a relative foreground white might well have the effect of a “brighter than white” object shining through the darker background “white” of the page.
The RIP allows for six rendering intents to be used as overrides. In addition to the four intents defined by [ICC] of RelativeColorimetric, Perceptual, Saturation,
and AbsoluteColorimetric,
the RIP allows the use of AbsolutePerceptual
and AbsoluteSaturation.
These two additional intents are absolute variants of the Perceptual
and Saturation
intents, and are analogous to the AbsoluteColorimetric
intent, which uses the same tables from the ICC profile as RelativeColorimetric.
The difference is that the white point is mapped using the media white point for relative intents, and the illuminant for the absolute intents.
Single rendering intent for whole page
The easiest method for setting a single rendering intent to be used for the whole page is to use the intent as the value of IntentMappings
(other necessary setreproduction
keys have been omitted for clarity):
<<
.....
/IntentMappings /Perceptual
>> setreproduction
All rendering intents set by the job are ignored.
Simple rendering intent overrides
Each of the four ICC rendering intents can be overridden with a different intent.
As an example, one way to prevent the mixing of relative and absolute intents on the same page is to override AbsoluteColorimetric
with RelativeColorimetric
(other necessary setreproduction
keys have been omitted for clarity):
<<
.....
/IntentMappings <<
/RelativeColorimetric /RelativeColorimetric
/Perceptual /Perceptual
/Saturation /Saturation
/AbsoluteColorimetric /RelativeColorimetric
>>
>> setreproduction
The relative intents set by the job will be honored, only /AbsoluteColorimetric
is overridden.
The simple intent overrides are overridden by object-based intent overrides when they are configured.
Object-based intent overrides
In addition to the simple intent overrides, rendering intents can be overridden using object-based methods, which are described in Object-based color management. The one difference between IntentMappings
and other usages of object-based color management is that there is not a Default
object type. The function of the Default
object is assumed by the simple intent overrides instead.
In this example objects painted in RGB, and CIE use Perceptual,
all others use RelativeColorimetric.
All rendering intents in the job are ignored (other necessary setreproduction
keys have been omitted for clarity):
<<
.....
/IntentMappings <<
/Picture <<
/Default /RelativeColorimetric
/RGB /Perceptual
/CIE /Perceptual
>>
/Text <<
/Default /RelativeColorimetric
/RGB /Perceptual
/CIE /Perceptual
>>
/Shading <<
/Default /RelativeColorimetric
/RGB /Perceptual
/CIE /Perceptual
>>
/Other <<
/Default /RelativeColorimetric
/RGB /Perceptual
/CIE /Perceptual
>>
>>
>> setreproduction
which illustrates the object type and color model hierarchy.
It is possible to use overrides for some objects and use the job settings for others. In this example the intent for RGB and CIE pictures is set to Perceptual.
Everything else uses the rendering intents in the job, subject to any use of AbsoluteColorimetric
being replaced (other necessary setreproduction
keys have been omitted for clarity):
<<
.....
/IntentMappings <<
/AbsoluteColorimetric /RelativeColorimetric
/Picture <<
/RGB /Perceptual
/CIE /Perceptual
>>
>>
>> setreproduction
Setting intents for named colors
A common use case for object-based intent overrides is to set the intent for named colors, while leaving other colors to use intents set by the job. This can be achieved with the following example which overrides named colors to the RelativeColorimetric
intent:
<<
/IntentMappings <<
/Picture <<
/NamedColor /RelativeColorimetric
>>
/Text <<
/NamedColor /RelativeColorimetric
>>
/Shading <<
/NamedColor /RelativeColorimetric
>>
/Other <<
/NamedColor /RelativeColorimetric
>>
>>
>> setreproduction
It is also possible to override the intent of any of the other color models (CMYK, RGB, Gray, CIE) by a simple modification of this example, but these are less commonly required.