[LWN subscriber-only content]
Welcome to LWN.net
The following subscription-only content has been made available to you
by an LWN subscriber. Thousands of subscribers depend on LWN for the
best news from the Linux and free software communities. If you enjoy this
article, please consider subscribing to LWN. Thank you
for visiting LWN.net!
The long-awaited release of the GNU Image
Manipulation Program (GIMP) 3.0 is on the way, marking the first
major update since version 2.10 was
released in April 2018. It now features a GTK 3 user interface and GIMP 3.0
introduces significant changes to the core platform and plugins. This
release also brings performance and usability improvements, as well as more
compatibility with Wayland and complex input sources.
Modernized interface
GIMP 3.0 is the first release to
use GTK 3, a more modern foundation than the GTK 2 base of
prior releases. GTK 4 has
been available for a few years now, and is on the project’s
radar, but the plan
was always to finish the GTK 3 work first.
Moving to GTK 3 brings initial Wayland compatibility
and HiDPI scaling. In addition, this allows for GIMP users to take
advantage of multi-touch input, bringing pinch-to-zoom gestures to the
program, and offering a better experience when working with complex
peripherals, such as advanced drawing tablets. These features were not
previously possible due to the limitations of GTK 2.
A secondary result of the transition to GTK 3 is a refreshed user
interface (UI), now with support for CSS themes included. In this release,
four themes are available by default, including light, dark, and gray
themes, along with a high-contrast theme for users with visual
impairments. Additionally, this release has transitioned to using GTK’s
header bar component, typically used to combine an application’s
toolbar and title bar into one unit. To maintain familiarity with previous
releases, however, GIMP 3.0 still supports the traditional menu interface.
When GIMP 3.0 is launched, users will be greeted with a
new welcome screen, seen on the right. This dialog presents various useful
links for the GIMP project, such as tutorials, documentation, and donation
options. It also provides users with quick functions for setting up GIMP as
needed before starting their work. This includes the option to choose GTK
and icon themes, and for placing the menu in the title bar, saving vertical
space. In the “Create” tab of the dialog, users can create a new image,
select from their recent work, or open an existing image from the
filesystem. The welcome screen can be disabled if desired.
Better workflow, performance, and color management
A major focus of this release is greater integration with the Generic Graphics Library (GEGL), first
introduced in 2000 for the purpose of improving GIMP’s image-processing
capabilities through a scene-graph-based
architecture. As part of this effort, there have been numerous
optimizations to GIMP’s core and to its standard plugins. In tandem with
memory management and multi-threading improvements, these changes should
bring significant speed boosts when applying filters and effects, even on
larger images.
GEGL allows image-processing operations to be chained together in such a
way that the original image data is preserved, along with a record of every
edit. This is referred to as non-destructive editing, and GIMP 3.0 is
the first stable release of the project to make this workflow available,
though there is still more work to be done. Users can apply filters and effects to any layer without altering the original image. As a result, effect parameters can be changed even after they’ve been applied. This change removes the need to perform an undo any time a filter or effect does not have the desired result. Filters, and any plugins that use GEGL operations, now offer real-time previews.
GIMP 3.0 continues efforts to improve color management under the
initiative referred to as “space invasion“, and
delivers significant color-correctness
results. This will improve the consistency of color reproduction across different devices and workflows. The foundation of these improvements is the babl library, responsible for handling pixel-format conversions and color-space management. Color profiles are now automatically managed when opening files with an included color profile. In the 2.10.x series, manual intervention was required when loading these files.
GIMP 3.0 supports palettes outside of the “Standard Red Green Blue”
(sRGB) range, such as
“Cyan Magenta Yellow Key” (CMYK) and (CIELAB). This
expanded color support, especially for CMYK, is essential to those who work
with print and desktop publishing. However, GIMP continues to use sRGB,
grayscale, and indexed colors for storing color information internally for
now. Conversion to other color spaces is done on output, where necessary.
Version 3.0 delivers CMYK output for some file formats, specifically
JPEG, TIFF, and Photoshop (PSD). When working with these color formats, users often
need to use soft-proofing, a digital preview of how colors will look when
printed, helping ensure color accuracy in the final output. GIMP’s 3.0
soft-proofing workflow has been improved, and it saves this information in
its XCF format, preserving settings between sessions.
Layers and file-format improvements
The layer workflow has been upgraded in GIMP 3.0, with new features
that bring greater parity with other advanced photo editors such as Adobe
Photoshop and Affinity Photo. Layer operations can now be applied in bulk,
and multiple layers can be selected and grouped. Layers can even be moved,
reordered, duplicated, merged, and deleted en masse, whether or not they
are contiguous within the layer dialog. Each layer now displays a distinct
“Fx” icon to represent when filters and effects are in use. Filters and
effects can be managed from a popover, which is opened up by clicking on
this icon.
The developers intend to further improve the layer-effects workflow with tighter integration of these features and a better UI. In future releases, GIMP’s non-destructive functionality will be extended to layer masks, and layer channels as well. For users who wish to use a destructive workflow (where filters are applied to the original image data), there is a “Merge Filter” option available in the filter dialog.
Another new feature in GIMP 3.0’s layer workflow is auto-expanding
layers. Layers may need to extend outside of the canvas in order to
preserve parts of an image that need to later be moved or transformed, or
within animations, where part of the animation needs to be made invisible
temporarily. An auto-expanding layer will extend beyond its borders when
painting outside of the canvas, though the canvas itself will retain its
size. To enable this feature, users will need to check the “Expand Layers”
option on any brush tool. Layer masks can be set to expand with the layer;
the “Align And Distribute” tool has been completely reworked to recognize the layer’s contents and not just its boundaries.
Improvements to guides, snapping, and the text editor also help make
GIMP’s layer workflows more appealing in a way that will be familiar to
users of other tools in this space.
This update brings improved support for many
image formats. PSD images now preserve their layer order on import, and
Paintshop Pro images (PSP) preserve several features, including International Color
Consortium (ICC) profiles, grids,
and guides. In a crucial bug fix for working with GIFs, GIMP 3.0
detects whether these files contain animations, and correctly saves
animated GIFs when overwriting existing files.
New image formats have been added, with import and export supported for each format. The highly versatile SwatchBooker palette format, SBZ, is now supported, bringing parity with Scribus and Krita. Unlike most other palette formats, SBZ files can save complex details such as layouts, textures, gradients, named colors, color-space information, and even multiple palettes in a single file. For processing raw images (formats that preserve unprocessed image data), GIMP has long relied on external applications such as darktable and RawTherapee. However, recent changes in darktable’s API broke this integration, causing GIMP to be unable to detect and recognize if it was installed. To rectify this issue, dedicated darktable integration is now available thanks to a collaborative effort between the two projects.
This update introduces a new extension system and file format, GEX,
allowing for easier distribution of plugins, themes, brushes, and other
means of extending and supplementing the core application. This extension
system even allows for multiple features, such as plugins, brushes, and
themes, to be packaged and managed simultaneously. For example, a project
such as PhotoGIMP could
use this system to completely transform GIMP’s standard functionality with
a single package.
In addition, an extension manager has been developed and is available in this update. It’s not immediately exposed to users, however, because the backend infrastructure for distributing extensions is still under development. To access it, users will need to use GIMP’s command search, which can be found in the menu under “Help>Search and Run a Command”. Once extension support has matured, it will allow managing other features on the fly.
Future developments
Apart from the myriad user-visible features, several under-the-hood changes
will either land in this release or come to
fruition in near future releases. GIMP 3.0 contains the
infrastructure for non-destructive
layer types (such as vector
layers and link
layers), animations
in the core application, multi-page files, and native support for working
in color spaces outside of the RGB range.
The changes in GIMP 3.0 have necessitated an API
break so it is no longer compatible with plugins from older
releases. To lessen the impact, the developers have decided to
couple this shift with the incompatible changes of switching to
GTK 3. Because of this, the development of the 2.10.x
branch has continued, with some
features being backported from GIMP 3.0 during this development
cycle. Future releases within the 2.10.x branch are still possible, but
unlikely, with the foundation of the 3.x series reaching maturity. Do note,
however, that most of GIMP’s existing plugins will need to be updated to
support the new API, which is expected to provide developers with the benefit of increased functionality and improved performance.
These are just some of the changes coming to GIMP in
version 3.0. Exactly when GIMP 3.0 will be released remains to be
seen, but users interested in trying the new features before release can download development
builds; updates are regularly
posted on the GIMP web site. The first release candidate has already
landed on November 6, following the project reaching
string freeze on the main branch. So long as there are no major bugs or
regressions, the final release will be built from the release candidate. However, additional
candidates may be necessary if any major problems are found. The
developers have already
announced that subsequent releases should land faster, with smaller,
feature-focused releases providing more stability. Overall, GIMP 3.0
represents a big step forward for the free photo and graphics editor, and sets the stage for even greater improvements to come.
![Welcome screen [Welcome screen]](https://static.lwn.net/images/2024/gimp-welcome-sm.png)
![Split preview [Split preview]](https://static.lwn.net/images/2024/gimp-split-preview-sm.png)
![Layers dialog [Layers dialog]](https://static.lwn.net/images/2024/gimp-layers-sm.png)