forked from openkylin/gimp
1768 lines
78 KiB
Plaintext
1768 lines
78 KiB
Plaintext
|
------------------------------
|
||
|
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.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.
|