one of the things we dicussed shortly at GIMPCon was how to add basic
color management to GIMP. We know that it will be a major effort to
integrate this and it will need GEGL to do it properly. However there
are a few things in this area that we should be able to do for GIMP
2.2. That should help users that are waiting for these features and it
should help us to get some experise in this area. So here's the plan...

We agreed that lcms (http://www.littlecms.com/) seems to be a good
choice for our needs. We already use it for the proof display filter
so it's basically already a dependency and the plan I am going to
outline is not going to make it a hard dependency. So if anyone wants
GIMP w/o color management and w/o a dependency on lcms that will
continue to be possible.

There are a couple of things we want to to achieve:

 (1) color-correct the image display according to a monitor profile
 (2) make it easier to do soft-proofs
 (3) use color profiles embedded into files we open
 (4) embed color profiles into files we save
 (5) do color separation based on color profiles

How much of this will make it into 2.2 depends on how much work is put
into this which in turn means that it depends on your contributions.
Some parts can be achieved by means of modules and plug-ins and can
thus be developed further after the GIMP 2.2 release. We should now
focus on the changes to the core and to the libgimp and module APIs
that we need to get this done.

I will try to propose some ideas that aim to implement the points
mentioned above:

(1) color-correct the image display according to a monitor profile

This can be done rather easily using the existing display filters
architecture. What stands in the way here is that display filters are
not very well integrated yet. As a user you should not have to
configure the monitor profile for every image display you open. So
what needs to be done here is to improve integration of color display
filters. Mitch and me already started to make some changes that are
supposed to lead to a set of global display filters that are
configured in the user's filterrc and that are loaded by default. The
user can then configure a monitor display filter that color-corrects
all image displays for her monitor. We will have to extend this to
previews and color selectors in order to provide a consistently
color-corrected user interface.

(2) make it easier to do soft-proofs

We have a display filter already that does soft proofs. At the moment
it is however rather akward to use. I see two ways to improve this.
One is to make it remember it's configuration and we are already
working on providing that functionality for all display filters. The
other improvement I see is to adapt to standard locations for color
profiles. The file selector for color profiles should contain
bookmarks for the default locations for color profiles as they have
been suggested on the OpenICC mailing-list on freedesktop.org
($prefix/share/color/icc and ~/.color/icc). Perhaps we even want to
add a special widget to select color profiles?

(3) use color profiles embedded into files we open

When an image file we open has an embedded color profile we should ask
the user if the image should be converted to linear sRGB (which is
what GIMP assumes internally). This will need changes to a couple of
plug-ins and these changes need to go into #ifdef's since we don't
want to depend on lcms. Or should we just add this dependency?

(4) embed color profiles into files we save

Not sure how much sense this makes. If we had a widget to select color
profiles, then it would be easy to add ways to attach color profiles
to images. I am just not sure if that makes sense for us since we
can't (yet) work in the color spaces defined by these profiles (expect
for the linear sRGB profile).

(5) do color separation based on color profiles

There are two plug-ins that can do color separation based on color
profiles. One is the separate plug-in:


The other is the TIFF plug-in by Kai-Uwe Behrmann. I haven't looked at
it recently and don't know what state it is in. But AFAIK it also does
color separation to CMYK. I have some sentiments against including a
plug-in with lots of #ifdef'ed code that is supposed to work for
various flavours of GIMP as well as CinePaint but it would certainly
be good to evaluate if and how this plug-in could replace the current
tiff plug-in.

Since I am not a color management expert myself, there might be
fundamental design flaws in the stuff I outlined above. Please let me
know about them and please contribute your ideas.

Gimp-developer mailing list

Reply via email to