2D Graphics

GIMP 2.10.2 Released

GIMP - Sat, 05/19/2018 - 22:00

It’s barely been a month since we released GIMP 2.10.0, and the first bugfix version 2.10.2 is already there! Its main purpose is fixing the various bugs and issues which were to be expected after the 2.10.0 release.

Therefore, 44 bugs have been fixed in less than a month!

We have also been relaxing the policy for new features and this is the first time we will be applying this policy with features in a stable micro release! How cool is that?

For a complete list of changes please see NEWS.

New features Added support for HEIF image format

This release brings HEIF image support, both for loading and export!

Thanks to Dirk Farin for the HEIF plug-in.

New filters

Two new filters have been added, based off GEGL operations:

Spherize filter to wrap an image around a spherical cap, based on the gegl:spherize operation.

Spherize filter in GIMP 2.10.2.
Original image CC-BY-SA by Aryeom Han.

Recursive Transform filter to create a Droste effect, based on the gegl:recursive-transform operation.

Recursive transform filter in GIMP 2.10.2, with a custom on-canvas interface.
Original image CC-BY by Philipp Haegi. Noteworthy improvements Better single-window screenshots on Windows

While the screenshot plug-in was already better in GIMP 2.10.0, we had a few issues with single-window screenshots on Windows when the target window was hidden behind other windows, partly off-screen, or when display scaling was activated.

All these issues have been fixed by our new contributor Gil Eliyahu.

Histogram computation improved

GIMP now calculates histograms in separate threads which eliminates some UI freezes. This has been implemented with some new internal APIs which may be reused later for other cases.

Working with third-parties Packagers: set your bug tracker address

As you know, we now have a debug dialog which may pop-up when crashes occur with debug information. This dialog opens our bug tracker in a browser.

We realized that we get a lot of bugs from third-party builds, and a significant part of the bugs are package-specific. In order to relieve that burden a bit (because we are a very small team), we would appreciate if packagers could make a first triaging of bugs, reporting to us what looks like actual GIMP bugs, and taking care of their own packaging issues themselves.

This is why our configure script now has the --with-bug-report-url option, allowing you to set your own bug tracker web URL. This way, when people click the “Open Bug Tracker” button it will open the package bug tracker instead.

XCF-reader developers: format is documented

Since 2006, our work format, XCF, is documented thanks to the initial contribution of Henning Makholm. We have recently updated this document to integrate all the changes to the format since the GIMP 2.10.0 release.

Any third-party applications wishing to read XCF files can refer to this updated documentation. The git log view may actually be more interesting since you can more easily spot the changes and new features which have been documented recently.

Keep in mind that XCF is not meant to be an interchange format (unlike for instance OpenRaster) and this document is not a “specification”. The XCF reference document is the code itself. Nevertheless we are happy to help third-party applications, and if you spot any error or issues within this document feel free to open a bug report so we can fix it.

GIMP 3 is already on its way…

While GIMP 2.10.0 was still hot and barely released, our developers started working on GIMP 3. One of the main tasks is cleaning the code from the many deprecated pieces of code or data as well as from code made useless by the switch to GTK+ 3.x.

The deletion is really going full-speed with more than 200 commits made in less than a month on the gtk3-port git branch and with 9805 lines already inserted for the 921,630 lines deleted!

Delete delete delete… exterminate!

Michael Natterer and Jehan portrayed by Aryeom.
It’s actually misses Simon Budig, a long time contributor who made a big comeback on the GTK+3 port with dozens of commits!
Categories: 2D Graphics

GIMP 2.10.0 Released

GIMP - Thu, 04/26/2018 - 22:00

The long-awaited GIMP 2.10.0 is finally here! This is a huge release, which contains the result of 6 long years of work (GIMP 2.8 was released almost exactly 6 years ago!) by a small but dedicated core of contributors.

The Changes in short

We are not going to list the full changelog here, since you can get a better idea with our official GIMP 2.10 release notes. To get an even more detailed list of changes please see the NEWS file.

Still, to get you a quick taste of GIMP 2.10, here are some of the most notable changes:

  • Image processing nearly fully ported to GEGL, allowing high bit depth processing, multi-threaded and hardware accelerated pixel processing, and more.
  • Color management is a core feature now, most widgets and preview areas are color-managed.
  • Many improved tools, and several new and exciting tools, such as the Warp transform, the Unified transform and the Handle transform tools.
  • On-canvas preview for all filters ported to GEGL.
  • Improved digital painting with canvas rotation and flipping, symmetry painting, MyPaint brush support…
  • Support for several new image formats added (OpenEXR, RGBE, WebP, HGT), as well as improved support for many existing formats (in particular more robust PSD importing).
  • Metadata viewing and editing for Exif, XMP, IPTC, and DICOM.
  • Basic HiDPI support: automatic or user-selected icon size.
  • New themes for GIMP (Light, Gray, Dark, and System) and new symbolic icons meant to somewhat dim the environment and shift the focus towards content (former theme and color icons are still available in Preferences).
  • And more, better, more, and even more awesome!


Enjoy GIMP!
Categories: 2D Graphics

GIMP 2.10.0 Release Candidate 2 Released

GIMP - Mon, 04/16/2018 - 22:00

Hot on the heels of the first release candidate, we’re happy to have a second RC ready! In the last 3 weeks since releasing GIMP 2.10.0-RC1, we’ve fixed 44 bugs and introduced important performance improvements.

As usual, for a complete list of changes please see NEWS.

Optimizations and multi-threading for painting and display

A major regression of GIMP 2.10, compared to 2.8, was slower painting. To address this issue, several contributors (Ell, Jehan, Massimo Valentini, Øyvind Kolås…) introduced improvements to the GIMP core, as well as to the GEGL and babl libraries. Additionally, Elle Stone and Jose Americo Gobbo contributed performance testing.

The speed problems pushed Ell to implement multi-threading within GIMP, so that painting and display are now run on separate threads, thus greatly speeding up feedback of the graphical interface.

The new parallelization framework is not painting-specific and could be used for improving other parts of GIMP.

Themes rewritten

Since the development version 2.9.4, we had new themes shipped with GIMP, and in particular dark themes (as is now common for creative applications). Unfortunately they were unmaintained, bugs kept piling up, and the user experience wasn’t exactly stellar.

Light, Gray, and Dark themes.

Our long-time contributor Ville Pätsi took up the task of creating brand new themes without any of the usability issues and glitches of previous ones. While cleaning up, only the Gray theme has been kept, whereas Light and Dark were rewritten from scratch. Darker and Lighter themes have been removed (they won’t likely reappear unless someone decides to rewrite and contribute them as well, and unless this person stays around for maintenance).

Gradient tool improved to work in linear color space

Thanks to Michael Natterer and Øyvind Kolås, the gradient tool can now work in either perceptual RGB, linear RGB, or CIE LAB color space at your preference.

Gradient tool in perceptual and linear spaces

We also used the opportunity to rename the tool, which used to be called “Blend tool” until now, even though barely anyone uses such name. “Gradient tool” is a much more understandable naming.

New on-canvas control for 3D rotation

A new widget for on-canvas interaction of 3D rotation (yaw, pitch, roll) has been implemented by Ell. This new widget is currently only used for the Panorama Projection filter.

Panorama projection filter (image: Hellbrunn Banquet Hall by Matthias Kabel (cba)) Improvements in handling masks, channels, and selections

GIMP doesn’t do any gamma conversion when converting between selection, channels, and masks anymore. This makes the selection -> channel -> selection roundtrips correct and predictable.

Additionally, for all >8-bit per channel images, GIMP now uses linear color space for channels. This and many other fixes in the new release were done by Michael Natterer.


8 translations have been updated between the two release candidates. We are very close to releasing the final version of GIMP 2.10.0. If you plan to update a translation into your language and be in time for the release, we recommend starting now.

GEGL changes

Mosty of the changes in GEGL since the release in March are performance improvements and micro-optimizations in display paths. Additionally, avoiding incorrectly gamma/ungamma correcting alpha in u8 formats provides a tiny 2-3% performance boost.

For further work on mipmaps support, GEGL now keeps track of valid/invalid areas on smaller granularity than tiles in mipmap.

The Panorama Projection operation got reverse transform, which permits using GIMP for retouching zenith, nadir or other arbitrary gaze directions in equirectangular, also known as 360×180 panoramas.

Finally, abyss policy support in the base class for scale operations now makes it possible to achieve hard edges on rescaled buffers.

What’s Next

We are now 7 blocker bugs away from the final release.

On your marks, get set…

Categories: 2D Graphics

Fun at SCaLE 2018

GIMP - Mon, 04/02/2018 - 22:00

I am finally back and have a moment to write a bit about the wonderful time I had out in Pasadena at the Southern California Linux Expo (SCaLE 16x)!

SCaLE has been held annualy in southern California for many years (the “16x” indicates this is the sixteenth annual meeting - though they’ve been holding meetings for longer as a LUG).

Libre Graphics Track

This year, Nate Willis reached out to see if we might be willing to help organize the first ever “Libre Graphics” track at the meeting. Usually the conference is geared towards enterprise technologies and users, but we thought it might be a nice opportunity to bring to light some of the awesome graphics projects that are out there.

It was an awesome opportunity to share the stage with some really talented folks. The days track and presentations can all be seen here:

  • Laidout
    by Tom Lechner

  • Extending Inkscape with SVG Filters
    by Ted Gould

  • Busting Things Up with the Fracture Modifier VFX Branch of Blender
    by JT Nelson

  • Making freely licensed movies with freely licensed tools
    by Matt Lee

  • Developers, Developers, Developers—How About Creatives
    by Ryan Gorley

  • Why the GIMP Team Obviously Hates You
    by Pat David

  • Git for Photographers
    by Mica Semrick

Overall it was a great day filled with some really neat presentations. More importantly was the opportunity to demonstrate to the attendees that the world of Libre Graphics projects is alive and well! The talks were well attended (approx 30-40 visitors depending on the talk) and the interest and participation was quite nice. Each speaker found a receptive audience with interested follow-on questions (my presentation had about 12 minutes of questions at the end).

One of the most ineresting take-aways at the end of my presentation (and in the following weeks through email) was the astonishment people had at the size of the team working on GIMP. It seemed that the overall impression was that there was some large team of folks hacking on the project, and many people were amazed that the crew is actually as small as it is.

What was heartening was the number of attendees after my presentation who took the time to offer their help in some way. These were all offers to help with writing tutorials or other non-development roles. Possible tasking for various areas of help will be communicated to those offering which should result in some new and/or updated tutorials soon!

GIMP + Inkscape Expo Booth

Even better was the opportunity to share a booth at the Expo with the Inkscape team. Presenting is fantastic fun, and I love it, but it’s ridiculously humbling to get a chance to meet face-to-face with users (in the booth on the expo floor) and to hear their stories, soak in their praise, or deflect their anger to someone else while quietly sneaking away (kidding of course).

Thanks to the great work of Ryan Gorley we even had a pair of fantastic banners to hang in the booth:

Ryan Gorley was kind enough to design this pair of banners we hung in the booth.

There was great foot traffic during the expo and we had an opportunity to meet with and chat with quite a few folks making their way through the expo floor. There were even a few folks who had heard of GIMP but hadn’t really taken the time to look at it (which was a great opportunity to talk about the project and what they could do with it). Everyone was extremely kind and gracious.

The booth! With yours truly in the bottom left.

Overall the conference was a success, I’d say! We had an opportunity to help represent the world of Free Software graphics applications and to showcase works using these tools to an audience that might not have otherwise considered them. There were quite a few attendees who were surprised to see us and very engaged both in the booth and during the Libre Graphics track and we sparked a nice interest in people volunteering to help with non-programming related tasks (whose willingness to help out is greatly appreciated).

Categories: 2D Graphics

GIMP 2.10.0 Release Candidate 1 Released

GIMP - Sun, 03/25/2018 - 22:00

Newly released GIMP 2.10.0-RC1 is the first release candidate before the GIMP 2.10.0 stable release. With 142 bugs fixed and more than 750 commits since the 2.9.8 development version from mid-December, the focus has really been on getting the last details right.

All the new features we added for this release are instrumental in either improving how GIMP handles system resources, or helping you to report bugs and recover lost data. For a complete list of changes please see NEWS.

(Update): Thanks to Ell the windows installer (64-bit) is now available from the Development Downloads page.

New features Dashboard dockable

A new Dashboard dock helps with monitoring GIMP’s resource usage to keep things in check, allowing you to make more educated decisions about various configuration options.

On the developer side, it also helps us in debugging and profiling various operations or parts of the interface, which is important in our constant quest to improve GIMP and GEGL, and detect which parts are the biggest bottlenecks.

The feature was contributed by Ell — one of GIMP’s most productive developers of late.

Debug dialog

What we consistently hear from users is that they have had zero GIMP crashes in years of using it. Still, as with any software, it is not exempt from bugs, and unfortunately sometimes might even crash.

While we encourage you to report all bugs you encounter, we do admit that producing useful information for a report can be difficult, and there is little we can do about a complaint that says “GIMP crashed. I don’t know what I was doing and I have no logs”.

So GIMP now ships with a built-in debugging system that gathers technical details on errors and crashes.

On development versions, the dialog will be raised on all kind of errors (even minor ones). On stable releases, it will be raised only during crashes. The default behavior can be customized in Edit > Preferences > Debugging.

Note: you are still expected to write down contextual information when you report bugs, i.e.: What were you doing when the bug happened? If possible, step by step reproduction procedures are a must.

The feature was contributed by Jehan Pages from ZeMarmot project.

Image recovery after crash

With the debugging system in place to detect a crash, it was easy enough to add crash recovery. In case of a crash, GIMP will now attempt to backup all images with unsaved changes, then suggest to reopen them the next time you start the application.

This is not a 100%-guaranteed procedure, since a program state during a crash is unstable by nature, so backing up images might not always succeed. What matters is that it will succeed sometimes, and this might rescue your unsaved work!

This feature was also contributed by the ZeMarmot project.


This new filter is now available in GIMP in the Colors menu thanks to a contribution by Thomas Manni who created a likewise named GEGL operation.

The filter allows adjusting shadows and highlights in an image separately, with some options available. The implementation closely follows its counterpart in the darktable digital photography software.

Completed features Layer masks on layer groups

Masks on layer groups are finally possible! This work, started years ago, has now been finalized by Ell. Group-layer masks work similarly to ordinary-layer masks, with the following considerations.

The group’s mask size is the same as group’s size (i.e., the bounding box of its children) at all times. When the group’s size changes, the mask is cropped to the new size — areas of the mask that fall outside of the new bounds are discarded, and newly added areas are filled with black (and hence are transparent by default).

JPEG 2000 support ported to OpenJPEG

JPEG 2000 images importing was already supported, using the library called Jasper. Yet this library is now deprecated and slowly disappearing from most distributions. This is why we moved to OpenJPEG.

The port was initially started by Mukund Sivaraman. It was later completed by Darshan Kadu, under the FSF internship program, and mentored by Jehan who polished it up.

In particular, now GIMP can properly import JPEG 2000 images in any bit depth (over 32-bit per channel will be clamped to 32-bit and non-multiple of 8-bit will be promoted, for instance 12-bit will end up as 16-bit per channel in GIMP). Images in YCbCr and xvYCC color spaces will be converted to sRGB.

JPEG 2000 codestream files are also supported. While color space can be detected for JPEG 2000 images, for codestream files you will be asked to specify the color space.

Linear workflow updates

Curves and Levels filters have been updated to have a switch between linear and perceptual (non-linear) modes, depending on which one you need.

You can apply Levels in perceptual mode to a linear image, or Curves in linear mode to a perceptual image — whichever suits you best for the task at hand.

The same switch in the Histogram dock has been updated accordingly.

Screenshot and color-picking

On Linux, taking screenshots with the Freedesktop API has been implemented. This should become the preferred API in the hopefully near future, especially because it is meant to work inside sandboxed applications. Though for the time being, it is still not given priority because it lacks some basic features and is not color-managed in any implementation we know of, which makes it a regression compared to other implementations.

On Windows, Simon Mueller has improved the screenshot plug-in to handle hardware-accelerated software and multi-monitor displays.

On macOS, color picking with the Color dock is now color-managed.

Metadata preferences

Settings were added for metadata export handling in the “Image Import & Export” page of the Preferences dialog. By default, the settings are checked, which means that GIMP will export all metadata, but you can uncheck them (since metadata can often contain a lot of sensitive private information).

Note that these options can also be changed per format (“Load Defaults” and “Save Defaults” button), and of course per file during exporting, just like any other option.

Lock brush to view

GIMP finally gives you a choice whether you want a brush locked to a certain zoom level and rotation angle of the canvas.

The option is available for all painting tools that use a brush except for the MyPaint Brush tool.

Missing icons

8 new icons were added by Alexandre Prokoudine, Aryeom Han (ZeMarmot film director), and Ell.

Various GUI refining

Many last-minute details have been handled, such as renaming the composite modes to be more descriptive, shortened color channel labels with their conventional 1- or 2-letter abbreviations, color models rearranged in the Color dock, and much more!


String freeze has started and GIMP has received updates from: Basque, Brazilian Portuguese, Catalan, Chinese (Taiwan), Danish, Esperanto, French, German, Greek, Hungarian, Icelandic, Italian, Japanese, Latvian, Polish, Russian, Serbian, Slovenian, Spanish, Swedish, Turkish.

The Windows installer is now also localized with gettext.

GEGL changes

The GEGL library now used by GIMP for all image processing has also received numerous updates.

Most importantly, all scaling for display is now done on linear data. This produces more accurate scaled-down thumbnails and more valid results of mipmap computations. GIMP 2.10.0-RC1 doesn’t use mipmaps yet, but it will further down the line.

More work has been done to improve performance of GEGL across many parts of the source code. Improvements to pixel data fetching and setting functions have led to performance boosts across many GEGL operations (in particular, Gaussian blur), and for some performance-critical display cases, performance should have improved two- to three-fold since the release in December 2017.

There are 5 new operations in the workshop now. Among those, enlarge and inpaint are part of the new experimental inpainting framework by Øyvind Kolås, domain transform by Felipe Einsfeld Kersting is an edge-preserving smoothing filter, and recursive-transform is Ell’s take on the famous Droste effect.

Helping GIMP

We’d like to remind you that GIMP is free software. Therefore the first way to help is to contribute your time. You can report bugs and send patches, whether they are code patches, icons, brushes, documentation, tutorials, translations, etc.

In this release for instance, about 15% of changes were done by non-regular contributors.

You can also contribute tutorials or news for our website, as Pat David explained so well in his talk Why the GIMP Team Obviously Hates You. Pat David is himself one of the important GIMP contributors on the community side (he also created our current website back in 2015).

Last but not least, we remind that you can contribute financially in a few ways. You can donate to the project itself, or you can support the core team developers who raise funds individually, in particular Øyvind Kolås for his work on GEGL, GIMP graphics engine, and ZeMarmot project (Aryeom & Jehan) for their work on GIMP itself (about 35% of this release is contributed by their project).

What’s Next

This is the last stretch before the final GIMP 2.10.0 release. There are a few more changes planned before we wrap it up. For instance, Americo Gobbo is working (with minor help from ZeMarmot) on improving our default brush set. His work will be available either in another release candidate (if we make another one) or in the final release.

We are currently 12 blocker bugs away from making the final release. We’ll do our best to make it quick!

Categories: 2D Graphics

Thu, 01/01/1970 - 00:00
Syndicate content