index.md 11.3 KB
Newer Older
1
Title: GIMP 2.10.10 Released
2
Date: 2019-04-07
3 4 5
Category: News
Authors: Wilber
Slug: gimp-2-10-10-released
6
Summary: GIMP 2.10.10 released: colors are hard!
7

8 9 10
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!
11

12
Version 2.10.10 highlights include:
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
13 14 15 16 17 18 19 20 21

* 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
22 23
* Many improvements in [GEGL](https://gegl.org), the image processing engine

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
24

25 26 27 28
# Notable improvements
## Improved tools
### Bucket Fill tool

29
The _Bucket Fill_ tool got a bit of a revamp making it much easier to
30
use. It also got a new "*Fill by line art detection*" mode (a.k.a.
31 32
"Smart Colorization")!

Jehan's avatar
Jehan committed
33 34 35 36 37 38 39
<figure>
<img src="{attach}20190318_gimp_colorisation.jpg" alt="Colors are hard, by Aryeom"/>
<figcaption>
<em>"Colors are hard", by Aryeom, CC BY-SA 4.0</em>
</figcaption>
</figure>

40

41 42 43
#### Quick Color picking

Similarly to painting tools, it is now possible to pick surrounding
44
colors on canvas with the `Ctrl` modifier, without having to switch to
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
45
_Color Picker_ tool.
46 47 48 49 50 51 52 53

#### 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

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
54
Finally, the highlight change on the _Bucket Fill_ tool is a new algorithm
55 56 57 58 59
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](https://gmic.eu/) plug-in as a
60
[research paper](https://hal.archives-ouvertes.fr/hal-01891876), was
61
contributed by Jehan as work for the 
62 63 64 65 66 67 68 69
[IMAGE](https://www.greyc.fr/?page_id=443&lang=en) team of the
[GREYC](https://www.greyc.fr/?page_id=1342&lang=en)
laboratory (French Research Lab, affiliated to the
[CNRS](http://www.cnrs.fr/), the [University
of Caen](http://www.unicaen.fr/), and the engineering school
[ENSICAEN](https://www.ensicaen.fr/)), with important interface input
from Aryeom from [ZeMarmot](https://film.zemarmot.net/) project.

70 71 72 73 74 75 76
<figure>
<img src="{attach}gimp-2-10-10-smart-colorization.webp" alt="Smart colorization in GIMP"/>
<figcaption>
<em>Smart colorization in GIMP</em>
</figcaption>
</figure>

77 78 79 80 81 82 83
See also this [technical blog
post](https://girinstud.io/news/2019/02/smart-colorization-in-gimp/).

### Transformation tools

Ell improved various shortcomings on several transformation tools:

84
* The _Scale_ tool now scales from the center, even when using numeric
85
  input.
86
* The Unified Transform tool defaults to preserving the aspect ratio
87
  when scaling up or down.
88
* New "Constrain handles" and "Around center" options to the
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
89 90
  _Perspective Transform_ tool's GUI, which are similar to the
  corresponding options of the _Unified Transform_ tool.
91
* New "Readjust" button in several transformation tools to readjust
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
92
  transform handles based on the current zoom level.
93
* TODO: linking/unlinking of normal/corrective modes.
94

95 96 97 98 99 100
<p>
<video width="992" height="720" controls>
  <source src="https://download.gimp.org/pub/gimp/video/v2.10/gimp-2-10-10-transform-tools.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</p>
101

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
102
### Heal and Clone tool
103

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
104 105 106
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.
107 108 109
The _Clone_ tool already had the "Sample merged" option. It has been
updated to also work similarly.

110
These changes are important for manipulating images without modifying
111
original pixels in a non-destructive fashion.
112 113 114 115

## Better brushes
### 32-bit parametric brushes

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
116
Michael Natterer and Ell worked a lot on a better brush support in GIMP.
117
A major improvement for painters was making parametric brushes finally
118 119 120 121 122 123
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.
Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
124 125

Moreover, plug-ins only have access to 8-bit versions of high-precision
126 127
brushes and patterns. A new API, not available yet, will be required to
handle high-precision data.
128 129 130 131 132 133 134 135

### 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.

136 137
These temporary brushes and patterns can now be duplicated as any other
data, therefore allowing to promote them to stored data for further reuse.
138 139 140 141 142 143 144
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

145 146
The "Brushes" dock now provides an "Open brush as image" button to
quickly open a brush file, allowing easier brush edits.
147 148 149

## On-canvas layer selection

150
Anyone working with a lot of layers has sometimes experienced the
151 152 153 154
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 click`
155 156
allowing 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
157
and the picked layer name will be temporarily displayed in the status
158 159
bar. The interaction choices heavily benefited from input by
Aryeom, from the *ZeMarmot* project.
160

161
<figure>
162
<img src="{attach}gimp-2-10-10-layer-selection.webp" alt="Layer picking with Alt+middle click"/>
163 164 165 166 167
<figcaption>
<em>Layer picking on canvas with Alt + middle click</em>
</figcaption>
</figure>

168 169 170
## Faster and safer GIMP

As usual, many bugs were fixed and a lot of optimizations were made to
171
existing part of the code. Of them these 2 improvements are
172 173 174 175
particularly noteworthy:

### Saving and exporting safer

176
Various parts of the file-writing code were made more
177 178 179 180 181 182
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
183
(this used to pretty much eliminate multithreading for groups), which
184 185
improves the rendering speed.

Jehan's avatar
Jehan committed
186 187 188 189 190 191 192 193 194 195 196 197
### And more!

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…

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](https://l10n.gnome.org/module/gimp/) around the world.

198 199 200
## Plug-ins
### DDS support

201 202 203 204
The third-party [DDS](https://en.wikipedia.org/wiki/DirectDraw_Surface)
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.
205

206
It is to be noted though that **we are still looking for an active
207
maintainer for this plug-in** if you want to see it improved since
208
we only fixed the minimum to get it up-to-date. If you want to step up, [we welcome
209
patches](https://gitlab.gnome.org/GNOME/gimp/tree/master/plug-ins/file-dds)!
210 211 212 213

### Rewritten Spyrogimp plug-in

Elad Shahar, original author of the Spyrogimp plug-in rewrote it from
214
scratch completely, with more options and an automatic preview (by drawing
215 216
directly on a temporary layer, not as a GEGL preview).

217 218 219 220 221 222 223
<figure>
<img src="{attach}gimp-2-10-10-spyrogimp.jpg" alt="New spyrogimp plug-in in GIMP"/>
<figcaption>
<em>New Spyrogimp plug-in in GIMP</em>
</figcaption>
</figure>

224 225
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
226 227 228 229
replaced by the new version.

## Filters

Alexandre Prokoudine's avatar
Alexandre Prokoudine committed
230
_Circular_, _Linear_, and _Zoom Motion_ blurs got new on-canvas interactions
231 232 233 234
(simple lines) allowing easier visual tweaking of the blur settings.

# Around GIMP
## GEGL and babl
Ell's avatar
Ell committed
235 236
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.
237

Ell's avatar
Ell committed
238 239 240 241 242 243 244 245 246 247
Most excitingly, the standalone `gegl` tool, which can be used to apply GEGL
pipelines directly from the command-line, has seen a
[massive rework](https://www.patreon.com/posts/24123574) 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.

<figure>
<img src="{attach}gegl-editor-1.jpg" alt="GEGL editor (1)"/>
<figcaption>
248
<em>The <code>gegl</code> binary features a reworked graphical editor</em>
Ell's avatar
Ell committed
249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274
</figcaption>
</figure>

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 GEGL features, such as mipmap
rendering.

<figure>
<img src="{attach}gegl-editor-2.jpg" alt="GEGL editor (2)"/>
<figcaption>
<em>The editor can be extended using Lua, allowing for per-operation UI</em>
</figcaption>
</figure>

Øyvind Kolås has also
[been working](https://www.patreon.com/posts/cmyk-progress-22901518) on more
deeply-ingrained CMYK support 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 TIFF and 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
275 276 277 278 279 280 281 282
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

Ell's avatar
Ell committed
283 284
See the [GEGL relase notes](http://gegl.org/NEWS.html#_gegl_0_4_14_2019_03_01)
for more information.
285

286 287 288 289 290
*Note for packagers: to build GEGL 0.4.14 on Win32, 2 commits will need
cherry-picking: commits
[141a7aa7](https://gitlab.gnome.org/GNOME/gegl/commit/141a7aa76cd36143f624f06b1c43d2483945653c) and
[b3ff0df0](https://gitlab.gnome.org/GNOME/gegl/commit/b3ff0df080d133bbdb394c3db40d4f9d2980a8a6).*

291
# What's next
292

293
Work on GIMP codebase is still going strong, not only for the stable GIMP
294 295
2.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
296 297 298 299 300 301 302 303
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](https://libregraphicsmeeting.org/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!