[cairo] [RFC] Color space API (partial proposal)
Adrian Johnson
ajohnson at redneon.com
Thu Feb 25 02:51:08 PST 2010
ecir hana wrote:
> On Wed, Feb 24, 2010 at 12:52 PM, Adrian Johnson <ajohnson at redneon.com> wrote:
>> After looking at the ICC specification it should be possible for the PDF
>> backend to generate a tint transform from an ICC profile for a DeviceN color
>> space and an ICC profile for the alternate color space.
>
> Could you please describe this in more detail? How does the mechanism
> of "generate a tint" works? And how exactly should a user proceed?
On IRC Andrea pointed out that ICC profiles can contain named colors.
After reading about named colors in the ICC specification I don't think
we don't need any special API for DeviceN colors. Just use the named
ICC profile as you would for any other color space.
For example if you wanted to use a 6 component DeviceN color space you
would need a named ICC profile with 6 channels. The profile contains the
names of each of the 6 colorants and an ICC profile for translating the
device colors to the profile connection space.
Then you would use the profile to create the color space and create and
select a colors:
color_space = cairo_color_space_create_icc_from_file ("profile.icc");
color = cairo_color_create (color_space, 0.1, 0.2, 0.3, 0.2, 0.4, 0.9);
cairo_set_source_color (cr, color);
If the surface is PDF or PS Level 3 a DeviceN color space using the
colorant names will be used. The tint transform will be generated from
the ICC profile. The profile contains lookup tables and matrix
multiplications. PDF/PS Type 0 and Type 4 functions can be used to
generate a PDF/PS function that performs the same 6 input to 3 output
operations as the profile. The alternate color space could be either the
blending color space or LAB. LAB is probably the easiest to use when
generating tint transforms from ICC profiles as it doesn't require
generating the additional transform from the 3 channel CIE or LAB
profile connection space to the blending color space.
If the surface is not PDF or PS the ICC profile would be used in the
same way as any other ICC profile to transform the 6 component input to
the blending color space.
More information about the cairo
mailing list