Re: [Gimp-developer] GIMP should fork babl and GEGL

On 5 November 2014 13:50, Elle Stone <ellestone ninedegreesbelow com> wrote:

On 11/04/2014 02:31 PM, Jon Nordby wrote:

(apologies for top-posting)

Hi Elle,

The BABL roadmap[1], which was written in response to comments raised by
you (and others),
details a mechanism for working with multiple RGB color spaces. It will
be possible to create a babl format specifier which means
"whatever-the-artist-chose-for-this-image RGB".
All GEGL operations which currently wrongly use hardcoded bablRGB ("RGBA
float" and similar) will be changed to use this new specifier.
Duplicate/side-by-side implementations of operations is not necessary
nor planned.

 With this BABL work in place, GIMP/GEGL can then use LCMS to read in the
ICC color profiles from inputs and set up the parameters for this color

I do not understand how this solution (once implemented) will not work
for your usecase. If you think it will not, please explain why.

I have no desired for a "sRGB only" workflow, and it does not help the
discussion to jump such a conclusion. Please do not assume that the
different needs are in conflict/adverserial to each other.


What you just described IS side-by-side implementations of operations. In
an ICC profile color-managed application, sRGB is just another RGB working
space. You don't need to special-case sRGB.

No it is not. There will be one implementation of say "multiply". It will
be able to work on any RGB color space. Including sRGB, but without need
for special casing.

Right now all GEGL operations specify "bablRGB": RGBA, R'G'B'A, etc.

In Pippin's originally planned "unbounded sRGB architecture", "bablRGB"
meant "convert the image to unbounded sRGB before perfoming *any* editing
operation". Now the plan is that bablRGB will mean "convert to unbounded
sRGB for *some* operations".

The meaning of the "bablRGB" specifiers has not, and will not change. The
vast majority of operations will just stop using them (because they have
hardcoded sRGB parameters), and instead use the new specifiers, as per the

Jon Nordby -

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]