1 ------------------------------ 2 GNU Image Manipulation Program 3 2.10 Stable Branch 4 ------------------------------ 5 6This is the stable branch of GIMP. Unlike earlier stable branches, 7we do allow some new features here, if they are not too invasive. 8Otherwise, this branch is only for bug-fixes. 9 10 11Overview of Changes from GIMP 2.10.28 to GIMP 2.10.30 12===================================================== 13 14Core: 15 16 - Do not follow subpixel font rendering choice from system settings 17 for text layer rendering. These systems are useful for GUI 18 rendering on a screen of a specific type and pixel order. Yet when 19 rendering an image which can be zoomed in or out, showed on various 20 screens or even printed, subpixel font rendering doesn't make sense. 21 - Rewrite the core selection drawing logics so that it works on macOS 22 Big Sur and over. This is a backport (adapted to GTK+2) of the fix 23 brought in GIMP 2.99.8 for Wayland and macOS. 24 - Ignore MakerNote metadata tag at export and only store the tags that 25 go in it, hence avoiding partial invalid metadata. 26 - Color picking from Colors dockable can now use the Freedesktop 27 portal. 28 - On Windows, move from GetICMProfile() to WcsGetDefaultColorProfile() 29 because the former is broken in Windows 11. 30 31Plug-ins: 32 33 - metadata-viewer: improve how XMP tags with multiple values are 34 handled and shown (now each value on a separate line for better 35 readability). 36 - metadata-editor: 37 * XMP array tags of type BAG and SEQ are now on separate lines. 38 * Comparing XMP tags with equivalent IPTC tags with multiple values, 39 each value is compared individually, instead of comparing the list 40 as a whole. 41 - Many robustness improvements and other fixes to the metadata 42 plug-ins. 43 - AVIF: prefer AOM encoder for export. 44 - PSD: 45 * Skip sanity check for mask of rendered layers as some layer mask 46 have invalid dimensions in such cases. They will now be loaded 47 correctly. 48 * Fixed loading of CMYK PSD files without alpha. 49 * Fixed loading of CMYK images without layers. 50 * Fixed loading of merged image of a 16 bit per channel RGBA PSD 51 file with the alpha channel opaque. 52 - PBM: large file export now always works and does not depend anymore 53 on the platform's long int size. 54 - Screenshot: 55 * GNOME shell implementation dropped because the D-Bus API has been 56 restricted to core components for security reasons, thus our 57 plug-in was failing. 58 * KDE portal moved as last fallback after the X implementation 59 (when running on X) and Freedesktop portal, because KDE is also 60 starting to block API calls for security reasons. 61 62Installer: 63 64 - Extension .avif now associated to GIMP. 65 - Drop codepage conversion, use UTF-8 for language files. 66 67Build: 68 69 - macOS support officially bumped to macOS 10.12 (Sierra). We would 70 usually try to avoid doing this within a stable release but the 71 conditions (lack of contributors) is such that it is hard to avoid. 72 73 74Overview of Changes from GIMP 2.10.26 to GIMP 2.10.28 75===================================================== 76 77Translations: 78 79 - 10 translations were updated: Catalan, Chinese (China), Finnish, 80 Italian, Polish, Russian, Slovenian, Spanish, Swedish and Ukrainian. 81 82Build: 83 84 - Fix uninstalled white-border prelight file. 85 86 87Overview of Changes from GIMP 2.10.24 to GIMP 2.10.26 88===================================================== 89 90Core: 91 92 - Dashboard now has memory support in OpenBSD. 93 - Default shortcuts Shift+[ and ] for tool size changed to { and }. 94 - Performance improvements for GIMP on macOS Big Sur: these 95 improvements were actually already applied in our macOS packages 96 since GIMP 2.10.22, but were applied upstream directly only now. 97 98User Interface: 99 100 - Dark theme: improve accessibility of GtkRadioButton by adding a 101 white border on mouse-hover. 102 - Gray theme: set light background for selected text in Layers and 103 Paths dockable dialogs to make text visible. 104 - Dark, Gray and Light themes: remove 3D shadow box around eye and 105 link toggles in Layers, Channels, and Paths dockable dialog tree 106 views. 107 108Plug-ins: 109 110 - Improved DDS support and fix some red/blue bit swap for RGB10A2 DDS. 111 The plug-in version is incremented so that it is able to catch and 112 correct previously incorrect RGB10A2 images exported by older 113 versions of our plug-in. 114 - DDS files with "L16" - a 16 bit luminance channel - are now loaded 115 in 16-bit. 116 - DICOM images: 117 * Support for planar configuration. 118 * Support for deprecated big endian transfer. 119 - TIFF images: 120 * Thumbnail storing now done by storing the thumbnail as the second 121 page in the file (through Exiv2) and setting metadata 122 "Exif.Thumbnail.NewSubfileType" to 1 (reduced resolution image) 123 instead of storing the thumbnail as a subifd. This was done 124 because of a Windows bug locking TIFF files with thumbnail stored 125 as subfid. 126 * Symmetrically, loading will ignore pages marked as "reduced 127 resolution image" (i.e. it will consider them as thumbnails), as 128 well as try to guess if a page (without subfile type) is a 129 thumbnail when it meets following criteria: second page with YCbCr 130 PhotometricInterpretation, old style jpeg compression while the 131 first page has a different PhotometricInterpretation or 132 compression. 133 134Script-fu: 135 136 - New (dir-make "/dir/name" mode) function to create a directory. 137 138Translations: 139 140 - New translations for the Windows installer: Vietnamese, Lithuanian. 141 - 13 translations were updated: Catalan, Chinese (China), Croatian, 142 Dutch, German, Lithuanian, Polish, Russian, Slovenian, Spanish, 143 Swedish, Ukrainian and Vietnamese. 144 145Build: 146 147 - On Windows, *.rs file extension is not associated with SUN Raster 148 images anymore. The reason is that this file extension is mostly 149 used for Rust code files nowadays. If Windows could detect file 150 formats with "magic numbers" (i.e. byte identifiers), it would not 151 be a problem, but since it relies apparently only the extension, 152 it's better to remove this association. 153 - Oppositely on Linux and other Unix-like systems using desktop files, 154 add the image/x-sun-raster MimeType which was forgotten (there, 155 detection should be fine and not depend on file extension). 156 - gimp30-tips.mo is not installed anymore (only used during the build 157 to generate gimp-tips.xml with multiple language support). 158 - --enable-check-update now has an "auto" value, which is the new 159 default. It is equivalent to "yes" for Windows and macOS and "no" in 160 all other cases. 161 - New unit test to check that localizations listed in the installer 162 script match available po files in po-windows-installer/. 163 - "msys*" host value now detected as Windows builds. 164 - Bumping minimum GEGL to version 0.4.32. 165 166 167Overview of Changes from GIMP 2.10.22 to GIMP 2.10.24 168===================================================== 169 170Core: 171 172 - Ignore Pentax and PentaxDng metadata at export because they are 173 unsupported. 174 - DBus calls (remote file open, typically with double click on file 175 browser; and remote command run) are now processed after all command 176 line files (in case of calls during startup) and in the call order 177 (FIFO) for consistency. Some timeout has also been added to not spam 178 the core process with non-processable DBus calls during startup. 179 - Display profile name in "Color space" field of Image Properties and 180 improve ellipsis & wrap on dialog fields whose contents' size is not 181 controllable together with better dialog size management. 182 - Fix stack overflow when loading very large XCF files on Windows. 183 - Point snapping now works outside the canvas. This is used for snap 184 to guides, grid and vectors. Snap to grid only works off-canvas when 185 "Show All" is enabled because off-canvas grid is not visible 186 otherwise, though snap to guide and vectors will always work 187 off-canvas. 188 189Libgimp: 190 191 - Various metadata improvements: 192 * Improve reading of iptc tags that appear more than once. 193 194Plug-ins: 195 196 - JPEG export will better advertize when metadata export fails, 197 possibly with relevant error message. Image export would not fail, 198 but at least we make the person aware metadata is not properly 199 exported. 200 - More robust TIFF import and export: 201 * Better handling of Exif.Thumbnail.* tags on export. 202 * Import now ignores TIFF pages with invalid directory (rather than 203 freezing and output an error to warn of possible data loss). 204 * Import attempts to count the directories by reading them when the 205 headers does not announce any directory, which allows to salvage 206 images with improper header. Also if reading of a directory fail, 207 we now output a message to warn of possible data loss. 208 * Fixed loading 2 and 4-bit TIFF images in grayscale and indexed. 209 * Improve support of ExtraSamples fields with non-conformant TIFF 210 files. 211 * Improve loading of multi page tiffs with linear TRC. 212 * More safety checks as a result of fuzz-testing. 213 * Improve loading of MinIsWhite and MinIsBlack images. 214 - GeoTIFF tag support added (recognized and stored into image 215 parasites at import, then exported back when TIFF format is used) 216 with appropriate "Save GeoTIFF data" checkbox (checked by default 217 and sensitive only when the metadata parasite is present) to disable 218 GeoTIFF metadata export when not desired. 219 - The metadata viewer and editor got a big cleaning and refactoring 220 pass, as well as various fixes and several improvements: 221 * Fix handling of IPTC tags which can appear more than once (such as 222 "Keywords") in both the viewer and editor. 223 * Always read both the IPTC and XMP equivalent tags in the editor, 224 instead of assuming they are necessarily the same. 225 * More IPTC equivalents of XMP tags added: 226 + Iptc.Application2.LocationName <=> Xmp.iptc.Location 227 + Iptc.Application2.BylineTitle <=> Xmp.photoshop.AuthorsPosition 228 + Iptc.Application2.CountryCode <=> Xmp.iptc.CountryCode 229 + Iptc.Application2.Writer <=> Xmp.photoshop.CaptionWriter 230 * The editor now properly saves IPTC tags. 231 * Improve UTF-8 conversion to avoid double string conversion (hence 232 actually breaking encoding). 233 * Use proper unit abbreviations and proper label casing. 234 * GPS data is now properly formatted with better precision and with 235 translatable string parts and tooltips are added to explain how to 236 correctly edit GPS data (latitude, longitude, altitude). 237 Also seconds part of latitude/longitude is now saved with more 238 precision and altitude details now switch from .1m to .10m. 239 * Better error reporting when the editor fails to write a tag, with 240 proper GUI error, so that such error do not go unseen. 241 * Better error handling when closing the editor or viewer too, and 242 improve error handling when the calendar dialog fails. 243 * Use a logging domain for debugging-only messages which pollutes 244 the output. 245 * Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:* override the shorter 246 forms Xmp.iptc.Ci* if both are present, since the longer form is 247 more common. 248 * Improve saving of XMP metadata. 249 * And more bug fixes and refactoring steps to get rid of duplicate 250 code. 251 - PNG will now prompt only for layer offset different from zero. Some 252 software were always setting an offset of 0 (e.g.: POV-Ray v3.7) so 253 GIMP would unecessarily prompt the user until now for PNG created by 254 such software. 255 - BMP: 256 * allow loading of BMP images with incorrect BI_BITFIELDS 257 compression. 258 * support loading more bit depth such as 24bpp images. 259 - file-darktable: 260 * support updated Lua API of darktable 3.6 and beyond; 261 * Adding environment contents to debugging output when 262 DARKTABLE_DEBUG env variable is set. 263 - PDF import: 264 * New option to reverse order of layer. 265 * Support fractional DPI (allowing accurate page dimensions). 266 - DDS: 267 * Set blue channel of BC5 dds images to 0 instead of 255. 268 * Fix DDS BC5 compression/decompression with Red and Blue swapped. 269 We detect images created by an older GIMP on loading and swap the 270 channels back. 271 - HEIF: 272 * Removes the "HDR" mention on HEIF 10/12-bit export because high 273 bit depth does not necessarily means HDR. 274 * Runtime detection of HEIC and AVIF file formats (depending on 275 available encoders and decoders), which allows afterwards update 276 of the dependency, but also allows usage for a single format (e.g. 277 for distributions which want to support only AVIF). 278 * With libheif 1.10, visually lossless export is possible for 279 10/12 bit depths too 280 - PSD: 281 * More flexible reading of layer mask record size, skipping invalid 282 or unsupported mask info size, hence allowing us to load more PSD 283 files (at least the part of a PSD we support instead of failing 284 the whole import altogether). 285 - G3 fax images: 286 * Improve error handling when loading. 287 * Be more forgiving on bad lines which were quite frequent on older 288 fax images, allowing to salvage some old images. 289 290Build: 291 292 - Some configure fixes for autoconf-2.70 support. 293 - Adwaita's legacy "software-update-available" icon is now bundled 294 with GIMP to handle the possibility of them being absent from your 295 system theme (typically it was missing on our Windows build). 296 297Installer: 298 299 - New Slovak translation. 300 301Translations: 302 303 - Kabyle translation added. 304 305Build: 306 307 - Bumping minimum GEGL to version 0.4.30. 308 309 310Overview of Changes from GIMP 2.10.20 to GIMP 2.10.22 311===================================================== 312 313Core: 314 315 - Verbose version information (`gimp-2.10 -v` on command line, or 316 debug output) now displays Flatpak related information when 317 available. This is especially useful for debugging (such as the 318 exact Flatpak build hash, the runtime version, the installed 319 Flatpak extensions, permissions, etc.). 320 - OpenCL settings has now been moved to the Playground tab in 321 Preferences. 322 - On stable builds, "Playground" tab is now visible in Preferences if 323 any of the experimental features has been enabled, even without the 324 CLI option `--show-playground`. 325 326Tools: 327 328 - "gegl:matting-levin" now the default engine of Foreground Select 329 tool (when present, as it is an optional feature) as it performs a 330 lot better. 331 - GEGL operations now display a "Sample merged" checkbox in Tool 332 Options. This will be used when the operation allows to pick a color 333 (hence one can pick from the edited layer or from visible data). 334 - "Sample merged" now defaults to being activated in Color Picker and 335 GEGL tools as it seems the less confusing for beginners who don't 336 know of the option yet (according to a small poll we ran). 337 338User interface: 339 340 - In GimpSpinButton, don't propagate Enter key-press events if 341 updating the spin-button's value in response changes the entered 342 text. This prevents confirming dialogs when hitting Enter after 343 entering a math expression in size entries, updating their value 344 instead. 345 Likewise, don't propagate Escape key-press events if a new value was 346 entered, and restore the original value instead. 347 - GimpMemSizeEntry improved to show appropriate binary prefixes 348 (kibibyte, mebibyte and gibibyte) instead of decimal ones, to round 349 properly when using higher units, and to not lose accuracy when 350 possible when displaying in higher units. 351 - Several of the biggest pages of the Preferences dialog are now 352 scrollable, allowing the dialog to fit on smaller displays. 353 354Plug-ins: 355 356 - Add a new GIMP_EXPORT_NEEDS_CROP export capability, which causes 357 gimp_export_image() to crop the exported image content to the image 358 bounds; this is useful for formats that support layers, but have no 359 concept of global image bounds, hence cropping is the only way to 360 enforce the image bounds. 361 When showing the export dialog, give an option to either crop the 362 layers to the image bounds, or to resize the image to fit the 363 layers. 364 - Content type `image/webp` is now recognized (and not only 365 `image/x-webp` as both seem to be in used and this format is 366 unfortunately not yet listed in IANA media types (so various content 367 types are in use, no clear standard apparently). 368 - DDS import is now a bit more permissive, allowing to load some files 369 with invalid header flags regarding compression, while we are able 370 to know the right compression from other flags. This allows to 371 recover invalid DDS files exported by other software. 372 - JPEG detection improved to be more generic and reliable. 373 - HEIF support improvements: 374 - AVIF importing and exporting added (requires libheif 1.8.0+) 375 - 10/12-bit importing and exporting now available for HEIC/AVIF 376 - NCLX color profile import (link with LittleCMS) 377 - Metadata support when importing 378 - "Lossless" option is now called "Nearly lossless (YUV420 format)" 379 because this is actually what it is, hence previous naming was 380 misleading. 381 - TIFF support improvements: 382 - Add an option to crop the layers to the image bounds when exporting 383 individual layers (using GIMP_EXPORT_NEEDS_CROP), since TIFF has no 384 concept of global image bounds otherwise. Cropping is enabled 385 by default. 386 - TIFF export will not override "DocumentName" metadata tag anymore. 387 - Stop writing file paths into TIFF DocumentNames as file paths can 388 contain confidential information such as usernames and directory 389 structures, making the previous behaviour a potential privacy and 390 security risk. 391 - Fix a file descriptor leak case which may have prevented a file 392 from being opened on Windows. 393 - Multiple improvements in the PSP import plug-in: 394 - support reading raster layers of PSP version > 6, 395 - support reading 16-bit integer PSP files, 396 - support reading grayscale and indexed PSP files, 397 - support PSP images with zero-length layer names, 398 - fix wrong layer offset of layers, 399 - fix reading layer names with high bit ASCII characters, 400 - fix incorrect loading of PSP images with uncompressed channel data, 401 - fix reading of creator block data of PSP images, 402 - better error messages describing yet unsupported features, 403 - improve reader stability by always using the block/chunk length. 404 - Spyrogimp now works on Grayscale images and clutters less the undo 405 history. 406 - "Orientation" metadata is now reset whether you accepted to rotate 407 the image or not when importing an image. 408 - XPM does not export a "None" (transparent) color when unused. 409 - BMP always include color masks when exporting BMP with color space 410 info, as mandated by BITMAPV5HEADER specification. 411 412Debugging: 413 414 - Add progressive performance logs: progressive logs contain complete 415 information after each recorded sample, by writing partial address 416 maps at each sample, containing all new addresses introduced by the 417 sample. 418 This allows recording complete logs even in cases where they can't 419 be properly terminated, such as when GIMP crashes or freezes in the 420 middle of the log. 421 Progressive logs are disabled by default, since they potentially 422 increase the sampling cost. They can be enabled through a toggle 423 in the log file-dialog, or through GIMP_PERFORMANCE_LOG_PROGRESSIVE 424 environment variable. 425 Performance log viewer can now process progressive performance logs 426 too. 427 - Allow controlling performance-log parameters through the UI. 428 429Build: 430 431 - new `distcheck` step in Continuous Integration. 432 433Bug fixes: 434 435 #2275, #2668, #2874, #3481, #3868, #4061, #4155, #4328, #4505, #4536, 436 #4560, #4816, #5043, #5069, #5208, #5219, #5226, #5232, #5274, #5275, 437 #5357, #5358, #5472, #5530, #5584, #5592, #5623, #5630, #5651 438 439Translation updates: 440 441 - Basque, Catalan, Chinese (China), Croatian, Danish, French, German, 442 Italian, Japanese, Kazakh, Polish, Russian, Spanish, Swedish, Turkish, 443 Ukrainian 444 445Developers/contributors: 446 447 - Daniel a Simona Novomeská, David A. Russo, Elad Shahar, Ell, Jacob Boerema, 448 Jehan Pages, Liam Quin, lillolollo, luz.paz, Michael Natterer, Michael 449 Schumacher, Øyvind Kolås, Peter Oliver, Simon McVittie 450 451Translators: 452 453 - Alan01, Alexandre Prokoudine, Anders Jonsson, Asier Sarasua Garmendia, 454 Baurzhan Muftakhidinov, Boyuan Yang, Christian Kirbach, Daniel Mustieles 455 García, Jordi Mas, Julien Hardelin, Marco Ciampa, milotype, Rodrigo Lledó 456 Milanca, Piotr Drąg, Sabri Ünal, sicklylife, Stephan Woidowski, Tim Sabsch, 457 Yuri Chornoivan 458 459Overview of Changes from GIMP 2.10.18 to GIMP 2.10.20 460===================================================== 461 462Tools: 463 464 - Crop tool now has a "Delete cropped pixels" option active only in 465 image crop mode, allowing to choose whether to crop layers or only 466 the canvas (cropped pixels will be made invisible as out-of-canvas 467 but would still be present). The option is unchecked by default, 468 as it is the non-destructive behavior, which also means the 469 default behavior is changed. 470 - Crop tool in image crop mode will not crop layers with "Lock 471 pixels" on, anymore, even if "Delete cropped pixels" is checked. 472 - Painting tools can now restore opacity and blend mode from 473 presets. 474 475User interface: 476 477 - Image / Precision renamed to Image > Encoding 478 - Tool groups can now display their tool list on hover rather than 479 on click. This can be set in Preferences, in the Toolbox tab. 480 - Improved update notification GUI in About dialog, and now also 481 showing an update comment when one was set in gimp_versions.json. 482 - Palette Editor dockable: the color index in the current palette is 483 now shown in front of the color name. 484 485Plugins: 486 487 - In file-psd, make the data_start and data_len fields of the 488 PSDimageres and PSDlayerres structs unsigned, to avoid potential 489 overflow/sign-extension 490 - file-raw: Canon CR3 files are now properly recognized by GIMP and 491 sent to your raw developer software of choice. 492 - PNG and TIFF export: "Save color values from transparent pixels" 493 defaults now to not saving color values (i.e. channels set to 0) 494 when alpha channel is present and 0 itself. 495 - PDF import: multi-pages are now imported in bottom-first order, 496 similar to animated formats, and also similar to defaults for PDF 497 export. This brings consistency but break existing behavior, hence 498 needs to be noted. 499 - Added support for exporting 16-bit PSDs, read and write channels 500 from/to PSd in the right order 501 502Filters: 503 504 - The 'Vignette' filter now has on-canvas controls 505 - New 'Filters -> Blur -> Focus Blur' filter with on-canvas controls 506 to emulate out-of-focus blurring 507 - New 'Filters -> Blur -> Variable Blur' filter that uses an aux 508 mask input to blur an image with variable intensity 509 - New 'Filters -> Light and Shadow -> Bloom' filter 510 511Updated translations: 512 513 - British English, Catalan, Chinese (Taiwan), Dutch, Finnish, 514 German, Greek, Italian, Korean, Polish, Romanian, Russian, 515 Spanish, Swedish, Turkish, Ukrainian 516 517Icons: 518 519 - Replace fileicon.ico with version contain 24x24, 64x64, 128x128, 520 and 256x256 sizes for Windows icon 521 - Replace wilber.ico with version containing 128x128 size of Windows 522 icon 523 524Bug fixes: 525 526 - #189, #354, #872, #1439, #3405, #3533, #3558, #3777, #3841, #4094, 527 #4328, #4363, #4487, #4618, #4641, #4663, #4696, #4734, #4745, 528 ##4793, 4827, #4846, #4858, #4871, #4895, #4904, #4919, #4967, 529 ##4968, #4992, 4996, #5009, #5010, #5033 530 531Developers: 532 533 - Ell, Jehan, lillolollo, Marco Ciampa, Michael Natterer, Øyvind 534 Kolås, pesder, Salamandar, Sergio Jiménez Herena, Simon Budig, T 535 Collins, woob 536 537Contributors: 538 539 - Nikc, Sabri Ünal, Michael Schumacher, Jernej Simončič, luz.paz 540 541Translators: 542 543 - Alexandre Prokoudine, Anders Jonsson, Bruce Cowan, Cristian 544 Secară, Daniel Korostil, Daniel Șerbănescu, Dimitris Spingos, Jiri 545 Grönroos, Jordi Mas, Nathan Follens, Piotr Drąg, Rodrigo Lledó 546 Milanca, Sabri Ünal, Seong-ho Cho, Tim Sabsch, Yuri Chornoivan, 547 Георгий Тимофеевский 548 549 550Overview of Changes from GIMP 2.10.16 to GIMP 2.10.18 551===================================================== 552 553Core: 554 555 - In gimp:replace, when compositing the same content over itself, 556 i.e., when the input and aux buffers share the same storage and 557 same tile alignment, pass the input buffer directly as output, 558 instead of doing actual processing. In particular, this happens 559 when processing a pass-through group outside of its actual bounds. 560 561User interface: 562 563 - Add new Symbolic-High-Contrast and Symbolic-Inverted-High-Contrast 564 themes, which are automatically-generated high-contrast variants 565 of the (original) Symbolic theme. The contrast factor is settable 566 in the makefile, and is currently at 1.5 for both themes. 567 568 - Rename tools/invert-svg to tools/svg-contrast, which now takes a 569 contrast-factor argument, and adjusts the input SVG contrast, 570 instead of just inverting it. Note that we can still use the tool 571 to invert icons, using a contrast of -1. 572 573 - Allow horizontal scrollbars in all the Preferences dialog tree- 574 views, so that they don't limit the minimal width of the dialog 575 (in particular, the UI- and icon-theme tree-views may contain 576 arbitrarily-long paths). 577 578 - Draw a border around the color FG/BG color areas as a pair of 579 black and white rectangles instead of letting GTK do this. This 580 imporoves the legibility of borders, especially in dark themes. 581 582Tools: 583 584 - In GimpPaintTool, when not snapping brush outline to stroke, make 585 sure to properly snap the cursor position to 15-degree angle 586 multiples in line mode, not only when painting the line, but also 587 during motion. 588 589Plug-ins: 590 591 - Add naive support for CMYK 8-bit PSD files 592 593Updated translations: 594 595 - Basque, Catalan, Danish, Polish, Spanish, Swedish, Ukrainian 596 597Bug fixes: 598 599 - #4643, #4634 600 601Developers: 602 603 - Ell, Massimo Valentini 604 605Translators: 606 607 - Alan Mortensen, Anders Jonsson, Asier Sarasua Garmendia, Daniel 608 Korostil, Jordi Mas, Piotr Drąg, Rodrigo Lledó Milanca 609 610 611Overview of Changes from GIMP 2.10.14 to GIMP 2.10.16 612===================================================== 613 614Core: 615 616 - In gimp_gegl_apply_cached_operation(), use gint64 for storing the 617 total and processed pixel counts used for reporting progress, to 618 avoid overflowing when applying an operation to a large image. 619 620 - In GimpFilterTool and gimp_drawable_apply_operation(), use 621 gimp_drawable_filter_set_add_alpha() to add an alpha channel when 622 applying an operation that specifies "needs-alpha" to a drawable 623 that can have alpha. 624 625 - In GimpFilterTool, move all the drawable-filter option setup to a 626 new gimp_filter_tool_update_filter() function, and call it 627 whenever the drawable-filter's options need to be updated. This 628 avoids duplicating logic in various places. 629 630 - Improve the efficiency of decoding RLE data when loading ABR 631 brushes, by reading entire scanlines into a buffer all-at-once, 632 instead of reading the stream byte-by-byte. 633 634 - GIMP now optionally phones home to find out if there's a new 635 version available and then tells the user if there is one 636 indeed. It also keeps track of the installer revision and then 637 warns if there's a newer installer available. This can be disabled 638 in Preferences. In that case, users still have the option to 639 manually check for an update via the About dialog. The feature can 640 be disabled entirely with the '--disable-check-update' configure 641 switch. 642 643Tools: 644 645 - New 3D Transform tool where you can set vanishing point, camera's 646 focal length, and the move and rotate layer, selection, path, or 647 image in 2.5 space. With the "Unified interaction" option enabled, 648 all three interaction modes of the grid (camera, move, and rotate) 649 are available simultaneously. In this mode, the inner and outer 650 regions of the item are used for moving and rotation, respectively, 651 and the vanishing point is controlled through through a handle. 652 653 - Transform tools now respect the Clip option and update the canvas 654 preview accordingly. 655 656 - New "Composited preview" option allows respecting layer's blending 657 mode and position in the layer stack rather than rendering it as 658 an overlay on top of the overall layer stack. This simplifies 659 creating complex layer compositions greatly. The option requires 660 mipmaps to be used and thus is disabled by default. It also comes 661 with an experimental "Synchronous preview" suboption to render the 662 composited preview synchronously. This reduces the lag for 663 painting the preview, but can harm responsiveness for bigger 664 images, where rendering the preview is slow. 665 666 - Add a new "Preview linked items" option to the transform-grid 667 tools. When this option is enabled, together with composited 668 previews, the transform preview includes all linked layers and 669 channels when transforming a layer/channel. Paths are currently 670 unsupported. 671 672 - New widget called GimpPivotSelector, a 3x3 grid of toggle buttons, 673 is now used for selecting a natural pivot position (e.g. for a 674 transform) relative to an item: its center, its corners, and the 675 midpoints of its edges. Currently used in Rotate and 3D Transform 676 tools. 677 678 - Add "Show all" support to the Bucket Fill tool in line-art mode 679 680 - Color picker and sample points now support displaying values in 681 Yu'v' (CIE 1976 UCS) color space. 682 683 - The Symmetry Painting dock now has an "Enable reflection" option 684 that allows painting patterns resembling a kaleidoscope. 685 686 - Transform clipping is temporarily disabled for layer groups. No 687 preview other than 'Adjust' works anyway. This will be fixed later 688 on. 689 690 - Construct a box-filtered mipmap hierarchy for the original brush 691 on-demand, and the closest mipmap is used as the resampling source 692 for downscaled brushes, significantly improving the output 693 quality. 694 695 - Now that painting is done in a separate thread, the display update 696 rate has a far smaller impact on it. Increase the GimpDisplay 697 update rate, which handles image updates, to 60 FPS, and the 698 GimpDrawTool update rate to 120 FPS. In particular, the latter 699 change makes the brush outline motion much smoother. 700 701 - In the Airbrush tool, increase the maximal stamp FPS from 15 to 702 60, and change the corresponding maximal Rate value from 150 to 703 100. This technically affects tool presets, but we'll live. 704 705 - Add a new "Snap brush outline to stroke" toggle to the "Image 706 Windows" preferences page. When enabled, the brush outline in 707 paint tools snaps to the individual dabs while painting, which is 708 how it worked before version 2.10.16. Disable the option by 709 default. This seems to be what most other programs are doing, and 710 it does give paitning a smoother feel. 711 712 - The Warp Transform tool now respects settings for painting tools: 713 showing the brush outline, snapping to dabs, and showing the paint 714 tool cursor. 715 716UI: 717 718 - Tools are now logically grouped in the toolbox by default. Users 719 can customize the groups to their liking or disable this feature 720 altogether in the Preferences dialog (Interface / Toolbox page). 721 722 - New opt-out compact style for sliders with revamped interaction. 723 The widget uses a narrower layout, and the different 724 upper/lower-half behavior is gone. Instead, the behavior depends 725 on the mouse button and modifier used: 726 727 - left-click is used for absolute adjustment, 728 - Shift + left-click + drag changes value in small increments, 729 - Ctrl + left-click + drag changes value in large increments, 730 - middle-click enables numeric input mode; 731 - right-click enables numeric input mode and selects the value. 732 733 - The "You can drop dockable dialogs here" message is gone from the 734 toolbox for good. Instead, highlight dockable areas when a user 735 starts dragging a dockable dialog, and intensify the highlight as 736 the dialog goes over a dockable area. 737 738 - Consolidate UI for merging down and anchoring layers: 739 As they are both mutually exclusive and serve an almost identical 740 purpose, the "Merge down" and "Anchor Layer" are given mutually 741 exclusive visibility in menus, and the anchor button is replaced 742 with a merge down button in the Layers dockable whenever there is 743 no active floating selection. Modifier keys are available: 744 745 - Shift: merge layer group 746 - Ctrl: merge visible layers 747 - Ctrl + Shift: merge visible layers from last used values 748 749Plugins: 750 751 - In plug_in_compat.pdb, when wrapping an op node inside a graph, 752 set the op node as the graph node's underlying operation. This 753 allows gimp_gegl_apply_operation() to perform certain 754 optimizations. 755 756 - The Spyrogimp plugin now features a Visual tab where the inner 757 mechanics of a spirograph is abstracted away, and you operate on 758 amount of petals etc. The plugin now also allows saving a pattern 759 as a path rather than rendering it to a layer as a bitmap. 760 761 - Improve the loading speed for PSD files, mostly by eliminating 762 excessive copies. 763 764Filters: 765 766 - Don't disable gegl:color-to-alpha (which has "needs-alpha") 767 when the drawable doesn't have an alpha channel, if one can be 768 added. 769 770 - Don't disable color-to-alpha for grayscale drawable, since the 771 operation is applicable to grayscale images (in particular, it 772 doesn't add color where there was none), and since GIMP no longer 773 distinguishes between layers and channels according to the 774 drawable format when updating the filters actions. 775 776Windows: 777 778 - Installer: unofficial languages, ghostscript 9.50. 779 - Installer: skip .debug files when they don't exist. 780 - Installer: properly remove old icons on 32-bit installs and 781 per-user installs. 782 783macOS: 784 785 - Set required variables if it is running from Apple application 786 bundle. 787 - The macOS build now ships with the dashboard dock for displaying 788 performance graphs. 789 790Updated translations: 791 792 - British English, Catalan, Danish, French, German, Hungarian, 793 Icelandic, Italian, Japanese, Polish, Russian, Spanish, Swedish, 794 Turkish, Ukrainian. 795 796Bugfixes: 797 798 - #4172, #4194, #4205, #4218, #2543, #4185, #4246, #2794, #4209, 799 #4278, #4372, #4187, #4392, #2674, #4338, #2862, #4203, #4204, 800 #4354, #1266, #4584, #4174, #4285, #4366, #1975, #4605 801 802Developers: 803 804 - Alex Samorukov, Cyril Richard, Elad Shahar, Ell, Elle Stone, 805 Jehan, Jernej Simončič, lillolollo, Massimo Valentini, Michael 806 Natterer, Pascal Terjan, woob. 807 808Translators: 809 810 - Alan Mortensen, Alexandre Prokoudine, Anders Jonsson, Balázs 811 Meskó, Balázs Úr, Bruce Cowan, Daniel Korostil, Jordi Mas, Julien 812 Hardelin, Marco Ciampa, Piotr Drąg, Rodrigo Lledó Milanca, Ryuta 813 Fujii, Sabri Ünal, sicklylife, Sveinn í Felli, Tim Sabsch, Zander 814 Brown. 815 816 817Overview of Changes from GIMP 2.10.12 to GIMP 2.10.14 818===================================================== 819 820Core: 821 822 - New "Selected areas continue outside the image" toggle option to 823 the "Feather Selection" dialog. 824 - New "Allow editing on non-visible layers" setting in Preferences 825 to allow painting, transforming, and selecting on layers with 826 toggled off visibility. 827 - XCF loading a bit more resilient to corruption: it doesn't stop 828 any more at the first layer or channel error; instead it tries to 829 load more layers/channels to salvage as much data as possible from 830 a corrupted XCF file. 831 - In gimp:gradient, fix dithering to correspond to how we actually 832 round float values to 8-bit. In particular, this avoids 833 introducing noise when a component is fixed at 0 or 1 along a 834 segment. 835 - New "Show All" view mode allowing to show pixels outside the 836 canvas boundary. 837 - New "Show Canvas Boundary" option to render a dotted line around 838 the canvas boundary. 839 - New "Keep Padding in "Show All" Mode" option, also available as a 840 default option via Preferences, to preserve the padding color 841 instead of displaying the checkerboard. 842 - Several features updated to react as expected when run 843 out-of-canvas: color-picking, canvas grid, transform tools, bucket 844 fill, and more. 845 - Loaded images' pixel density will now default to 72 PPI when no 846 explicit resolution information was stored in the imported file. 847 Newly created images' default pixel density will continue to be 848 based on the default image template (with value 300 PPI if it has 849 not be changed), yet not loaded images anymore. 72 PPI is the 850 common default in most software (and in standards such as Exif) so 851 it makes sense we stick to it, only for loaded images. 852 853Tools: 854 855 - Free Select tool: fast copy|cut-paste modifiers (Alt + Ctrl|Shift) 856 are now working even when the selection is not committed. Starting 857 a fast copy|cut-paste will automatically close the polygon and 858 commit the selection, accelerating fast usage of free selections. 859 - Foreground Select tool: new "Grayscale" Preview Mode. Also, a 860 color selector for "Color" preview (original preview mode) now 861 available, to select any color and opacity for the preview. 862 - Add a new "Image" transform type to the transform tools, in 863 addition to the existing "Layer", "Selection", and "Path" 864 transform types. The "Image" mode transforms the entire image, 865 rather than a single item. In tools with a preview, the preview 866 shows the transformed image projection. The clipping mode 867 controls how the canvas is clipped during the transform; in 868 particular, the ADJUST clipping mode resizes the canvas to fit its 869 transformed size. 870 - In GimpFilterTool, add a new "clipping" option, which can be 871 either Adjust or Clip. This option is controllable for layers, 872 when there's no selection mask. 873 When set to Adjust, which is used by default, the filter's output 874 may extent past the drawable's boundary, and the drawable will be 875 resized to match the output when committed. 876 - Gradient tool: offset support in shaped gradients 877 878Plug-ins: 879 880 - Simple 8-bit port of filters to GEGL: nl-filter, film, 881 fractal-explorer, flame, blinds, jigsaw, gradient-flare, 882 checkerboard, tile-small, curve-bend, sample-colorize, map-object, 883 lighting, grid, despeckle, sphere-designer, contrast-retinex, hot, 884 sparkle, cml-explorer, destripe, twain, animation-optimize, 885 depth-merge, warp, imagemap, gimpressionist 886 - Port of filters to GEGL with float support: van-gogh-lic. 887 - Add color profile support for HEIF (only when libheif 1.4.0 is 888 available). 889 - TIFF import will now ask (in interactive mode) how to process 890 unspecified TIFF channels: non-premultiplied (used to be the 891 default) alpha, premultiplied alpha, or just import as generic 892 channel. 893 - HEIF export now improved with same profile logics as JPEG or WebP 894 (it can actually export higher bit-depth data, so profile logics 895 should be the one as in PNG, but we only support 8 bpc HEIF for 896 the time being). 897 - HEIF export dialog now has a "Save color profile" checkbox 898 allowing to not export with a profile when needed (needs libheif 899 1.4.0 or higher). 900 - PDF exporting: text layers in layer groups are now exported as 901 proper text. 902 - Cleaned up the file-dds GUI, removed the "Advanced" expander. 903 - gimptool external tool now install plug-ins into subfolders (this 904 is not mandatory in GIMP 2.10 yet, unlike future GIMP 3, but is 905 already the recommended folder structure for plug-ins). 906 - 3 procedures ("color-decode-ycocg", "color-decode-ycocg-scaled" 907 and "color-decode-alpha-exp") removed from file-dds plug-in 908 because they are hacks which should stay internal to the plug-in 909 and are semantically wrong because colors in drawables are never 910 in such formats. 911 912Filters: 913 914 - New "Normal Map" filter to generate normal maps from height maps 915 in the Generic section. 916 - Replace old filters with GEGL operation counterparts: edge-neon 917 (gegl:edge-neon), contrast-normalize (gegl:stretch-contrast), 918 oilify (gegl:oilify) 919 - Add gegl:bayer-matrix and gegl:linear-sinusoid to Filters -> 920 Render -> Pattern. 921 - Add gegl:newsprint to Filters -> Distorts. 922 - Add gegl:mean-curvature-blur to Filters -> Blur. 923 924Performance: 925 926 - Add an active-thread variable to the dashboard's misc group, 927 showing the number of active worker threads. 928 - Reduce time complexity of layer-group translation. When 929 translating a layer group, avoid separately updating the original 930 area of the child layers before translating them (as per the fix 931 to issue #3484), as this results in quadratic time complexity 932 w.r.t. to the maximal subgroup nesting level. Instead, simply 933 defer the updating of the group's offset until *after* translating 934 the child layers, so that their original area isn't clipped by the 935 parent, while their new area is still properly updated even if the 936 parent's size changes. 937 938User interface: 939 940 - Many mnemonics added in various dialogs. 941 - Add a gimp-rotate-image-arbitrary action, and a corresponding 942 "Image -> Transform -> Arbitrary Rotation..." menu entry, which 943 activates the rotate tool in image mode (similarly to the 944 corresponding action for layers). 945 - On Windows, minimized GIMP window is now deiconified when GIMP is 946 run again (clicking its shortcut or otherwise). 947 948Preferences: 949 950 - New "Swap compression" option: explicit control over the tile-swap 951 compression algorithm in GEGL. "Best performance" is used by 952 default, "Balanced", "Best compression", and "None" (disables 953 compression) are available. 954 955Devel docs: 956 957 - Update the libgimpconfig and libgimpbase docs. 958 - Update docs with missing symbols and types. 959 - New docs for structs and enums. 960 961Installers: 962 963 - Install 64-bit Python on 64-bit Windows (until now, the installer 964 used to install 32-bit Python for all architectures). 965 - Windows installer now supports per-user install. 966 967Debugging: 968 969 - New mnemonic-clashes tool to help looking for mnemonic clashes. 970 971Translations: 972 973 - Basque, Brazilian Portuguese, British English, Catalan, Chinese 974 (Taiwan), Croatian, Danish, Dutch, French, German, Greek, 975 Hungarian, Icelandic, Indonesian, Italian, Latvian, Polish, 976 Russian, Slovenian, Spanish, Swedish, Turkish. 977 978Bugfixes: 979 980 - #3630, #3226, #3610, #1725, #3093, #3599, #3597, #3082, #3553, #3435, 981 #3503, #3532, #3164, #3560, #3500, #3493, #3514, #3512, #2685, #3641, 982 #1002, #360, #3263, #2221, #3893, #2708, #3100, #2873, #3655, #2206, 983 #3341, #3718, #3763, #3112, #3723, #4049, #4068, #3663, #4119, #4008, 984 #2837, #3994, #3990, #1283, #2561 985 986Code contributors: 987 988 Alexandre Prokoudine, Ell, Federico Mena Quintero, Jehan, Jernej 989 Simončič, Lionel, Massimo Valentini, Michael Natterer, Michael 990 Schumacher, Oleksii Samorukov, Sabri Ünal, Sergio Jiménez Herena, 991 Thomas Manni, lillolollo, sarah, woob, Øyvind Kolås. 992 993Translators: 994 995 Alan Mortensen, Alexandre Prokoudine, Anders Jonsson, Andika 996 Triwidada, Asier Sarasua Garmendia, Balázs Meskó, Balázs Úr, Bruce 997 Cowan, Claude Paroz, Daniel Mustieles García, Dimitris Spingos, 998 Emin Tufan Çetin, Hannie Dumoleyn, Jordi Mas, Julia Dronova, Julien 999 Hardelin, Marco Ciampa, Martin Srebotnjak, Milo Ivir, pesder, Piotr 1000 Drąg, Rafael Fontenelle, Rodrigo Lledó Milanca, Rūdolfs Mazurs, 1001 Sabri Ünal, Sveinn í Felli, Tim Sabsch, Zander Brown. 1002 1003 1004Overview of Changes from GIMP 2.10.10 to GIMP 2.10.12 1005===================================================== 1006 1007Core: 1008 1009 - Add an "Incremental" option to the Dodge/Burn tool, which, 1010 similarly to the Paintbrush, Pencil, and Eraser tools, applies the 1011 effect incrementally as the pointer moves. 1012 - Curves now have a concept of smooth vs corner points: smooth 1013 points produce a smooth curve, while corner points produce a sharp 1014 curve (previously, all points were smooth). 1015 - Search the user font directory path on Windows (since Windows 10, 1016 non-admin users have the ability to install fonts). This is only a 1017 temporary hack until fontconfig adds proper upstream support: 1018 https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/144 1019 - In gimp_brush_core_get_paint_buffer(), when allocating a new paint 1020 buffer, clear the old buffer *before* allocating the new one, to 1021 reduce the amount of simultaneously allocated memory. 1022 - In GimpPaintbrush, avoid refilling the paint buffer at each dab if 1023 the paint color/pixmap hasn't changed, hence allowing faster 1024 painting in some specific cases. 1025 - Add hygon cpu detection and enable MMX/SSE support. 1026 - Add a GimpSymmetry::get_transform() virtual function and a 1027 corresponding gimp_symmetry_get_transform() function which return 1028 the brush transform corresponding to a given symmetry stroke in 1029 terms of the rotation angle and reflection flag (in contrast to 1030 gimp_symmetry_get_operation() which returns the same transforation 1031 in terms of a GeglNode). This allows us to simplify, fix (artifact 1032 bugs, etc.), and improve the painting-code performance for several 1033 symmetry painting cases. 1034 - New gimp-brush-pipe-spacing parasite set by core code to preserve 1035 GIH brush's spacing across reloads. 1036 - Add a new Offset filter tool, as a front-end to gimp:offset. The 1037 tool replaces, and provides the same interface as the drawable- 1038 offset dialog while also providing live preview and on-canvas 1039 interaction. 1040 1041Plug-ins: 1042 1043 - Exported profile and data format strategy updated in several file 1044 plug-ins. 1045 1046 * When not saving a profile, we always export as sRGB data, as most 1047 viewers would not display the image properly otherwise. 1048 * When saving a profile: 1049 * If a profile was manually assigned, we always export to the 1050 assigned format, hence pixel data is converted accordingly, 1051 whatever the work format. 1052 * If no profile was assigned: 1053 * If the export format support high-bit depth, we export the 1054 work format as-is. 1055 * If the export format is 8-bit max, we convert the work 1056 format to sRGB, except if the work format is 8-bit linear. 1057 1058 The following plug-ins were updated: JPEG, PNG, TIFF and WebP. 1059 1060 - TIFF plug-in now supports layer export. 1061 - Add accelerator on "Save color _profile" item in JPEG export so 1062 that all items in the dialog have keyboard accelerators. 1063 - Add a "Save color profile" checkbox in WebP export and remove the 1064 "Advanced Options" expander (all metadata and profile writing 1065 options are now directly visible). 1066 - Process cases of non-conformant TIFF file with extra channels 1067 while ExtraSamples is not set by assuming the first extra channel 1068 is a non-premultiplied alpha channel and outputting a warning. In 1069 the future, this should be updated further by a dialog asking what 1070 to do with the non-defined dialog (consider as premultiplied or 1071 non-premultiplied alpha channel, or just save as extra channels). 1072 1073Tools: 1074 1075 - Add input/output spin-buttons to the Curves tool, which allow 1076 setting the selected point's coordinates numerically. When the image 1077 precision is greater than 8-bpc, use a 0.00-100.00 range for the 1078 point-coordinate spin-buttons instead of a 0-255 range. 1079 - In the Curves tool, allow changing the curve's point types (cf. new 1080 curve corner points in Core section). Corner points are displayed 1081 with a diamond shape instead of a circle. 1082 - Free Select tool now creates a selection as soon as the polygon is 1083 closed. This selection is updated when the polygon, or the relevant 1084 tool-options, change, similarly to GimpRectangleSelectTool. 1085 - Derive GimpEraser from GimpPaintbrush, instead of directly from 1086 GimpBrushCore. 1087 This allows GimpEraser to reuse the paint-buffer content across 1088 dabs, improving performance. 1089 - Allow moving an intersecting pair of guides with the Move tool. 1090 1091User interface: 1092 1093 - In GimpCurveView, when dragging an existing curve point, don't 1094 immediately move the point to the cursor position upon button 1095 press, but rather move it relative to its current position as the 1096 cursor moves. This allows selecting a point without moving it, and 1097 adjusting its position more easily. 1098 - when the cursor hovers above a point in GimpCurveView, or when 1099 dragging a point, have the coordinate indicator show the point's 1100 position, rather than the cursor's. 1101 - In GimpCurveView, when holding down Ctrl while adding/dragging a 1102 point, snap the y-coordinate to the original curve (at the start 1103 of the drag). This is particularly useful for adding points along 1104 the curve. 1105 - In GimpDashboard, don't show legend for groups with no meter. 1106 - Add a tile-alloc-total variable to the dashboard's memory and misc 1107 groups, showing the total amount of memory used by the tile 1108 allocator. 1109 - Add a "Save Keyboard Shortcuts Now" button to the Configure 1110 Keyboard Shortcuts dialog. 1111 1112Installers: 1113 1114 - Windows: enable InnoSetup "unofficial" translations. Otherwise we 1115 had a bunch of wasted work from our translators of several 1116 languages whose translations were never used in the installer. 1117 1118Translations: 1119 1120 - 12 translations were updated: Catalan, Chinese, French, German, 1121 Hungarian, Indonesian, Italian, Polish, Russian, Spanish, Swedish 1122 and Turkish. 1123 1124 1125Overview of Changes from GIMP 2.10.8 to GIMP 2.10.10 1126==================================================== 1127 1128Core: 1129 1130 - Add gimp-scratch allocator, a fast memory allocator (on the order of 1131 magnitude of alloca()), suitable for small (up to a few megabytes), 1132 short-lived (usually, bound to the current stack-frame) allocations. 1133 Unlike alloca(), gimp-scratch doesn't use the stack, and is therefore 1134 safer, and will also serve bigger requests, by falling-back to malloc(). 1135 - In gimp_drawable_transform_buffer_affine(), avoid modifying the 1136 clipping mode when transforming layer masks, since this function 1137 is used (among other things) to transform layer masks together with 1138 their layer, in which case they should use the same clipping mode 1139 as the layer. This fixes a regression introduced by commit 2ae823ba, 1140 causing layer masks to be transformed with a mismatched clipping mode 1141 during layer transforms, leading to discrepancies between the 1142 transformed layer and the transformed mask. 1143 - Moved swap/cache and temporary files out the GIMP user config dir and 1144 added new config file substitutions ${gimp_cache_dir} and 1145 ${gimp_temp_dir}. 1146 - Pass the GEGL tile-cache size, swap path, and thread-count to plug-ins 1147 as part of their config, and have libgimp set the plug-in's GeglConfig 1148 accordingly upon initialization. 1149 - Layer groups are now rendered in bigger chunks rather than tile-by-tile 1150 (which used to pretty much eliminate multithreading for groups), which 1151 improves the rendering speed. 1152 - Make saving/exporting files more robust to errors. In particular if 1153 an error occurs during the process (be it a bug, a memory error, or 1154 anything else), GIMP won't overwrite anymore any existing file with 1155 incomplete contents, so that you won't end up with no valid files at 1156 all. 1157 - Fix a regression on support of various graphics tablet. 1158 - Remove the "Edit -> Fade..." feature: it makes GIMP use two buffers 1159 instead of one (east into system resources), it's broken in 2.10, and 1160 we can make the UX better for filters. 1161 - New generic canvas modifier 'Alt + middle click' allowing to pick 1162 layers by clicking on pixels. The available layers will be looped 1163 through (starting from the upper one) while Alt key is hold and the 1164 picked layer name will be temporarily displayed in the status bar. 1165 - When clearing a channel, do nothing if the channel is already empty; 1166 otherwise, align the cleared rectangle to the channel buffer's tile 1167 grid, so that all affected tiles are dropped, rather than zeroed. 1168 Furthermore, only update the affected region of the channel. 1169 - Brush and pattern saving logics has been moved to core code (instead 1170 of plug-in). 1171 - Clipboard brushes and pattern can now be duplicated. 1172 - Parametric brushes are now 32-bit float to avoid posterization on 1173 large brushes. 1174 Note: raster brushes are still 8-bit and plug-ins only have access 1175 to 8-bit versions of high-precision brushes/patterns. New API will 1176 be required to handle high-precision data. 1177 - On-canvas preview while editing a color in the colormap of an 1178 indexed image. 1179 1180User interface: 1181 1182 - Enabled HiDPI/Retina support for the GTK2/OSX build, fixes blurry icons. 1183 - Add a tooltip to the "better compression" checkbox in save dialog to 1184 make it clearer it does not mean that the file size is necessarily 1185 smaller in every cases. In particular some best/worst case are 1186 possible when an algorithm less efficient in general may end up 1187 better on a particular image. 1188 - Add basic support for cursors with a scale factor of 2 for HiDPI 1189 (artwork to be updated). 1190 - Foreground and background color icons, as well as color history will 1191 now display out-of-gamut warning on indexed images for colors 1192 outside of the palette, as well as on grayscale images, for non-gray 1193 colors. 1194 - Pack color picker and hexadecimal entry on same line in Color dock. 1195 - Add an "Open as Image" button to the brushes dialog. 1196 1197Usability: 1198 1199 - Attempting to transform locked layers or paint on them now results in 1200 blinking around the status bar (where the warning message is displayed) 1201 and around the toolbar where lock toggles are. The same applies to 1202 attempting to move a selection where there is none — GIMP will blink 1203 around the toolbar where the moving target (layer, selection, path) 1204 is chosen. 1205 - GIMP now allows selecting default export file type for new projects. 1206 The choice is limited to PNG, JPEG, WebP, PSD, ORA, TIFF, BMP. 1207 - GimpSpinScale widget now has an optional feature to constrain the 1208 value to integer when dragging with a pointer (even if the scale 1209 allows for fractional numbers), set with new function 1210 gimp_spin_scale_set_constrain_drag(). 1211 This is useful for settings where fractional numbers are technically 1212 possible, yet most common use case are with integers (such as pixel 1213 sizes, angles in degrees, etc.) so you want the easy interface to be 1214 constrained. Fractional numbers are still settable, for instance by 1215 keyboard edit; and arrow incrementation won't drop fraction parts. 1216 This is currently only activated for brush options in paint tools. 1217 1218Tools: 1219 1220 - In scale tool, scale around center even when using numeric input. 1221 - New algorithm in the Bucket Fill tool when selecting the affected 1222 area "Fill by line art detection", based off the G'Mic algorithm for 1223 "smart colorization": https://hal.archives-ouvertes.fr/hal-01891876 1224 In a few words, it identifies painted pixels (either based on 1225 grayscale or opacity values) and tries to close line arts to allow 1226 filling even with not perfectly closed zones; the second step of the 1227 algorithm will flood the colors under line art pixels to prevent 1228 "holes" in the filling. 1229 It is possible to control a max size (in pixels) for the flooding, 1230 as well as max length of closing segments and splines. 1231 - The Bucket Fill tool got new interaction allowing to hold the click 1232 and move the mouse to fill based on several seed zones (for "Fill 1233 by line art detection" as well as "Fill similar colors"). You can 1234 now cancel the fill in progress with right click as in other tools. 1235 - The Bucket Fill tool now allows color picking with ctrl-click, same 1236 as every painting tool. It will pick either the foreground or 1237 background color depending on the selected Fill Type. The ctrl-alt 1238 modifier combination is also possible to pick the non-Fill Type 1239 color. 1240 - In the Bucket Fill tool, the Alt modifier will now switch to 1241 "FG color fill" when "Pattern fill" was set (instead of doing 1242 nothing). 1243 - In the Unified Transform tool, default to preserving aspect ratio 1244 when scaling up or down. 1245 - In the Healing tool, "Sample merged" now also work for the target 1246 pixels, allowing to draw in empty layers. 1247 - Selection by color is now parallelized, hence improving speed of the 1248 Select by Color tool (and any other processing which may share this 1249 piece of code now or in the future). 1250 - Add "Constrain handles" and "Around center" options to the 1251 perspective-transform tool's GUI, which are similar to the 1252 corresponding options of the unified-transform tool. 1253 - Improve color picking on indexed image to always select an indexed 1254 color corresponding to the picked pixel in the colormap. 1255 1256Plug-ins: 1257 1258 - file-pdf-save GUI now clearly indicates the order the layers will be 1259 used to make multi-page PDFs. 1260 - Add DDS loading/exporting plug-in originally developed by Shawn Kirst 1261 and Arne Reuter. 1262 - Rename the Guillotine plug-in to Slice Using Guides. 1263 - Add a new option saving a color profile when exporting PNG, JPEG, TIFF. 1264 Always save it when exporting to PSD. 1265 - Remove the "Advanced" expanders from the PNG and TIFF export dialogs. 1266 - Full rewrite of the Spyrogimp plug-in with much more options and 1267 better interaction. 1268 - Indexed TIFF with alpha channel now supported. 1269 1270Filters: 1271 1272 - Add on-canvas GUI (simple lines) for circular, linear, and zoom motion 1273 blur. 1274 1275Help: 1276 1277 - Link to the bugtracker directly from the Help menu, also link to the 1278 wiki and the roadmap. Remove the link to currently disabled 1279 registry.gimp.org. 1280 1281Installers: 1282 1283 - Windows: proper fix for libthai to stop GIMP from crashing in the 1284 Thai locale. 1285 1286Translations: 1287 1288 - Czech, Danish, French, Italian, Japanese, Marathi, Polish, Russian, 1289 Spanish, Swedish, Ukrainian. 1290 1291Build: 1292 1293 - Bumping GTK+ dependency to the micro update GTK+ 2.24.32 to handle 1294 several bugs on Windows (broken shortcuts on non-latin layouts and 1295 broken vector icons). 1296 1297 1298Overview of Changes from GIMP 2.10.6 to GIMP 2.10.8 1299=================================================== 1300 1301Core: 1302 1303 - Use adaptive chunk size in GimpProjection when rendering the 1304 projection asynchronously, rather than using a fixed chunk size. 1305 This provides a better trade-off between throughput and 1306 responsiveness dynamically, based on how fast the processing is. 1307 - Add xyY color space to the color spaces for sampling colors. 1308 1309Tools: 1310 1311 - In all selection tools, show error on attempt to 1312 subtract-from/intersect-with empty selection. 1313 - Fix text along path not working with vertical text. 1314 - Fix Text tool's frame position when undoing a move operation. 1315 - Streamline Text tool's drawing blocking/unblocking logic. 1316 - When moving a text layer using the text tool (through alt+drag), 1317 don't change the layer's box mode to "fixed", which is unnecessary, 1318 since the layer's size isn't affected. 1319 - Transform and deformation operations now maintain color for fully 1320 transparent pixels, making unerase and curves manipulation of alpha 1321 channel more reliable. 1322 - All transform tools now apply changes when you save or export/overwrite 1323 an image without pressing Enter first to confirm changes. 1324 - Heal, Dodge/Burn, Smudge, and Convolve tools now adjust the processed 1325 buffer and mask_buffer regions according to the changes made to the 1326 application region, as calculated by intersecting it with the 1327 drawable and mask extents. This fixes wrong application position 1328 when painting on a drawable whose origin is above/to the left of the 1329 image's origin, and there's a selection active. 1330 - New type of gradient interpolation called 'Step' for making multi-color 1331 hard-edge gradient fills. 1332 1333Plug-ins: 1334 1335 - Port all plug-ins to the new iterator API in GEGL. 1336 - Improve automatic detection of HEIC/HEIF files. 1337 - Improve RawTherapee discovery by looking up registry key (should 1338 become useful with RawTherapee 5.5 and more). 1339 1340Usability and UI: 1341 1342 - Compatibility information in the Save dialog is now more understandable. 1343 The minimum GIMP version for the XCF file is always written down when it 1344 is GIMP 2.8 or over. The list of features warranting the minimum version 1345 is now listed in an expander container rather than as tooltip, which 1346 makes it more discoverable. The warning on compression is now displayed 1347 as its own text under the checkbox and not as additional text to the 1348 minimum GIMP version label. 1349 - In all themes, fix the color of selected text, while editing a tree-view's 1350 item text (such as when renaming a layer), by overriding tree-view 1351 specific styling with the global text-entry style, for nested text entries 1352 inside tree-views. The text would previously use the same color as the 1353 selection background, making it unreadable. 1354 - Add option in the Windows menu to hide the image tab bar. 1355 1356CLI: 1357 1358 - New self-explanatory --enable-win32-debug-console CLI option 1359 1360Debugging: 1361 1362 - New GimpBacktrace API provides an interface for creating and 1363 traversing multi-threaded backtraces, as well as querying symbol 1364 information. Backends are available for Linux and Windows. 1365 - Performance log recording now available in the Dashboard dock. 1366 The log contains a series of samples of the dashboard variables, 1367 as well as the full program backtrace, when available. As such, 1368 it essentially acts as a built-in profiler, which allows us to 1369 correlate program execution with the information available 1370 through the Dashboard. 1371 - New performance-log-expand.py tool decodes a delta-encoded 1372 performance log by expanding the deltas, producing a log where 1373 each sample (and other relevant elements) contain complete 1374 information. The structure of expanded logs is identical to that 1375 of delta-encoded logs, the expanded log simply has no deltas. 1376 - New performance-log-resolve.py tool resolves symbol information 1377 in backtraces. The logs produced by GIMP only specify the program 1378 counter at each stack frame, providing an address-map to map 1379 program-counter addresses to actual symbols separately. This tool 1380 looks up each program-counter address in the address map, 1381 incorporating the relevant symbol information directly into the 1382 backtrace. 1383 - New performance-log-deduce.py tool that statistically deduces the 1384 correct thread states based on backtrace address frequency, fixing 1385 local inaccuracies. 1386 - New performance-log-viewer.py tool that is a viewer for GIMP 1387 performance logs, with a sample-selection area at the top and an 1388 information area at the bottom. The sample-selection area visualizes 1389 the sampled variables and markers using a simultaneous set of plots, 1390 and displays the currently selected samples. The information area 1391 shows global information stored in the log, as well as information 1392 specific to the currently selected samples, including variable listing 1393 and statistics, full backtrace, and profile/call-graph information. 1394 1395Translations: 1396 1397 - Updated translations: Danish, Dutch, Finnish, German, Hungarian, 1398 Italian, Marathi, Polish, Portuguese (Brazil), Russian, Spanish, 1399 Swedish, Ukrainian. 1400 1401 1402Overview of Changes from GIMP 2.10.4 to GIMP 2.10.6 1403=================================================== 1404 1405Core: 1406 1407 - Render drawable previews asynchronously. 1408 - Merge the file view filter and file format lists in GimpFileDialog. 1409 The presence of 2 lists was very confusing. 1410 - DLL search priority is now updated before running a plug-in on 1411 Windows, depending on the executable bitness. This gets rid of one 1412 of the last remnant of DLL hell in GIMP, which was when running 1413 32-bit plug-ins from a 64-bit build of GIMP. 1414 1415Filters: 1416 1417 - New "Little Planet" (gegl:stereographic-projection) filter. 1418 - New "Long Shadow" (gegl:long-shadow) filter. 1419 1420Tools: 1421 1422 - Halt the Measure tool after straightening. 1423 - Add an "orientation" option to the measure tool, corresponding to 1424 the "orientation" property of GimpToolCompass (i.e., it controls the 1425 orientation against which the angle is measured, when not in 3- 1426 point mode.) The orientation is "auto" by default, so that the 1427 angle is always <= 45 deg. Note that the "orientation" option 1428 affects the tool's "straighten" function, so that the layer is 1429 rotated toward the current orientation. 1430 - Text layers can now represent vertical texts, with 4 variants: 1431 left-to-right and right-to-left lines, and forcing all characters to 1432 be upright or following Unicode's vertical orientation property. 1433 See also: 1434 * https://www.unicode.org/reports/tr50/ 1435 * http://www.unicode.org/Public/UCD/latest/ucd/VerticalOrientation.txt 1436 1437User Interface: 1438 1439 - The Dashboard dockable dialog now has an "async" field to the 1440 dashboard's "misc" group, showing the number of async operations 1441 currently in the "running" state. 1442 - New Preferences option to enable/disable layer-group previews, since 1443 these can get quite time-expensive. 1444 1445Translations: 1446 1447 - New language: Marathi 1448 - 12 translations were updated: Brazilian Portuguese, Dutch, French, 1449 German, Greek, Italian, Latvian, Polish, Romanian, Slovenian, 1450 Spanish, Swedish. 1451 1452Build: 1453 1454 - Add --with-win32-32bit-dll-folder configuration option to override 1455 the folder where 32-bit versions of DLL will be installed (default: 1456 32/bin/). 1457 - Install all plug-ins in their own directories. Unlike on master, 1458 this is not mandatory to do so, but it would protect our core 1459 plug-ins against any DLL installed directly under plug-ins/ by 1460 third-party plug-ins (cf. Windows DLL hell). 1461 1462 1463Overview of Changes from GIMP 2.10.2 to GIMP 2.10.4 1464=================================================== 1465 1466Core: 1467 1468 - Remove gimp_display_shell_draw_background() and all clipping hacks 1469 for drawing the canvas background. This optimizes away one entire 1470 step of drawing of image size, for each expose. 1471 - Font loading does not block startup anymore. Only consequence is 1472 that the Text tool may not be usable immediately if fonts are not 1473 fully loaded yet (and will output an appropriate error if you do 1474 so). All non-text related activities can be performed right away. 1475 - Change of the URL from bugzilla to gitlab where appropriate. 1476 - New tool option manager to better keep track of user context and 1477 paint options in a consistent manner. 1478 1479User Interface: 1480 1481 - The Dashboard dockable dialog now has a 'Memory' group that shows 1482 memory-usage information: the currently used memory size, the 1483 available physical memory size, and the total physical memory 1484 size. It can also show the tile-cache size, for comparison 1485 against the other memory stats. Note that the upper-bound of the 1486 meter is the physical memory size, so the memory usage may be over 1487 100% when GIMP uses the swap. 1488 - The Dashboard dockable dialog now has "read" and "written" fields in 1489 the dashboard swap group, which report the total amount of data 1490 read-from/written-to the tile swap, respetively. Additionally, the 1491 swap busy indicator (used as the meter's LED) has been improved, 1492 so that it's active whenever data has been read-from/written-to 1493 the swap during the last sampling interval, rather than at the 1494 point of sampling. 1495 - Fonts can now be tagged. The user interface is the same as for 1496 brushes, patterns etc. 1497 - Some icons fixed: larger spacing between broken chains and 1498 gimp-tool-ellipse-select made symmetrical. 1499 1500Usability: 1501 1502 - When a plug-in cannot be applied to an image because of mismatch 1503 in image types (e.g. layer has no alpha or image is greyscale), 1504 GIMP now displays a message listing supported image types for this 1505 plug-in. 1506 1507Tools: 1508 1509 - The Measurement tool now has an "Auto straighten" option allowing 1510 to rotate the active drawable (layer, channel…) so that the 1511 measurement line is used as horizon. As other transform tools, the 1512 feature will work on linked drawables as well. 1513 - The Smudge tool now paints correctly on images with a color 1514 profile other than the GIMP's built-in one. 1515 1516Build: 1517 1518 - Installer: set compatibility options to run Python plugins in 1519 HiDPI-aware mode. 1520 - Put back compatibility DLLs for really old plugins. 1521 - Install binary tool `gimp-test-clipboard` on the system to allow 1522 people to help us debug clipboard bugs. 1523 - --enable-bundled-mypaint-brushes renamed 1524 --enable-relocatable-bundle and also make WMF fonts looked up on 1525 the runtime prefix of GIMP (instead of the build-time path) when 1526 this build option was set. 1527 1528Plug-ins: 1529 1530 - gimptool-2.0 binary now accepts source files with non-standard 1531 extensions if it can try to guess appropriate language from the 1532 compiler being used. It will also properly quote arguments for 1533 shell usage. 1534 - Run explicitly Python 2 as Python plug-in interpreter to prevent 1535 breakage on systems where Python 3 is the default. 1536 - raw_input()'s argument in Python console is now optional, and 1537 input() support has been added. 1538 1539File Formats: 1540 1541 - The PSD loader now provides an option to load "merged", 1542 pre-composited version of the images that becomes available when a 1543 PSD file was saved with "Maximize Compatibility" option enabled in 1544 Photoshop. This is useful when loading PSD files that use features 1545 that GIMP doesn't currently support, and therefore can't render 1546 correctly, such as adjustment layers. When loading the merged 1547 image version, we avoid loading certain additional data from the 1548 file, such as channels, paths, and guides, while still loading 1549 metadata. This option is currently exposed as an additional file 1550 type ("Photoshop image (merged)"), which has to be explicitly 1551 selected from the file-type list when opening the image. 1552 - Embedding GIMP's built-in sRGB color profile to exported files is 1553 now optional. The default choice can be set in the Preferences 1554 dialog. 1555 1556Translations: 1557 1558 - Updated translations: Catalan, Czech, Danish, Dutch, Finnish, 1559 Greek, Hungarian, Italian, Latvian, Polish, Romanian, Russian, 1560 Spanish, Swedish, Ukrainian. 1561 1562 1563Overview of Changes from GIMP 2.10.0 to GIMP 2.10.2 1564=================================================== 1565 1566Core: 1567 1568 - Discard fonts which fail to load and popup an info dialog to allow 1569 people debug their fonts. 1570 - New API to suppress updates in UI until plug-ins are done 1571 introducing changes. 1572 - New API to calculate histograms in separate threads, with possible further 1573 extension to handle similar cases elsewhere in GIMP. 1574 - Tool options are now properly saved and reloaded per-device at 1575 startup. 1576 1577Plug-ins: 1578 1579 - New plug-in for importing and exporting HEIF images. 1580 - Enable visibility of rasterized vector layer from PSD. 1581 - Single-window screenshots in Windows fixed to correctly snap a 1582 window even when it is partly off-screen or covered by another 1583 window or when display scaling is not set to 100%. 1584 1585Filters: 1586 1587 - New Spherize filter to wrap an image around a spherical cap 1588 - New Recursive Transform filter to create Droste effect. 1589 1590Usability: 1591 1592 - Warn users, when alpha-only painting has no effect. E.g. when target 1593 drawable doesn't have an alpha channel, or the alpha channel is locked. 1594 - Make the splash texts dynamic, so they are larger on larger splashes. 1595 - Mention pressing Enter to complete Foreground selection in the status bar. 1596 - Make sure that clicking outside any selection prevents Rectangle Select 1597 and Ellipse Select tools from creating empty selections. 1598 - Improve mouse wheel zooming behavior to keep the same point 1599 centered under the pointer even if the image is completely visible 1600 in the canvas. 1601 - Add "View -> Center Image in Window" (Shift+J) as a quick way to 1602 center the image at any zoom level. 1603 1604Translations: 1605 1606 - Updated translations: Catalan, Danish, Dutch, French, German, Greek, 1607 Hungarian, Icelandic, Italian, Latvian, Polish, Russian, Spanish, 1608 Swedish, Ukrainian. 1609 - New translation of Windows installer: Chinese (Taiwan) 1610 1611Build: 1612 1613 - Add a --with-bug-report-url configure option allowing packagers to 1614 set the address of their own bug tracker. This address will be the 1615 one opened by the debug dialog for reporting bugs. 1616 - Add a flatpak manifest for the gtk3-port branch. 1617 - Remove the possibility to disable script-fu. 1618 - Add a --with-icc-directory configure option to customize the color 1619 profile directory. By default, it is set to the common path 1620 /usr/share/color/icc. 1621 1622Documentation: 1623 1624 - Updating the description of the XCF format "devel-docs/xcf.txt", for 1625 third-party readers wishing to support GIMP 2.10 XCF files. 1626 - Add documentation skeletons for all enums in libgimpbase/, there is 1627 much room for improvement. 1628