[cairo] colour management

Aubanel MONNIER aubanel at gmail.com
Thu Mar 6 01:19:10 PST 2008

2008/3/5, Carl Worth <cworth at cworth.org>:
> On Wed, 5 Mar 2008 20:28:11 +0100, "Aubanel MONNIER" wrote:
> > Just to let you know you cairo developers that I setup an inkscape "Blue
> > print" about color management.
> > https://blueprints.launchpad.net/inkscape/+spec/icc-for-cairo
> > It tries to precise use cases and proposes a draft API for cairo. I hope
> it
> > helps to get this supported quicker.
> > It's a wiki, so feel free to discuss/edit.
> Hello there!
> Thanks so much for sharing this with us.
> I'd definitely love to see cairo pick up the necessary functionality
> so that it can generate PDF suitable for pre-press needs.
> You mentioned elsewhere in this thread that you would expect to see
> cairo grow a dependence on littleCMS. Personally, that sounds like
> exactly the right thing to me. Color management should be a problem
> that is handled well by a separate tool rather than something that
> cairo should try to grow and take over on its own.
> As for platforms that have "native" color management systems, can
> littleCMS sit on top of them already or be made to do so?
> So the first thing I'm surprised by is that the API proposal so far
> isn't using littleCMS types in the interfaces. Shouldn't things like a
> color profile just be created with existing littleCMS APIs and then
> passed to cairo?

It's just a matter of coding style, the lcms API is slightly different (
typically type names) and a bit cumbersome in some cases.
So basically the proposal is just a rewriting of the API, and implementation
forwards that to lcms (or an other cms).

Oh, and if I haven't made it perfectly clear already, I'm a total
> idiot when it comes to color. In the API proposal so far I see three
> separate notions being proposed to cairo:
>         color intent
>         color profile
>         color profile mapping
> Can you explain (or provide a reference for me) for what the three
> notions are?

the lcms API documentation linked in the wiki is clearer that anything I
could express (I'm myself no expert in cms, I just need it ;) ).
Yu can also find a lot of reference information on the International Color
Consortium web site: http://www.color.org/iccprofile.xalter
Here is my understanding on your questioons:
A color profile is a file describing a colorspace. You cans stack
colorspaces: the first and the last are the source and the destination

In particular, this function confuses me considerably:
> void
> cairo_surface_add_profile_mapping(cairo_surface_t *surf,
>                                   cairo_color_profile_t *in,
>                                   cairo_color_profile_t *out);

I realise this is wrong. I'll fix that in the wiki.

What in the world does that mean? What is the user asking cairo to do
> by calling that?
> And is "color intent" fundamentally separate from "color profile"?
> That is, is there a reason we couldn't simplify this API down to one
> new concept being added to cairo (a color profile) and then preferably
> just use a littleCMS datatype to express it?

Yes, it's separated. The profile is about the hardware and comes from one
file, the intent is about your purpose.

Again, thanks in advance for your patience with this color idiot.

Not sure I know much more thant you on that. But we will try to get this
right nonetheless !

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.cairographics.org/archives/cairo/attachments/20080306/0799bd1f/attachment.html 

More information about the cairo mailing list