Some major GIMP news:
2019-04-07 by Wilber
We haven’t had any updates for a few months but the wait is hopefully worth it! We’ve got many nice new features, optimizations, and stability fixes in this release!
Version 2.10.10 highlights include:
- Line art detection in the Bucket Fill tool for comic artists
- Various usability improvements in transformation tools
- Sample Merged option added to the Heal tool and fixed in the Clone tool
- Parametric brushes now have 32-bit per channel precision
- Easier brush and pattern creation workflow
- On-canvas layer selection
- Faster saving/exporting and layer groups rendering
- Initial DDS support
- Many improvements in GEGL, the image processing engine
Bucket Fill tool
The Bucket Fill tool got a bit of a revamp making it much easier to use. It also got a new “Fill by line art detection” mode (a.k.a. “Smart Colorization”)!
Quick Color picking
Similarly to painting tools, it is now possible to pick surrounding colors on canvas with the
Ctrl modifier, without having to switch to Color Picker tool.
Click and drag to fill
In “Fill similar colors” and “Fill by line art detection” modes, you can now keep the mouse button down to continue filling more areas.
Fill by line art detection
Finally, the highlight change on the Bucket Fill tool is a new algorithm for painters, allowing to fill areas surrounded by “line arts”, while trying to leave no unfilled pixels near the lines, and closing potential zones.
This feature, originated from the G’MIC plug-in as a research paper, was contributed by Jehan as work for the IMAGE team of the GREYClaboratory (French Research Lab, affiliated to the CNRS, the University of Caen, and the engineering school ENSICAEN), with important interface input from Aryeom from ZeMarmot project.
See also this technical blog post.
Ell improved various shortcomings on several transformation tools:
- The Scale tool now scales from the center, even when using numeric input.
- The Unified Transform tool defaults to preserving the aspect ratio when scaling up or down.
- New “Constrain handles” and “Around center” options to thePerspective Transform tool’s GUI, which are similar to the corresponding options of the Unified Transform tool.
- New “Readjust” button in several transformation tools to readjust transform handles based on the current zoom level.
- Forward and backward transform directions can be linked, which allows moving the handles without affecting the transformation, letting you manually readjust their position.
Heal and Clone tool
Michael Natterer improved the Heal tool by adding the “Sample merged” option which allows painting changes on a separate layer to keep the original data intact. The Clone tool already had the “Sample merged” option. It has been updated to also work similarly.
These changes are important for manipulating images without modifying original pixels in a non-destructive fashion.
32-bit parametric brushes
Michael Natterer and Ell worked a lot on a better brush support in GIMP. A major improvement for painters was making parametric brushes finally 32-bit float, following the high-bit depth move for color processing. The main advantage will be to avoid posterization on large brushes, especially with darker colors.
It is to be noted that raster brushes are still 8-bit. Promoting them to 32-bit float is also a planned future work.
Moreover, plug-ins only have access to 8-bit versions of high-precision brushes and patterns. A new API, not available yet, will be required to handle high-precision data.
Easy brush and pattern creation from clipboard
It was already possible to create new brushes and patterns on-the-fly from the clipboard (i.e. image copied, typically with a
Ctrl-c shortcut). This was extremely practical, yet only allowed temporary brushes and patterns.
These temporary brushes and patterns can now be duplicated as any other data, therefore allowing to promote them to stored data for further reuse. Though simple looking, this change is the result of an important code migration into the core of GIMP (instead of being plug-in code), performed by Michael Natterer, which may have further happy consequences in a near future!
Open as Image
The “Brushes” dock now provides an “Open brush as image” button to quickly open a brush file, allowing easier brush edits.
On-canvas layer selection
Anyone working with a lot of layers has sometimes experienced the frustration of not finding a layer in the list, even though you see its pixels in front of your eyes.
Jehan implemented a new generic canvas modifier
Alt + middle clickallowing layers to be picked by clicking on pixels. The available layers will be looped through (starting from the upper one) while the
Alt key is held and the picked layer name will be temporarily displayed in the status bar. The interaction choices heavily benefited from input by Aryeom, from the ZeMarmot project.
Faster and safer GIMP
As usual, many bugs were fixed and a lot of optimizations were made to existing part of the code. Of them these 2 improvements are particularly noteworthy:
Saving and exporting safer
Various parts of the file-writing code were made more robust by not overwriting the file when an error occured. In particular XCF saving and exporting to various image formats should be safer now.
Layer groups rendered faster
Layer groups are now rendered in bigger chunks rather than tile-by-tile (this used to pretty much eliminate multithreading for groups), which improves the rendering speed.
Improved macOS builds
HiDPI/Retina support was improved in the macOS/OSX build, fixing issues with blurry icons.
Moreover the macOS package is finally signed, thus making the installation process on this platform much less painful now!
In total, since GIMP 2.10.8, 775 commits were contributed (average of 5 commits a day) to the GIMP 2.10 branch (and more to other development branches). This means a lot of bugs were fixed (41 bug reports were closed during this development span), performance were improved, and your work is made safer…
And as we should also count babl (66 commits for babl 0.1.62) and GEGL(404 commits for GEGL 0.4.14), you can bet that this release is again as awesome as ever!
Moreover 21 translations were updated. So we also want to thank all the awesome translators who allow GIMP to be available in so many languages around the world.
The third-party DDS plug-in, originally developed by Shawn Kirst and Arne Reuter, is now part of the GIMP core plug-ins, allowing GIMP to load or export DDS files out of the box.
It is to be noted though that we are still looking for an active maintainer for this plug-in if you want to see it improved since we only fixed the minimum to get it up-to-date. If you want to step up, we welcome patches!
Rewritten Spyrogimp plug-in
Elad Shahar, original author of the Spyrogimp plug-in rewrote it from scratch completely, with more options and an automatic preview (by drawing directly on a temporary layer, not as a GEGL preview).
The old plug-in is still available, as its API may be used by existing scripts, but is not available in the menus anymore as it is replaced by the new version.
Circular, Linear, and Zoom Motion blurs got new on-canvas interactions (simple lines) allowing easier visual tweaking of the blur settings.
GEGL and babl
This release of GIMP is accompanied by a hefty GEGL 0.4.14 release, featuring a handful of under-the-hood improvements, as well as new user-facing additions.
Most excitingly, the standalone
gegl tool, which can be used to apply GEGL pipelines directly from the command-line, has seen a massive rework of its integrated GUI by Øyvind Kolås. The new UI doubles as an image viewer and a graph editor, allowing real-time non-destructive image manipulation.
As well as acting as a non-destructive editor proof-of-concept, sporting such snazzy features as touch-oriented interaction and Lua-based per-operation UI, it also provides a testbed for new and existing GEGLfeatures, such as mipmap rendering.
Øyvind Kolås has also been working on more deeply-ingrained CMYKsupport in both babl, which saw its 0.1.62 release earlier this year, and GEGL. This includes support for CMYK ICC profiles in babl (at this point, through LCMS2), direct CMYK support as part of relevant GEGL functions and core operations, and support for reading/writing CMYK data in TIFFand JPEG files. While not done yet, this work goes towards adding first-class CMYK support to GIMP.
Behind the scenes, this release saw various bug fixes and performance improvements, including:
- refactoring of the parallelization framework
- swap tile-compression
- removal of the deprecated iterator API
- new operations in the workshop
- improvements to existing operations
See the GEGL relase notes for more information.
As often, we remind that you can donate to the project and personally fund several of the people mentionned in this news. This is a way to give back if you appreciate the work and wish to help GIMP improve more!
Work on GIMP codebase is still going strong, not only for the stable GIMP2.10.x branch, but also on the master branch with GTK+3 port. Hopefully we will soon have some nice things to announce on this less visible side of the development!
In the meantime, if you want to meet members of the GIMP team, as every year, several members will be present during the Libre Graphics Meeting 2019 in Saarbruecken, Germany, from May 29 to June 2. We have a few talks planned. Other than this, we will likely hang around, so do not hesitate to catch one of us for a talk!