Tue Feb 23 18:14:36 PST 2010
First, a spot color is not a point which lives in some color space. It
is just a name, a word. You could possibly call it "named color" as
well (but I think W3C guys have another meaning for named colors, not
sure). So what it does is, it tells the printer that you want
"Ultramarine" or "Gold" or "Glossy Varnish". No one is really
universally required to know what you meant by "Ultramarine" so it is
understood that you and the printer know what you are talking about.
This is obviously not very practical so some companies decided to
create bunch of predefined colors, which you can buy everywhere, named
them and slapped their trademark on them. Like Pantone (which is mixed
from up to 15 colorants, btw.)
So unless your output device has such a color (in bucket nearby),
which in practice happens all time except for final printing, you have
to define a similar looking alternative substitute in some of the more
common color space. People (cough) disagree whether this alternative
space should be CMYK, LAB, RGB, ... but the point is, to make use of
spot color anywhere but the final output device you have to define
another, more traditional, color.
From, what I read, it is possible to define an ICC profile which just
says that, if you print this name at full intensity, it will look
somewhat like these LAB values (except for metallics, varnishes, uv
and glowin inks, etc.)
The problem is, that no one knows (and the few who do know, wont tell)
how those inks react when printed over each other and how they look at
partial intensities. So there is no profile which could be used for
so-called "separations", which is just another name for everything but
What can you do about this, is you somehow know (I do not) how to do
blending and tints in LAB. So you have LAB for 100% and from there you
calculate all the other values - that is, you do more or less precise
simulation or prediction what all the intensities look like and if got
such data you basically just got a new profile.
That said, I never saw this. What I saw was, you define the
alternative in CMYK values and think about what would an ideal printer
do. If you print an ink at half intensity, what value does it have?
Right full * 0.5. So if I want to print some color which looks like
CMYK(40, 30, 30, 100) at half intensity, I just print CMYK(20, 15, 15,
50). Now, what about blending. If you were in RGB the affect of
stacking two colors on top of each other is as if you were multiplying
them. 0.5 R * 0.5 R = 0.25 R. The result of "multiply" is always
darker color. For CMYK this is exavtly the same, but the colors get
inverted, i.e. 1 - BlackFinal = (1 - BlackA) * (1 - BlackB). For
example, if you print 80% black (i.e. grey) over 80% black, you get
96% black. Btw, combining to such colorants looks like this:
Back to your question, no a profile does not contain the
transformation at all. You define an alternative color which you are
able to expand further, or you supply the whole mapping yourself, this
is called tintTransform in PDF terms.
> I was under the impression that this is not part of a profile, though the
> profile will tell how to render something in CMYK or some other space that
> you can specify the equivalents of the spot color in.
> Then again, there appears to be an api by which a set of spot colors is
> defined as an all-new color_space_t, therefore it is true that the
> colorspace defines the translations. It's just that this color space is
> built by the application, not by reading some device specification?
I'm not sure I understood. There are two colors actually and the
transformations are just happening on the wrong one (the alternative
one). And to my understanding, the tint values in alternative space
could be precomputed by the application (i.e. the tintTransform could
be precomputed) but you should also define what CMYK you are talking
about (this is mostly a function of paper), be it SWOP, FOGRA, ...
I only hope I didn't introduce some major misunderstandings (read:
wrote utter crap).
More information about the cairo