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