[cairo] Subtractive API, part 1

Jon Cruz jon at joncruz.org
Thu Feb 4 22:36:05 PST 2010

On Feb 4, 2010, at 11:41 AM, ecir hana wrote:

> Just to check if I understood....
> There is no need of using ICC profile for spot color, as long as I
> could define LAB fallback, right?

For some workflows it *might* be ok... but for others it may not. And there is always the theoretical case where one measures the same LAB for Pantone 7489 and for Resene M73-080-131, yet runs their print job with those as separate spot inks.

> And if we assumed CIE LAB D50
> (because of ICC?), like:

I've not seen that D50 is to be assumed due to ICC. I have many ICC profiles with other white points.

> void cairo_set_source_spot(cairo_t *cr, const char *name, double l,
> double a, double b);
> would this be so far the best variant?

I don't think so, both from a color standpoint and from a software engineering standpoint.

> Then, I asked what to do if I don't know the LAB values for a certain
> spot color. In such case there could be a helper function which would
> return LAB for given profile and tints:

Tints only, or tints, tones and shades?

> lab_t get_lab(cairo_profile_t *profile, ...);
> where "..." are the colorant intensities / tints.
> For example:
> c = get_lab(PROFILE_SWOP, 0.1, 0.2, 0.3, 0.4);
> cairo_set_source_spot("MyColor", c.l, c.a., c.b);

Again, it seems that pushing everything to the different color model is the wrong thing for spot colors, and it is definitely the wrong thing for CMYK colors. The end-to-end print workflow needs to be kept in mind, and CMYK, hexachrome and spot colors all should be considered.

More information about the cairo mailing list