November 1, 2006

Raster image editors: A comparative look at the GIMP and Krita

Author: Nathan Willis

With the release of Krita 1.6, it seems like a good time to compare the two big raster image editors for Linux. Coming as they do from the divergent GTK+ and KDE programming camps, it can be hard to assess the differences between the GIMP and Krita without being swayed by politics and emotion. Let's take a cold, hard look at the two, and compare the features side by side.

Both apps are strongly influenced by the interface and feature set of the 800-pound gorilla of proprietary raster graphics tools, Adobe Photoshop. The drawing, editing, and selection tools, the layers metaphor, the floating palettes, even the menu structure and terminology of the two free editors closely follow Adobe's lead. Consequently, the tools and operations that they have in common far outnumber the differences.

But there are some differences. Krita sports some features that the GIMP does not, and the GIMP sports some that Krita does not.

In Krita's corner

The most oft-cited check mark in Krita's column is that it supports more bit-depths (8, some 16, and some 32) and color modes (grayscale, RGB, CMYK, L*a*b, LSB, and YCbCr) than the GIMP (which supports grayscale, RGB, and indexed). The current stable version of Krita (1.6) also supports color management, which the current stable version of the GIMP (2.2) does not.

Krita also supports two kinds of layers not found in the GIMP: watercolor paint simulation and basic adjustment layers -- essentially "filter layers" that contain no image data but merely apply a color or tone adjustment to all visible layers stacked beneath.

On the tool front, Krita has geometric drawing tools with which you can paint rectangles, ellipses, stars, line segments, Bezier curves, and irregular polygons and polylines. Note that these are not resolution-independent vector shapes such as you might find in Inkscape or Illustrator, but painted pixels.

Krita also lets you select portions of an image with Bezier curves, irregular polygons, or using the paintbrush, and it recently added a "perspective grid" overlaying construction lines to assist in painting with one or more vanishing points.

Krita's rubber stamp or "clone" tool gained two new options in version 1.6: healing, which stamps with locally averaged color rather than exact pixels, and perspective correcting, which shifts and scales the stamped pixels to preserve lines of perspective.

The GIMP's edge

On the other hand, the GIMP scores for implementing paths (editable, resolution-independent vectors), video and animation tools, and allowing transformations (such as shear and perspective) on the active selection, not just on the layer or image as a whole.

The GIMP has several "darkroom" tools that Krita does not, including dodge, burn, sharpen, blur, and smudge tools. It also has an ink tool, a measure tool, and drag-and-drop horizontal and vertical guides.

The GIMP implements several more adjustment tools than Krita. Krita provides brightness/contrast control, curves, and a desaturate operation. The GIMP provides those first two and adds a complete hue/saturation control, color balance, levels, threshold, colorize, and posterize.

Krita can display a histogram of an image, while the GIMP can show you histogram, colormap, or colorcube data. Krita supports 14 layer compositing modes, while the GIMP supports 21. The GIMP provides far more filters -- I count 113 shipping with Ubuntu, as compared to 39 for Krita -- although what constitutes a filter is not standardized between the two applications.

Of course, some of the GIMP's filters are actually scripted macros rather than built-in operations. Due to the GIMP's longer history, more people have written filters and extensions for it than for Krita. The GIMP's longevity is also responsible for the greater range of options for each tool -- in general, the GIMP's tools have more customizable and tweakable settings than Krita's.

There are other differences, too, although once you depart from those listed here you are left with individual operations and it becomes tricky to assess their relative importance.

Shades of gray

Of course, the same could also be said for many of the features listed above. How do you assess the relative importance of the dodge/burn tool and the geometric drawing tools? Are the GIMP's guides more important than Krita's perspective grid? Is it better to have 16 bits per channel, or to have color balance and levels controls?

In all three situations, neither feature is inherently more useful; it depends wholly on the user and the task at hand. Moreover, where each program lacks a tool, there is often a way to accomplish the same task with a different tool.

Take Bezier curves, for example. Krita allows you to paint them directly into an image with a dedicated Bezier tool. The GIMP has no such tool, but its paths implementation can do the same thing -- you draw your Bezier curve with the path tool, then click the "stroke path" button.

Adding another wrinkle to the difficult task of a direct comparison are two readily available incarnations of the GIMP with additional features. CinePaint forked from the GIMP several stable releases ago, and supports high bit-depth images and color management. If you need to retouch high dynamic range photos, neither Krita 1.6 nor the GIMP 2.2 has the magic combo of 16-bit-per-channel color and dodge/burn tools, but CinePaint does.

The unstable branch of the GIMP is the 2.3 series, and it adds quite a few features missing in the 2.2 series. Obviously the unstable branch of Krita should contain new code as well, but the GIMP team makes public, fully packaged releases of GIMP 2.3.x available on gimp.org. You can compile the source yourself, or look for a contributed binary for your distribution. You distro may even provide it for you.

Krita does not make development releases available, at least presently. Maintainer Boudewijn Rempt says he has thought about it for the future, but the next revision of Krita (the 2.0 series) constitutes substantial changes to the core, and the code hasn't reached maturity yet.

So which should I use?

You are perhaps expecting me to give some kind of quantifiable scores and declare one program or the other the winner. Well, no dice -- "GIMP versus Krita" is strictly an imaginary contest.

Don't think that you have to choose one application or another. You don't. Both are quality and both are free. Both have strengths and weaknesses in differing and overlapping areas. After all, they're all free software, and that means that (a) you don't have to budget twice the money to acquire them, and (b) you have the freedom to pick the right tool for the right job.

If you do a lot of graphics work, you need to have both Krita and the GIMP; neither is the be-all and end-all of raster graphics editors.

Click Here!