GIMP-CCE won't be updated past the release of default GIMP 2.10

(Elle Stone) #1

For a long time now I’ve been patching the default GIMP code to better suit my own editing needs, and since 2015 I’ve provided the patched code for other people to use. My motivations for patching GIMP to make “GIMP-CCE” are as follows:

  • To have code that disabled the code in default GIMP that switches between linearized RGB and RGB encoded using the sRGB TRC. This has allowed me to more easily test default GIMP code to make sure that the “linearizing/unlinearizing” code was working as expected.

  • To have code that allows “right now” to edit in any linear gamma well-behaved RGB working space. Default GIMP still has hard-coded sRGB parameters, but a lot of progress has been made towards supporting “any RGB”, in large part thanks to Pippin’s recent “anyrgb” babl code.

  • To have code that provided functionality that isn’t, or rather wasn’t yet in default GIMP, such as LCH color pickers and the LCH Hue-Chroma tool and Luminance blend mode. For some time now default GIMP has had as much LCH/Luminance blend support as my patched GIMP.

My original goal with “CCE” was to keep it up-to-date with default GIMP through the initial release of GIMP 2.10. But this might not happen because of some fairly drastic recent code changes in default babl and default GIMP. The recent changes in the babl code have provided the groundwork for default GIMP to eventually support “anyrgb” and “anytrc”. But these same changes also have made “default babl” completely incompatible with my “CCE” version of babl. Keeping GEGL-CCE up with default GEGL is still fairly easy. But keeping GIMP-CCE up to date with default GIMP is increasingly time-consuming.

Currently CCE is up-to-date with default GIMP through November 8, 2017, which is GIMP-2.9.7. I’ll try to make one last update to CCE, once GIMP 2.10 has officially been released, but I make no guarantees. Personally these days I’m using default GIMP as much or more than my patched GIMP, partly to help with catching remaining bugs and partly because I really like not having to make an ICC profile conversion just to switch between linear and perceptual RGB.

I put some “warnings” in my “how to build CCE” tutorial (, that I’ll repeat here:

First, these two articles are very out of date:

Second, “CCE” XCF files are not completely compatible with default GIMP XCF files: Default GIMP doesn’t properly interpret “CCE” layer blend modes and vice versa. Also, if you save a default GIMP XCF file that’s at linear precision, in CCE you need to assign a linear gamma version of the sRGB profile. Switching back and forth between CCE and default GIMP can be done, but it’s tedious.

My apologies if anyone got the impression that “CCE” was a long-term project. It never was intended as such. Rather it was only intended as a “stop gap” project until “any rgb/ any trc” was possible using default GIMP.

If anyone has the urge to fork CCE, of course feel free. But personally I feel that coding efforts to modify GIMP-CCE code, would be far better spent helping to improve default GIMP code. My own coding abilities are not great, but I’ve done my very best to make sure that functionality such as the LCH code in CCE did make it over to default GIMP, and each time this has happened, the rather amazing GIMP devs have greatly improved on my own poor coding efforts.


Thanks for the GIMP-CCE, color profiles and tutorials. I have learned much from your efforts and consideration!

(Elle Stone) #3

Thanks! @afre - you are very kind!

At least for me, writing tutorials is such a good way to learn stuff, makes me think everything through very carefully. And your questions and input have been extremely helpful in pointing out where stuff needs to be more carefully written and presented.

You might not have noticed, but thanks in large part to your input regarding pages that didn’t display correctly on small screens, a couple months ago I recoded my entire website, and found (and fixed) 8 additional pages that didn’t fit on a small screen.

(Gabriele ) #4

Hi Elle,
English is not my default language therefore I’m in difficult to say what I think but I want to thanks you and anyone as you who spend their spare time into coding FOSS.
I think Photography was one of the last thing in which FOSS it be great and all you are doing does become this true.

I don’t know if I’m clear :hushed::slightly_smiling_face:

Many thanks for all.



You are, and your kind words are much appreciated. :slight_smile:

(Gabriele ) #6

Hi I’m preparing myself for the new release 2.10 I’m trying to install gimp from git but I have some troubles with glib.
My distro Slackware 14.02 has glib 2.46 and gimp needs 2.54 but I don’t know if it is sane to install it to /usr/local or blacklist default glib and install the new into /usr/lib64.

In effect I just installed glib into Usr/lib but I have some warnings about libraries symbols missing…:roll_eyes:

any hints?


(Carmelo Dr Raw) #7

@dafrasaga Do you really need to compile GIMP yourself, or do you just need an up-to-date version? In the latter case, the AppImage builds might be an interesting alternative…

(Gabriele ) #8

Hi, for learning something I like to compile myself, but I could give a new try to the appimage.
Time ago I tried and it worked very slowly compared to normal compile with babl+gegl+gimp


(Elle Stone) #9

Hi @dafrasaga - I think I might have passed on this advice before, so if I did please excuse the repeat! I really do advise that you install babl/GEGL/GIMP from git in a prefix as per this article:

If you install everything you need for GIMP in a prefix, then of course you’d just install glib in the prefix, and this would allow you to also have glib installed from Slackware. The two versions of glib won’t interfere with each other.

Some software is just fine to install in /usr/local. For example I installed libvips in /usr/local so I could also install PhotoFlow. But glib is a fairly low-level library used by a lot of different other software on your computer. Eventually you are very likely to run into incompatibility issues if your system expects one version of glib, and you’ve installed another version in /usr/local.

(Gabriele ) #10

Hi Elle,
In the meantime I download the appimage and I wanted to try the artefacts you talk about radiometrically correct editing…

I created a new images with default rgb, a cyan background and I painted with Red. The artefacts were there. Then I switched the perceptual to linear precision (the warning in the window head is changed and it said linear built in profile )but nothing is occurred. The artefacts have remained.
They are gone away only I use one of your linear Icc profiles.
After, I noticed near the tool mode there was a possibility to change another group mode: from legacy to default. With default the artefacts there aren’t regardless you select linear or perceptual precision or one perceptual or linear profile.

Would the precision mode have to change the trc in the work profile?
I’am a little confused…

(Elle Stone) #11

Hi Gabriele,

Hmm, first question is which appimage? There is the CCE appimage, and then there is the default GIMP appimage, and the version matters also, at least for default GIMP.

In default GIMP version 2.9.8, the image precision does not any longer affect painting. (in default GIMP 2.9.5, the image precision mattered a lot, but not in 2.9.8).

In default GIMP 2.9.8, to avoid gamma artifacts, let’s assume you make a new image that’s in the built-in GIMP sRGB profile, doesn’t matter whether you are working at linear precision or perceptual precision.

Fill the Background Layer with Cyan. Leave the Layer blend mode at Normal. Notice next to the place where you can choose the Layer blend mode, there is a small box that allows you to choose between Legacy and Default. Make sure it’s set to Default. This doesn’t affect painting on a single layer, but it does affect how layers blend together.

Make the foreground color be Red and pick a round brush to paint with.

Notice that in the Paintbrush Tool Options there is a little drop-down box that allows you to choose the blend mode. Set it to Normal. Next to the drop-down box there is a smaller drop-down box that allows you to choose between “Default” and “Legacy”. Make sure it’s set to “Default”. If it’s set to “Legacy”, there will be artifacts.

If you are using “CCE”, then everything is very different from what’s described above. In CCE there aren’t any options to choose between “Default” and “Legacy”, neither in the Layer blend mode dialog or the Paintbrush Tool Options. And the only thing that affects gamma artifacts is whether you are painting in a linear gamma RGB working space such as sRGB-elle-V4-g10.icc, or a perceptually uniform RGB working space such as sRGB-elle-V4-srgbtrc.icc.