GIMP 2.9.6 Released

After more than a year of hard work we are excited to release GIMP 2.9.6 featuring many improvements, some new features, translation updates for 23 languages, and 204 bug fixes.

As usual, for a complete list of changes please see NEWS. Here we’d like to focus on the most important changes.

Performance

GIMP now has support for experimental multi-threading in GEGL and will try to use as many cores as are available on your computer.

We know GIMP can explode when using more than one core, but we keep it that way so that we get as many bug reports as possible for this officially unstable development version. This is because we really, really want to ship GIMP 2.10 with usable parallel processing.

On the other hand, you can always set the amount of cores to 1 if you couldn’t be bothered to report bugs. For that, please tweak the amount of threads on the System Resources page of the Preferences dialog.

Setting amount of threads in GIMP 2.9.6

GUI, Usability, and Configurability

Benoit Touchette improved mask creation workflow for users who use a ton of masks in their projects. Now GIMP remembers the last type of mask initialization, and you can use key modifiers + mouse click on layer previews to create, apply, or remove masks. There’s a new button in the Layers dockable dialog for that as well.

Easily create new mask with GIMP 2.9.6

To make that feature possible, Michael Natterer introduced saving of last dialogs’ settings across sessions and made these defaults configurable via the new Interface / Dialog Defaults page in the Preferences dialog.

Configurable Dialog Defaults in GIMP 2.9.6

Additionally, the Preferences dialog got a vertical scrollbar where applicable to keep its height more sensible, and settings on individual pages of the dialog can be reset separately now.

The Quit dialog got a few updates: automatically exiting when all the images in the list have been saved, and a Save As button for every opened image (clicking an image in the list will raise it easy checks).

Configurable Fill With option in GIMP 2.9.6

Yet another new feature is an option (on the screenshot above) to choose fill color or pattern for empty spaces after resizing the canvas.

Better Hi-DPI Support

While most changes for better Hi-DPI displays support are planned for v3.0, when GIMP is expected to be based on either GTK+3 or GTK+4, we were able to remove at least some of the friction by introducing icon sizes at different resolutions and a switch for icon sizes on the Icon Theme page of the Preferences dialog.

Configurable icon size in GIMP 2.9.6

On-canvas Interaction Changes

Michael Natterer did a huge under-the-hood work that is likely to affect user interaction with GIMP bigly. Simply put, he moved a lot of on-canvas code from tools like Rectangle Select, Measure and Path into reusable code.

The effect of that is multifold:

  • New tools can reuse on-canvas elements of other tools (adding shape drawing tools should be easier now, although we are not planning that for 2.10, unless someone sends a clean patch).
  • GEGL-based filters can be interacted with directly on the canvas (Spiral and Supernova so far as test case).

So far one still needs to write C code to make a GEGL-based filter use on-canvas interaction. We expect to spend some time figuring out a way to simplify this, possibly using the GUM language (see below).

Layers, Linear and Perceptual Workflows

Since we want to make workflows in linear color spaces more prominent in GIMP, it was time to update the blend modes code. You can now switch between two sets of layer modes: legacy (perceptual) and default (linear). The user interface for switching was a quick design, we’d like to come up with something better, so we are interested in your input.

Moreover, we made both compositing of layers and blending color space configurable, should you have the need to use that for advanced image manipulation.

We also added a new Colors -> Linear Invert command to provide radiometrically correct color inversion. And the histogram dialog now features a toggle between gamma and linear modes—again, it’s a design we’d like to improve.

Thanks to Øyvind Kolås and his Patreon supporters, GIMP now also has a simple ‘blendfun’ framework that greatly simplifies implementing new color modes. Ell made use of that by adding Linear Burn, Vivid Light, Linear Light, Pin Light, Hard Mix, Exclusion, Merge, Split, and Luminance (RGB) blending modes (most of them now also supported in the PSD plug-in).

Another prominent change is the introduction of the Pass Through mode for layer groups. When this mode is used instead of any other one, GIMP mixes layers inside that group directly to the layers below, skipping creation of the group projection. The feature was implemented by Ell. The screenshot below features a user-submitted PSD file that has TEXTURES layer group in the Pass Through mode, as opened in GIMP 2.9.4 (left) and GIMP 2.9.6 (right).

Pass Through mode vs no Pass Through mode

Newly added color tags simplify managing large projects with a lot of layers and layer groups. The screenshot below is a real-life PSD file opened in GIMP 2.9.6.

New User Interface Themes

To make more use of that feature, we need someone to step up and implement multiple layers selection. For an initial research, see this wiki page.

For full access to all the new features, we updated the Layer Attributes dialog to provide the single UI for setting layer’s name, blending mode, opacity, and offset, toggling visibility, link status, various locks, color tags.

Updated Layer Attributes dialog

CIE LCH and CIE LAB

Under the influence of Elle Stone (and with her code contributions), CIE LCH and CIE LAB color spaces are finding more use in GIMP now.

Color dialogs now have an LCH color selector that, in due time, will most likely replace outdated HSV selector for reasons outlined by Elle in this article. The LCH selector also supports gamut checking.

A new Hue-Chroma filter in the Colors menu works much like Hue-Saturation, but operates in CIE LCH color space. Moreover, the Fuzzy Select and the Bucket Fill tool now can select colors by CIE L, C, and H.

Finally, both the Color Picker and the Sample Points dialog now display pixel values in CIE LAB and CIE LCH.

Sample points in LCH and LAB, GIMP 2.9.6

Tools

New Handle Transform tool contributed by Johannes Matschke in 2015 has been finally cleaned up by Michael Natterer and available by default. It’s a little tricky to get used to, but we hear reports that once you get the hang of it, you love it.

Thanks to Ell, the Warp Transform tool is now a lot faster, partially thanks to a switch that toggles high-quality preview that isn’t always necessary.

All transformation tools don’t display grid by default anymore, and during an interactive transformation the original layer gets hidden now. The latter greatly simplifies transforming upper layer in relation to a lower layer. Before that, the original layer used to block the view.

Free Select tool now waits for Enter being pressed to confirm selection, which enables you to tweak positions of polygonal selection.

Painting

An important new feature that is somewhat easy to overlook is being able to paint on transparent layers with modes other than normal.

Thanks to shark0r, the Smudge tool now has a Flow control that allows mixing in both constant and gradient color while smudging. There’s another new option to never decrease alpha of existing pixels while smudging in the tools options now as well. For more on this, please read this forum thread.

Canvas rotation has been improved: it got snappier in certain cases, and rulers, scrollbars, as well as the Navigation dialog follow the rotation now.

Alexia introduced some improvements to the brush engine. For bitmap brushes, GIMP now caches hardness and disables dynamic change of hardness to improve painting performance. Bitmap brushes also don’t get clipped anymore, when hardness is less than 100. Plus there’s a specialized convolution algorithm for the hardness blur to make it faster now.

Processing Raw Images

Since 2.9.4, GIMP is capable of opening raw (digital camera) images via darktable, and the plan was to open it up to more plug-in developers, because nothing sparks a thoughtful, civil conversation like a raw processor of choice.

This is now possible: 2.9.6 ships with a RawTherapee plug-in (v5.2 or newer should be installed) and a new file-raw-placeholder plug-in that registers itself for loading all raw formats, but does nothing except returning an error message pointing to darktable and RawTherapee, if neither is installed.

Moreover, you can now choose preferred raw plug-in, when multiple options are available on your computer. For this, open the Preferences dialog and go to the Image Import page, then click on the plug-in you prefer and click OK to confirm your choice. You will need to restart GIMP.

Better PSD Support

The PSD plug-in now supports a wider range of blending modes for layers, at both importing and exporting: Linear Burn, Linear Light, Vivid Light, Pin Light, and Hard Mix blending modes. It also finally supports exporting layer groups and reads/writes the Pass Through mode in those. Additionally, GIMP now imports and exports color tags from/to PSD files.

WebP support

We already shipped GIMP 2.9.2 with initial support for opening and exporting WebP files, however the plug-in was missing a number of essential features. Last year, we replaced it with a pre-existing plug-in initially written by Nathan Osman back in 2011 and maintained through the years. We now ship it by default as part of GIMP.

WebP exporting in GIMP 2.9.6

The new plug-in received additional contributions from Benoit Touchette and Pascal Massimino and supports both ICC profiles, metadata loading/exporting, and animation.

Metadata Viewing and Editing

Thanks to Benoit Touchette, GIMP now ships a new metadata viewer that uses Exiv2 to display Exif, XMP, IPTC, and DICOM metadata (the latter is displayed on the XMP tab).

Metadata viewer in GIMP 2.9.6

Moreover, Benoit implemented a much anticipated metadata editor that supports adding/editing writing XMP, IPTC, DICOM, and GPS/Exif metadata, as well as loading/exporting metadata from/to XMP files.

Metadata editor in GIMP 2.9.6

Filters

Thanks to contributions from Thomas Manni and Ell, GIMP now has 9 more GEGL-based filters, including much anticipated Wavelet Decompose, as well as an Extract Component plug-in that simplifies fetching e.g. CMYK’s K channel or LAB’s L* channel from an image.

Another new feature that we expect to develop further is GUM—a simple metadata language that helps automatically building more sensible UI for GEGL filters. Here’s a quick video:

Resources and Presets

To make GIMP more useful by default, we now ship it with some basic presets for the Crop tool: 2×3, 3×4, 16:10, 16:9, and Square.

Documents templates have been updated and now feature popular, contemporary presets for both print and digital media.

What’s Next

We still have a bunch of bugs to fix before we can release 2.10 and we appreciate all the huge and tiny useful patches contributors send us to that effect.

GIMP 2.9.8 is expected to ship with more bug fixes and an updated Blend (Gradient Fill) tool that works completely on canvas, including adding and removing color stops and assigning colors.