CinePaint vs. GIMP

There’s been some discussion recently comparing CinePaint and GIMP/GEGL. I tend to avoid that topic because it’s often old ground not worth repeating, but here are a few technical comments that could be helpful.

Well, since GIMP is still limited to only 8-bit images, I would claim that any improvements to GIMP over the years are essentially meaningless…unless one is interested in designing exclusively for the web.

That’s what I think, too. The point is that pro users demand higher image fidelity (16-bit and 32-bit channels) and such deep paint capability is hard to add to software later.

The problem is that GEGL was almost dead for a long time, and the code is still a good long way away from making it into GIMP.

GEGL design leadership and their code architecture have changed many times over the years. In 2000 it was DAGs, there was a never-completed compiler called Gil, it took a turn toward the Java Image Library API (JIL), and now it’s based on babl which is DAGs again. The GEGL image core is one thing, but how would any new deep paint GIMP core architecture graft into the legacy GIMP 8-bit GUI?

Building a flexible multiple-depth image core is hard and only the beginning. Even Photoshop still struggles with deep paint, that not all parts of that program can deal with their new deep paint core. Ordinary users won’t care whether the underlying engine is DAGs, tiles, channels, scanlines, or whatever. The important question is how will GEGL-GIMP integration overcome the same challenges that Film Gimp overcame in 1999 in adapting GIMP to handle deep paint?

From a C coding standpoint (what GIMP uses), everywhere GIMP code touches a channel will need a switch-case statement added and a different code path for each supported depth. That sounds just like Film Gimp, a design that GIMP has dismissed with many negative comments. Using C++ in Glasgow means we can use virtual classes instead of switch-case. Will GIMP use switch-case just like Film Gimp? When will GIMP start work on a deep paint GUI?

Where could I start in comparing Glasgow and GEGL code architectures?

CinePaint Glasgow img_img code:

img_img main.cpp



Being dependent on volunteer developers, Open Source projects tend to be less capable than commercial endeavors, but the fact that Open Source has produced what it has already, namely Cinepaint, LittleCMS, Image/GraphicsMagick, and Netpbm, et al, is, in my opinion, nothing short of remarkable.

We’re not less capable, just very short of resources. What open source does with less is amazing.


One Comment

Leave a Reply