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).
Changelog:
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.
- 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.
As ryoon@ reported to me after I committed a bit more MKRELRO churn,
ensuring RELRO is always applied through the compiler wrappers causes
a build failure.
This is because GIMP is attempting to parse the output of gcc --version,
which returns an error message (indicating a link failure of a nonexistent
program) alongside the version information when -Wl,-zrelro is appended
or prepended through cwrappers.
So, we use -c to avoid linking the nonexisting program we are "compiling".
Changelog:
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.
Changelog:
Release highlights:
Off-canvas point snapping
GeoTIFF metadata support (georeferencing information embedded within a TIFF file used by map makers)
Many improvements in the metadata viewer and editor
Many file format supports improved: HEIF, PSP, TIFF, JPEG, PNG, PDF, DDS, BMP, PSD
New "Negative Darkroom" operation to simulate enlargement prints from scans of photographic negatives.
The RAW image import now handles darktable 3.6 and over
New Kabyle translation
* Buildlink iso-codes and libheif.
Changelog:
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
Changelog:
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
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 vlaues 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
perfomance 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.
Highlights:
Basic out-of-canvas pixels viewing and editing
Optional editing of layers with disabled visibility
Foreground Select tool: new Grayscale Preview Mode
Newly added Normal Map filter
27 old filters ported to use GEGL buffers
HEIF, TIFF, and PDF support improvements
Better loading of corrupted XCF files
Grayscale workflows order of magnitude faster
macOS Catalina compatibility
45 bugfixes, 22 translation updates
Changelog:
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.
Changelog:
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 discrepencies 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).
Changelog:
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.
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.
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:
- 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.
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, Polish, Portuguese (Brazil), Spanish, Swedish, Ukrainian.
Changelog:
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).
Changelog:
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.
Changelog:
Overview of Changes from GIMP 2.10.0 RC1 to GIMP 2.10.0
=======================================================
Core:
- CLI option --show-playground visible in --help.
- Sample point dockable now works with more than 4 sample points.
- Various warnings removed, multi-threading officially not
"experimental" anymore…
- Various fill and fade operations now use the current paint composite
mode, allowing for instance filling to paint over transparent areas.
- Default layer and paint modes are now Normal (instead of Legacy).
- Be smarter about layer modes for new layers.
- Get rid of the remaining places that were using the NORMAL_LEGACY
mode by default (painting, some more).
- Improve painting speed even more by even more evil C++.
- Flipping drawables is much faster because it's now working
tile-by-tile.
- Gradient rendering is now much faster, using a cache.
Plug-ins:
- Ripple plugin removed, compat PDB-API "plug-in-ripple" added
instead.
PDB:
- New procedure: gimp-item-transform-translate.
- Make gimp-item-transform-* transform linked items too.
- Deprecate gimp-color-balance and gimp-layer-translate.
Assets / Resources:
- New "Fun" category for brushes (moving the "Pepper" there, which
also gets improved resolution), and adding Wilber and GEGL brushes.
- "Structure" brush obsoleted.
- 5 new and more serious brushes.
Translations:
- 6 translations were updated: Catalan, Danish, Finnish, Korean,
Polish, Swedish.
Overview of Changes from GIMP 2.10.0 RC1 to GIMP 2.10.0 RC2
===========================================================
Core:
- Symmetries are now preserved in XCF files (saved as image parasites).
- New runtime option --show-debug-menu in order to make the File >
Debug menu visible.
- Do not show invisible actions in search dialog.
- Do not dither image mask and channels for imported images.
- Various optimizations for painting and display (WIP), including
parallelized painting code.
- New "Misc" group to the Dashboard dock, with currently only a
"Mipmapped" field showing the total size of processed mipmapped
data.
- Plug-ins debugging on crashes through --stack-trace-mode CLI option
improved to handle more case.
- Fix selection -> channel -> selection roundtrips by never doing
any gamma conversion when converting between an image's selection,
channels, masks. Also, make all channels linear in all images with
>8bit.
Libgimp:
- New group "drawable_edit" which contains all functions from "edit"
that are not cut/copy/paste. The new functions have much less
arguments and take them from the context instead. The respective
functions in "edit" have been deprecated.
- New functions in "context" to configure aspects of gradient
drawing, and to set the built-in gradients (the new gradient
function in "drawable_edit" doesn't have a parameter for the
gradient type any longer).
User interface:
- Lighter and Darker themes removed for now, Light and Dark themes
rewritten from scratch to get rid of various usability issues and
glitches. Only Gray theme from previous set kept as-is.
- New GimpToolGyroscope on-canvas control, currently used for
the Panorama Projection filter. The widget provides on-canvas
interaction for 3D rotation (yaw, pitch, roll).
Configurability:
- In Preferences > Dialog Defaults, new section "Filter Dialogs"
created to customize various common features of filters, such as
recent settings and advanced color options.
- Do not default to last used filter settings, but allow this behavior
in Preferences > Dialog Defaults, with checkbox "Default to the last
used settings".
Tools:
- Color used in the Smudge tool is now added to the color history.
- "Blend" tool renamed to much more consistent "Gradient" tool.
Also it can now work in linear RGB matching capabilities CSS/SVG
specification without gamma-errors in color blending and CIE Lab
which in addition keeps a perceptual graylevel.
Assets / Resources:
- Adding 4K UHD in document templates (and fixing 4K DCI).
Building:
- New --enable-bundled-mypaint-brushes option in configure to decide
whether to use the configure-time installation path of MyPaint
brushes, or use a path relative to GIMP installation prefix
(typically for bundled binaries, such as on Windows or macOS).
- Detect freetype2 using pkg-config (`freetype-config` is on its way
out in various distributions apparently).
- Appdata now installed to $PREFIX/share/metainfo/
Translations:
- 8 translations were updated: Arabic, Catalan, Chinese, French, Italian,
Polish, Russian, Swedish.
Overview of Changes from GIMP 2.9.8 to GIMP 2.10.0 RC1
======================================================
Core:
- New dashboard dockable: shows the current GEGL cache and swap sizes
and CPU usage and active time, and their recent history. It has
options to control the update rate and history duration of the data,
and an option to warn (by raising/blinking the dialog) when the swap
size approaches its limit.
- Make the selection boundary detection the same as 2.8.
- The environment variable GIMP_DEBUG can now be set to "list-all" to
display available debug domains. Non-recognized flags will also
trigger the debug flag list output.
- Improve migration from 2.8 to 2.10 by recursively migrating
configuration files (up to 5 levels, to protect from recursive
symbolic links).
- Mark legacy plug-ins and scripts in menus.
- Enable "save-tool-options" and "save-device-status" by default,
it's the expected behavior these days.
- GIMP doesn't warn any more for unknown darktable XMP metadata. We now
register the corresponding namespace.
- Adding settings for metadata export handling in "Image Import &
Export" page of Preferences. By default, the settings are checked,
but you can uncheck them (in particular since metadata can often
contain a lot of sensitive information).
- Splash image now scaled down to maximum 1/2 of the screen area. This
will allow to ship a big splash image which will be visible on all
type of screens, whichever low or high resolution. Vector splash
images are scaled both up or down to have them always at ideal size.
- Brightness-Contrast, Curves, Levels and Threshold are now available
in "Repeat last" history.
- Improve action history to not show newly excluded actions (which
were already in our history from before the exclusion).
- Use GEGL for transform-tools preview, allowing faster and more
accurate previews.
- Re-arrange color models in the Color dock (WIP).
- New debug tool and infrastructure to handle WARNING and CRITICAL
errors, as well as fatal errors (crashes), raising a pop-up with all
version information on GIMP and its main dependencies, as well as
the error message and backtraces, and encouraging people to make bug
reports.
- Support layer masks on layer groups.
- GIMP now attempts to backup unsaved images when it crashes. Then at
next startup, it will suggest to recover the salvaged images. Image
recovery is not 100% guaranteed.
- New gimp_spawn_async() function uses vfork() to help avoid hanging
during a fork process, currently used for plug-ins.
- Dock color picker is now color-managed on macOS.
Libgimp:
- New gimp_export_exif(), gimp_export_xmp() and gimp_export_iptc()
functions returning the creator choice regarding default handling
for metadata export (as set in the Preferences).
- GIMP Protocol version incremented.
- New gimp_get_pdb_status() to return the status of the last PDB
call. This is needed for plug-ins which depend on other plug-ins'
procedures. If for instance, a second-level plug-in is interrupted
interactively, we don't want to process this as an error but as a
cancellation.
- New gimp_stack_trace_available(), gimp_stack_trace_print() and
gimp_stack_trace_query() for debugging.
- Use gegl:distance-transform in gimp_edit_blend() implementation
making it much faster for all GRADIENT_SHAPEBURST_* gradient types.
Legacy gimp:shapeburst operation has been deleted.
- New gimp_context_get_distance_metric() and
gimp_context_set_distance_metric() for distance metric used in
gimp_edit_blend() (and future usage).
GUI and Usability:
- New icons: "gimp-attach", "gimp-color-space-linear",
"gimp-color-space-perceptual", "gimp-color-temperature",
"gimp-dashboard", "gimp-detach", "gimp-tool-desaturate",
"gimp-tool-exposure", "gimp-tool-shadows-highlights".
- Switching between linear and perceptual (gamma-corrected) spaces
in the Histogram dialog is easier now: two buttons instead of one
two-way button where current state was difficult to understand.
- Shorten color channel labels in the color frame (color picker tool,
sample point editor…) with conventional 1 or 2-letter abbreviations,
and split coordinates on 2 lines.
- We now switch to "Huge" icons by default when the display pixel
density is over 250 PPI (used to be 300 PPI).
- Improve action history sorting: items climb up the list faster,
while top items retain their relative position longer.
- Extend action search "initialism": Extend initialism-based search
(e.g.: "gb" for "Gaussian Blur"), by matching arbitrarily-long
initialisms, and by allowing partial matches (with lesser priority).
- Values in the GimpNumberPairEntry widgets can now be cleared by clicking
an icon.
- Transform Grid controller is now available for custom UIs of GEGL
operations (currently used for Recursive Transform op).
- New GimpHighlightableButton widget is used to draw attention to buttons
in certain cases. Currently used for anchoring and removing floating
selections.
- Composite modes were renamed to be more descriptive, as follows:
Source Over => Union
Source Atop => Clip to Backdrop
Destination Atop => Clip to Layer
Source In => Intersection
Configurability:
- Wilber logo in the toolbox can now be disabled via Preferences
(the Toolbox page).
Tools:
- "Link brush size with canvas zoom" paint option becomes "Lock brush
to view" to make a brush invariant in display space whichever
scaling, rotation, and reflection.
- Blend tool now displays the line length (in current shell unit and
with ideal digit accuracy) and angle in the status bar.
- Constrain line angles in display space: all tools which have a line
constraint feature (for instance blend tool, paint tools in line
mode, etc.) will now do so relatively to the display, allowing you
to rotate the canvas in order to constrain to any arbitrary angle.
- Levels and Curves can now work on linear light data, the toggles are
at the top of respective dialogs, right next to linear/log toggles
for the histogram.
- Blend tool now has a distance metric option to determine how
distances are computed (Euclidean, Manhattan or Chebyshev
distances).
Filters:
- New GEGL-based Shadows-Highlights filter now available in the Colors
menu. The implementation is based on the code from darktable.
Plug-ins:
- Screenshot with the generic Freedesktop API has been implemented. It
is meant to replace all desktop environment specific APIs eventually
but needs to get reasonable features first. Therefore currently
GNOME/KDE and X11 implementations still have priority.
- qbist ported to GEGL and float.
- Colors for the standard output and standard error texts in the
Python console are now themeable, mapping respectively to normal
text and insensitive text colors for the "python-fu-console" widget.
We updated the default colors a bit for our themes. If this is not
good enough (for instance, if one has a specific type of color
blindness), at least it is now possible to create a custom theme
adapted to one's needs.
- PSD export now happens with progress bar update for feedback.
- Win32 Screenshot improved to handle hardware-rendered software and
multi-monitor displays.
File formats:
- Fix various vulnerabilities in file plug-ins: GBR (CVE-2017-17784),
PSP (CVE-2017-17787 and CVE-2017-17789), TGA (CVE-2017-17786) and
FLI (CVE-2017-17785).
- Fix WebP export under Windows.
- No more max dimension limitation for X cursors. We still warn when
cursor size is over a max limit for X bitmap cursors, but we don't
clamp anymore on export.
- JPEG, PNG, TIFF and WebP export plug-ins updated to honor creator's
default choice regarding metadata handling.
- Fix GIH brushes using different-sized layers.
- RGBE (Radiance HDR) format files can now be imported and exported.
- JPEG2000 loading now done via OpenJPEG library and supports any bit
depth (over 32-bit per channel will be clamped to 32-bit and
non-multiple of 8-bit will be promoted, for instance 12-bit will end
up as 16-bit per channel in GIMP). JPEG 2000 codestream also
supported and displays a dialog asking for the color space (whereas
JPEG 2000 image color space are auto-detected).
JPEG 2000 images or codestream in YCbCr, xvYCC and CMYK color spaces
are converted to sRGB images upon loading.
Building:
- poppler and poppler-data now hard dependencies. PDF import is
considered a granted feature nowadays and fallbacking to the
Postscript plug-in was bad experience.
- move PDB generation and sources to toplevel/pdb.
- New configure option `--enable-windows-installer` to generate the
necessary files for the installer translations during the build.
- Improve POTFILES generation for po-*/ directories.
- Require glib >= 2.54.2.
- New dependency to mypaint-brushes-1.0 for stable MyPaint brushes
available at installation.
- AppStream ID renamed from gimp.desktop to org.gimp.GIMP following
current convention.
- Require fontconfig >= 2.12.4. Lower versions are particularly a
problem on Win32, where many cache update failure were reported to
us, resulting in very slow startup and close-up (and not only the
first time, but every time).
Translations:
- Windows installer now localized with gettext.
- String freeze has started and GIMP received updates from:
Basque, Brazilian Portuguese, Catalan, Chinese (Taiwan), Danish,
Esperanto, French, German, Greek, Hungarian, Icelandic, Italian,
Japanese, Latvian, Polish, Russian, Serbian, Slovenian, Spanish,
Swedish, Turkish.
Overview of Changes from GIMP 2.9.6 to GIMP 2.9.8
=================================================
Core:
- The default brush is now "Hardness 050".
- Verbose version (command line: gimp -v) now displays C compiler
information.
- Transform tools don't commit identity transformation anymore.
- Manual language can now be selected amongst all installed manuals,
which is particularly interesting when no GIMP manuals are available
in your GUI language. This will be proposed by default when a manual
is not installed for the GUI language (alongside the possibility to
read online) and the choice can be edited in preferences.
- The statusbar now blinks on warnings and errors.
- Paste in Place, available for regular clipboard and named buffers,
allows pasting contents of either the clipboard a named buffer at the
exact coordinates it was copied from.
- Color Picker should now work on KDE/Wayland.
- Color Picker now reads values under cursor in local windows making
it work at least inside GIMP Windows on Wayland platforms with no
color-picking capabilities (for instance GNOME/Wayland) yet.
- OpenCL is now disabled by default. Depending on graphics cards and
drivers, OpenCL acceleration is often slower than multi-threaded
implementation, and can also sometimes be "glitchy".
- Now possible to open a locally-installed manual different from the
GUI localization. The manual language choice can be customized
through preferences when several manuals are installed. If no manual
language has been selected already and no manual for current GUI
localization is available, choice of help language will be proposed
at first call to the manual.
Configurability:
- Keybindings now possible for previous/next/top/bottom channel.
Usability:
- The spinscale widget now highlights vertical parts of the slider
section differently to hint that position of cursor above the widget
matters. When changing values in the lower step section, the pointer
will be wrapped around the screen so that you could continue adjusting
the value without interruptions.
- Canvas rotation and flip information is now visible in the status
bar (as angle value and flip icon). Clicking on these canvas status
will respectively raise the "Select Rotation Angle" dialog or unflip
the canvas.
- Use abbreviated versions for long layer mode names. In particular,
replace the "(legacy)" suffixes with "(l)" in the abbreviated
versions, still showing the unabbreviated names in the full list.
Tools:
- Blend tool now features on-canvas gradient editing: adding, shifting,
removing color stops, shifting midpoints and converting them to color
stops, assignging colors to color stops, changing blending type
for midpoints. Additional options: 'Instant mode' (active before you
start blending) to support the old workflow where you can't edit color
stops before applying the gradient fill, and 'Modify active gradient'
which allows changing user-writable gradients directly rather than
creating copies of them. Moreover, custom gradient is now saved
and restored across sessions.
- All transform tools: it makes no difference now whether a modifier is
pressed before of after mouse button press/release.
- Free Select tool selection can now be committed with double click as
well (only through Enter key before). This allows smoother workflows
on some setups, and in particular when no keyboard is available
(e.g. tablet-like computers).
- Layer group children now inherit the color tags of the parent by
default, unless specific color tags are assigned. Inherited color
tags show in a less saturated color than assigned ones.
Painting:
- When copying a generated brush, GIMP now copies its 'Spacing' property.
- Rename "Wheel" dynamics labels as "Wheel/Rotation". It turns out
that Wacom Art Pen and Airbrush pen use the same axis for barrel rotation
and wheel scrolling respectively. Therefore they already work in GIMP.
"Unhide" the feature with more obvious labels.
Color management:
- Use babl to convert between profiles if possible.
Display filters:
- New 'Clip Warning' display filter to show underexposed and overexposed
values. Target values below 0 and above 1.0, hence it only works on
16/32 bit per channel float images (such as EXR and TIFF).
- Display filters now operate in unbounded sRGB rather than in monitor
color space.
Plug-ins:
- Fix finding raw loaders on Windows/macOS.
- Screenshot for KDE/Wayland has been implemented (full-screen and
window screenshots only; rectangular area screenshots need
implementation on the KDE side).
- Screenshot can now add a delay between window pick/rectangular
area selection and the actual shot, but only in platforms supporting
the feature.
File formats:
- PSD:
- Fix mask position when opening/exporting.
- Fix active layer selection during loading.
- Fix potential group-layer naming conflict during loading.
- Fix missing some attributes loading empty layers.
- Fix reading files with deeply nested layer groups.
- Load and save layer group expanded state.
- Improve layer opacity loading/saving.
- PDF: password-protected files can now be imported.
- HGT: Digital Elevation Model data from NASA/NIMA can now be loaded,
both SRTM-1 (1 arc-second) and SRTM-3 (3 arc-seconds).
Filters:
- Update GEGL-based filter Wavelet Decompose:
- Add an option to keep the decomposition in a layer group.
- Add an option to add layer mask to each scales layers.
- Do not use 'New from visible' because it produces unexpected
results; replaced by succession of layer copy and merge down.
PDB:
- Add file-pdf-load2 API to load password-protected and/or multi-page
PDF files.
- Add file-hgt-load to load HGT files, with an argument to select between
SRTM-1 and SRTM-3 types.
Translations:
- Updated: Catalan, Croatian, Galician, German, Greek, Hungarian,
Icelandic, Indonesian, Italian, Polish, Russian, Spanish.
Building:
- Require LittleCMS >= 2.8.
- Initial docker-based build environment for GIMP now available.
- Warn against use of GCC 7.2 which has a bug breaking GIMP.
- An official flatpak stable package is now available on flathub.
Contributors:
Mario Blättermann, Hanno Boeck, Joao S O Bueno, Marco Ciampa,
Fran Dieguez, Piotr Drąg, Tobias Ellinghaus, Ell, Sveinn í Felli,
gogo, Luis Angel Gonzo, Anders Jonsson, Christian Kirbach,
Øyvind Kolås, Thomas Manni, Jordi Mas, Balázs Meskó, Lionel N,
Michael Natterer, Jehan Pagès, Juan Palacios, Alexandre Prokoudine,
Christopher Rogers, Michael Schumacher, shark0r, Dimitris Spingos,
Tobias Stoeckmann, Andika Triwidada, Massimo Valentini.
Overview of Changes from GIMP 2.9.4 to GIMP 2.9.6
=================================================
Core:
- Make it possible to use multithreading in GEGL and raise max amount
of threads to 64. Given how unstable this feature is, any value
above 1 should be currently treated as a step inside an industrial
microwave oven with the on/off switch on the outside.
- New clipboard implementation allows copying/pasting layers and
layer groups.
- Color tags simplify managing large projects with a lot of layers
and layer groups.
- The Mouse Pointer dialog and colors applied to images are now
color-managed.
- Gamma and precision selectors for newly created images.
- Never dither when converting to a higher bit depth, or to anything
more than 16 bits; don't offer dithering options in these cases.
- Default to linear TRC when converting to 16-bit float.
- Pre-initialize some babl-based pixel format conversion routines
at start-up to decrease the initial lazy intialization cost for
some interactions.
- Remove max size limitation of 4GB for XCF files.
- Support clipboard images in the clipboard brush and pattern.
- libgimp calls are now thread-safe.
Layers and compositing:
- Layer modes' code is now refactored to separate gamma-corrected
variations from the linear light ones, legacy modes have been
preserved to support older XCF files. UI to switch between the two
is experimental and should be treated as a temporary design.
- Blending and compositing of layers are configurable separately for
more flexibility now, compositing can be linear TRC, perceptual TRC
or CIE LAB.
- Layer blending color space and compositing color space are
configurable now.
- Layers created from the GUI and from plug-ins now default to
normal mode (not normal-legacy), unless all the existing layers
in the image are also in legacy mode.
- New layer modes: linear burn, vivid light, linear light, pin light,
hard mix, exclusion, merge, split, luminance (rgb), pass-through
(for layer groups only).
- Make erase mode an ordinary layer/paint mode.
- Better performance of HSV-based layer modes.
- Rename "Color (HSV)" mode to "Color (HSL)" to indicate the actual
color space being used.
On-canvas interaction changes:
- Refactor on-canvas interaction code out of some of the tools and
make it reusable.
- Update tools accordingly.
- Make on-canvas interaction accessible to GEGL-based filters and
use it in the Spiral and Supernova filters as a test case.
GUI and usability:
- Easily add or remove layer masks by clicking either the layer
preview or a new button in the Layers dialog.
- Enhance the Layer Attributes dialog to provide the single UI for
setting layer's name, blending mode, opacity, and offset,
toggling visibility, link status, various locks, color tags.
- Add a Save As button to the “Quit GIMP” dialog and raise images
on click for easy checks.
- Allow to choose fill color when resizing layers and images.
- Quick Mask and Channel Attributes dialogs use the new spinscale
widget for the mask opacity slider.
- Enable grid views of dynamics and tool presets.
- Allow to zoom with middle mouse button + control + drag up/down.
- For all paint tools, when switching to the color picker mode,
don't rely on the exact modifier being pressed or released. Instead,
check if only the right modifier is pressed after *each* modifier
change, and switch to color picking if it is.
- On startup, GIMP checks for duplicate accelerators in menus, and
removes duplicates.
- Standard (Freedesktop) and GTK+ icons can now be set by the icon
theme for a fully consistent style.
- Many new icons.
- Toolbox buttons do not grab focus anymore, which used to break
usage of the Tab key and other canvas-related shortcuts after
changing tools with a pointing device click.
- Delete Layer/Channel/Path are consistently the last option in
respective dialogs now.
- Extend the text along the tangent of the last path stroke, when
the length of the path is shorter than the width of the text to be
warped.
- Allow to toggle the histogram dialog between gamma and linear.
- New 'Colors -> Linear Invert' command to provide radiometrically
correct color inversion.
- Quit dialog now exits when all the images in the list have been
saved.
- The built-in error dialog now displays errors outputted by GEGL.
- Shift-clicking the visibility icon of a layer in a layer group now
toggles its exclusive visibility within this layer group.
Color selection and management:
- Add the profile import policy to Preferences -> Import.
- Color management for GEGL-based filters is expensive, so it's off
by default for now, and options are hidden by default too.
- Add LCH color selector, with support for gamut checking.
- Default to magenta for out-of-gamut color.
- Make all script-fu color buttons color-managed.
Configurability:
- Remember settings of many dialogs across sessions.
- New Interface / Dialog Defaults page in the Preferences dialog to
control defaults values of various dialogs.
- Settings on some individual pages of the Preferences dialog can be
reset separately now.
- Vertical scrollbar added to keep the height of the Preferences
dialog fitting small displays.
- Allow mouse to optionally configure tablet devices
- Allow creating shortcuts containing the Cmd key + mouse wheel events.
- Default to 300ppi and 1920x1080px for new documents.
- Default to 62px font size.
- Do not allow Alt+[0-9] shortcuts, they are typically reserved for
display switching.
- Icons size is now a configurable option, not a theme feature.
The icon size is also auto-guessed from monitor resolution now.
- It is now possible to have keybindings for previous/next/top/bottom
vectors.
Tools:
- Complete the Handle Transform tool and make it available by default.
- Add Hue-Chroma operation/tool that operates in CIE LCH color space.
- Replace Color Balance, Colorize and Hue-Saturation with GEGL-based
filters with a custom user interface to ease future transition to
non-destructive editing planned for v3.2. Remove the "Image ->
Tools -> Color Tools" submenu.
- The Move tool now shows relative coordinates when moving guides
and sample points.
- The Measure tool has better digit precision now (before that, at
4000 PPI, up to 7 pixels would show up as 0 mm, then at 0.1 mm from
the 8th pixel etc.).
- All paint tools now display the angle (relatively to the horizontal
line, centered on previously drawn position) alongside distance in
status bar when straight line constraining (holding shift when
painting).
- Performance of the Fuzzy Select and the Bucket Fill tool has been
improved.
- The Fuzzy Select and the Bucket Fill tool now can select colors by
CIE L, C, and H.
- Unclutter transform tools: default to "no grid", hide the original
layer during the interactive transform (except for the Flip tool).
- Make the Warp Transform tool faster, add more options, use
the linear sampler to ensure crisp lines after an erase.
- Select by Color and Color Picker tools work now correctly in color
spaces other than sRGB.
- Free Select tool now waits for Enter being pressed to confirm
selection, which enables you to tweak positions of polygonal selection.
- Color Picker doesn't snap to anything when picking colors anymore,
always draws the outline of the averaged region (not only while the
mouse is being pressed), and supports arbitrary range of values
regardless of the actual image color precision.
- Color Picker now displays pick position (also visible in the
Sample Points dialog now), as well as values in CIE LAB and CIE LCH.
- Uncommitted selection by the Intelligent Scissors tool is not
discarded on tool change anymore.
- For Intelligent Scissors, GIMP now checks whether the first and the
last isegments are distinct before closing the curve.
- Flip tool: add Clipping option to the flip tool. Add support for
reflecting across guides: when clicking on a guide while using the
Flip tool, reflect the active item across the guide, rather than
around its center.
Painting:
- The Smudge tool now has a Flow control that allows mixing in both
constant and gradient color while smudging. There's another new
option to never decrease alpha of existing pixels while smudging
in the tools options now as well.
- Rulers, scrollbars, and the Navigation dialog follow canvas
rotation now.
- Canvas rotation is now snappier in certain cases.
- For bitmap brushes, GIMP now caches hardness and disables dynamic
change of hardness to improve painting performance. Bitmap brushes
also don't get clipped anymore, when hardness is less than 100.
- Allow painting on transparent layers with modes other than normal.
- Add a specialized convolution algorithm for the hardness blur
to make it faster.
- Make the Force option insensitive for the Pencil tool.
- Add new "Pressure Size" dynamics.
File Formats:
- Make the default raw (DSLR) image importer configurable.
- Add RawTherapee plug-in to pre-process various raw (DSLR) images,
RawTherapee v5.2 is the minimum requirement.
- Add new file-raw-placeholder plug-in that registers itself for
loading all raw formats from file-raw/file-formats.h, but does
nothing except returning an error message pointing to darktable
and RawTherapee.
- Add native WebP loader/exporter with support for ICC profiles,
animation, metadata.
- The TIFF loader will not generate warnings about private tags
anymore.
- Handle linear gamma PNG files correctly, provide a combo box for
specifying PNG bit depth / variant at exporting time.
- Add support for linear burn, linear light, vivid light, pin light,
and hard mix layer modes in PSD (importing and exporting).
- Load PSD files with layers which contain additional information
with a length that is not divisible by 4.
- Add support to import/export layer color tags from/to PSD files.
- Optionally convert all imported (not XCF) images to 32-bit linear
floating point, and optionally add a little noise in order to
distribute the colors minimally.
- Optionally add alpha channel to layers of imported images
(configurable in Preferences > Import).
- Support writing PNM files with 16-bit image precision.
- Improve support for PCX files:
* saving 1bpp and 4bpp images (according to palette size).
* loading 2bpp, 2 planes/1bpp, 3 planes/1bpp and 4bpp images.
* non-Black&White monochrome PCX files (any 2 colors according to
the palette).
- Add support for exporting multi-page PDF from image layers, with
optional reversed order.
- Add RLE support for RGB565 in file-csource.
Metadata:
- Add new metadata viewer that uses Exiv2 to display Exif, XMP, IPTC,
and DICOM metadata (the latter is displayed on the XMP tab).
- Add metadata editor that supports adding/editing writing XMP, IPTC,
DICOM, and GPS/Exif metadata, as well as loading/exporting metadata
from/to XMP files.
Printing:
- Print resolution can now be reset to defaults, new values for the
same image is actually used now without reloading the image.
Plug-ins:
- The Screenshot plug-in now assigns either monitors profile or
converts to sRGB.
- The Screenshot plug-in can now take screenshots of a single window
and include the mouse pointer in the same time (if the desktop/OS
allows it).
- Port smooth-palette to GEGL.
- Enhance the raw (not the digital negative) files plugin:
introduce exporting settings and remember them across sessions,
make the plugin invokable non-interactively, and more.
- Plug-ins can now be installed into first level directories of a
plug-ins/ folder. This is in particular to avoid the "DLL hell"
with shared libraries installed by a plug-in, interfering with other
unrelated plug-ins. The entry point file has to be named the same as
the directory (minus extension).
Filters:
- Add GEGL-based filters: Neon (Edge detection), Wavelet Decompose,
Image Gradient, Symmetric Nearest Neighbor, Extract Component,
RGB Clip, Simple Linear Iterative Clustering, Waterpixels, Spiral.
- Add rotate/flip buttons to the Convolution Matrix filter's GUI
to rotate/flip the matrix.
- For GEGL-based filters, use a new metadata language to dynamically
control UI attributes based on context (e.g. auto-disable
unapplicable options).
- Allow filter actions to have hardcoded default operation settings
by encoding them directly in the string attached to all filter
actions.
Color Palettes:
- Merge Palettes command is available for multiple selected color
palettes now.
Assets / Resources:
- Some basic presets are available for the Crop tool now: 2x3,
3x4, 16:10, 16x9, and square.
- Documents templates have been updated and now feature popular,
contemporary document presets for both print and digital media.
PDB:
- Rename *-paste-as-new to *-paste-as-new-image.
- Add PDB API for layer blend space, compositing space, and
compositing mode.
Build:
- Depend on LCMS2.7+ now, because earlier LCMS2 releases caused
problems with certain GIMP blend modes.
- Depend on libpng 1.6.25+ to avoid warnings about known incorrect
sRGB profiles, also avoid various vulnerabilities.
- Depend on glib-networking now for HTTPS support.
- Depend on librsvg 2.40.6 which fixes rendering bugs.
- Add a flatpak-builder manifest.
OS-specific changes:
- Help browser launches on macOS now.
Bugs:
- Overall 204 bugs have been fixed or partially addressed since
GIMP 2.9.4.
Translations:
- Updated: Catalan, Chinese (Taiwan), Croatian, Czech, Danish,
Finnish, French, German, Greek, Hungarian, Icelandic, Italian,
Kazakh, Occitan, Polish, Portuguese, Russian, Scottish Gaelic,
Serbian, Slovak, Slovenian, Spanish, Swedish.
Overview of Changes from GIMP 2.9.2 to GIMP 2.9.4
=================================================
Core:
Color Management:
- add new GimpColorTransform object to create abstraction from LittleCMS
- now color-managed:
- layer/image/color palette/gradient/pattern previews
- Color Picker tool
- color buttons of GimpColorHistory
- GimpFgBgEditor, as used e.g. in the toolbox
- color selectors
- DND widget
- painting tools
- copying layers/paste buffer between images
- Colors applied to images
- GimpColorPanel and its color dialog (color widgets in dialogs)
- color areas created from menu actions
- color management for grayscale images, including setting preferred
ICC profile
- add fast switching between color managed display and soft-proofing
- add a per-image "is color managed" switch and show the image's
"is color managed" state in the window title string
- add basic support for creating images with color profiles
- add "Optimize" options for display and soft-proofing to optionally
speed-up rendering at the cost of color fidelity
- add Image -> Color Management -> Save Color Profile to File...
- improve the naming of generated ICC profiles
- add a shortcut to the profile chooser dialog on OS X too
- don't let display color management settings affect file import
- enable color management when a profile is assigned to the image
- enable color management when the image is converted from/to grayscale
- pass the right color profile around in gimp_selection_float()
- hardcode the CMYK selector's conversion parameters, as well as NTSC
parameters in babl/GEGL/GIMP
- have all previews track the monitor they are on
Core:
- add "Select -> Flood" select action
- add "Select -> Remove Holes" action
- add "Border style" combo to the "Select -> Border..." dialog
- do not request xcf compat mode when compat_toggle not sensitive
- initialize fontconfig in the background to be able to show a pulsing
progress bar when rebuilding the list of fonts (typically, the first
time GIMP runs)
- fix the Behind blending mode
- make Burn mode output match Gimp 2.8 (partial revert of bug 744265)
- improve file magic matching
- add a custom guide concept
- improve updating the statusbar messages and icons
GUI:
Menus:
- move the image-duplicate action next to image-new
- add Image -> Color Management -> Color Management Enabled
- change "Select _Custom Color..." to "_Custom Color..."
- change "Export" to "Export..." in the File menu
Dialogs:
- include recently used colors in the Dockable Colors dialog
- add RGB-based Luminance channel to the Histogram dialog
- fix remembering the order of dockable dialogs
Preferences:
- reorder the prefs categories tree and rename some pages
- move "Snap Distance" to the prefs dialog's "Snapping" page
- add configuration for undo preview size
- clean-up Preferences -> Color Management
- add "Shortcut [some modifier] + Mousewheel" for changing pen size
Themes:
- rename theme "Default" into "System"
- add new GUI themes: Lighter, Light, Gray, Dark, Darker
Icons:
- add icon theme selection and make the icon theme path configurable in prefs
- preserve 2.8 pixel-perfect icon theme under the name "Legacy"
- add new symbolic icon theme for GIMP
- add a scalable icon theme and a configure option --enable-vector-icons
Widgets:
- add new GimpBufferSourceBox widget and use it in GimpOperationTool
View/Display:
- fix various bugs related to rotated canvas
- make GIMP not ignore 'Maximized' hints on startup in Windows
- enable a pulsing progress bar in the splash
- make new images jump around much less
- fix image position when entering/leaving fullscreen mode
- make layer boundary re-drawn correctly on scrolling
- make images not appear completely black when images dockable is visible
- have all previews track the monitor they are on
Tools:
Fuzzy Select:
- add "Diagonal neighbors" option
Foreground Select:
- fix ghost brush outline
Bucket Fill:
- add "Diagonal neighbors" option
Posterize:
- turn the posterize tool into an ordinary GEGL filter
- remove posterize from Tools -> Colors
Desaturate:
- turn the Desaturate tool into a normal GEGL filter
- move "Desaturate" to Colors -> Desaturate
Align:
- add vertical offset to distribution options
Paths:
- improve performance
Flip:
- rename options to "Transform" and "Direction"
Cage Transform:
- fix a few performance issue
Unified Transform:
- make the tool not fail when currently selected layer is hidden
Text:
- fix text input methods to work in-place (not in an overlayed box)
- add background colors setting, only exposed for advanced input methods
Blend:
- use gegl:distance-transform in the blend tool, it has a progress now
- make shapeburst work with the new interactive gradient code
All Painting Tools:
- add mirror symmetry
- remove artifacts from painting tools in Burn blending mode
- add shortcut actions for changing spacing, hardness, and force
MyPaint:
- dramatically improve performance of the tool and enable it by default
- add Colorize mode
- add a toggle to change between erase & paint mode
- add a brush selector to the MyPaint brush options
- add a dockable dialog to choose a brush, with tagging
- read tags from MyPaint brushes
- improve blend math
- allow plug-ins to register procedures in the <MyPaintBrushes> menu
Smudge:
- fix the clipping of out-of-gamut channel values
- fix the handling of layers with alpha channels
Ink:
- the range of angle is now [-PI..PI]
Plug-ins/GEGL Filters:
Preview:
- add a "split preview" feature to GEGL ops
- allow to switch the split preview between horizontal and vertical
- allow to swap the before/after position
Filters:
- update the "Recently used" menu with GEGL filters
- replace Selective Gaussian Blur with the GEGL version
- add gegl:saturation as Colors -> Saturation
- add gegl:high-pass as Filters > Enhance > High Pass
- add new gegl:gegl filter that executes a custom processing chain
- port Tile and Pagecurl plug-ins to GEGL
- refactor the screenshot plug-in into backend and front-ends, one
per X.org, Wayland, Windows, OS X
- add Monochrome option to the GEGL version of Channel Mixer
- bring dialog titles and help IDs to GEGL filter dialogs
File Plug-Ins:
- add darktable plug-in to pre-process various raw images
- port file-gif-save and file-tiff to GIO
- TIFF support:
- make libtiff a hard dependency
- merge the file-tiff-load and file-tiff-save plug-ins
- fix various tiff exporting bugs
- EXR support:
- read comment, Exif, and XMP data from EXR files
- use GIMP's internal profile when loading EXR
- PSD support:
- fix the loading of files with adjustment or fill layers
- fix the reading of layer group structure
- fix the raw image loader
- fix the layer groups support in OpenRaster
- code cleanup in file-bmp
- fix the exporting of KISS - CELL (*.cel) images
- resurrect the email plugin
- use GIO to figure if a file is hidden
PyGimp:
- update pyconsole code
- add binding for GimpImageType
- add GimpColorConfig object
- add type definition for GimpColorManaged
- make GimpParasite type known to the code generator
- require Pycairo in configure, link gimpui against pycairo
- fix the application of paintbrush size in Python scripts
Script-Fu:
- make regex matching return character indexes
- fix the hanging of Script-fu on machines with 64-bit longs
- update tinyscheme code from upstream
PDB:
- Bug 759104 - Allow coordinates of sample points to be accessed from scripts
Build:
build/win:
- Start building libmypaint.
- Add pcre and upgrade glib2 to 2.48.1
- Upgrade exiv2 to 0.25
- Clear DISPLAY before building
- Disable webkitgtk
OS-specific changes:
Windows:
- Add support for generating crash backtraces using Dr. MingW
Overview of Changes from GIMP 2.8.0 to GIMP 2.9.2
=================================================
Core:
The core got completely ported to GEGL, listing all changes involved
would be too much, therefore we summarize the changes in app/ per
source subdirectory:
base
composite
paint-funcs:
- Remove these directories, they contained the old pixel
manipulation functions
config:
- Remove GimpBaseConfig, add GimpGeglConfig
- Add config options for new features
core:
- Add some things that used to live in base/, like the temp-buf,
boundary and histogram code
- Port all functions to GEGL and higher bit depths
- Keep the image around as GEGL graph, all other compositing is gone
- Add non-destructive drawable filters, but use them only for previews
- Implement the floating selection as drawable filter
- Implement GimpImageMap using drawable filters
- Move batch processing to gimp-batch.[ch]
- Run batch commands in an already running GIMP instance
- Ported almost everything from filenames/FILE/fd to GFile/GIO
- Be smarter about migrating old user config files
- Move many object struct members to private structs
file:
- Support GIO-ported file load/save procs, handle remote files generically
- Add content locking to items to prevent them from being edited
- Add position locking to items to prevent them from being translated
- Implement all color management in the core
- Add an automatic palette of recently used colors
- Implement metadata handling in the core
gegl:
- Now contains utility functions and abstractions to work with
GEGL more easily
- Move all operations to the new operations/ directory
operations:
- New directory containing all GIMP-internal GEGL operations
and their config objects (if any)
- Add a correct version of the overlay layer mode
- Add LCH layer modes
paint:
- Port all paint cores to Gegl
- Add MyPaint brush paint core
pdb:
- Add compat procedures that work like the removed plug-ins
- Use the new GimpValueArray, GValueArray got deprecated
plug-in:
- Allow plug-ins to access image data at full bit depth
- Add a compat mode so unported plug-ins always get 8-bit data
text:
- Port text rendering to GEGL
- Use HarfBuzz to inspect fonts for creating an example string
xcf:
- Add zlib compression to XCF loading/saving
GUI:
- Add GUI to handle the new high bit depths and conversion between them
- Add new action group "filters" which can run arbitrary GEGL ops
- Add lots of actions invoking GEGL ops that replace removed plug-ins
- Preview all GEGL ops live on the canvas, using drawable filters
- Mostly switch from using stock-ids to icon-names
- Turn all stock icons into named icons and add an icon theme
- Allow selecting colors from an image's colormap
- Add "Show in file manager" to everything that has a filename
- Add an action search dialog to find actions by keyword and execute them
- Split the save dialog into subclasses for load, save and export
- Implement various color management dialogs that were in the lcms plug-in
- Make sure windows appear on the correct monitor
- Simplify and reduce the actions that modify paint tool behavior
- Add canvas rotation and flipping
- Allow zooming to the selection
- Make the image tab position configurable in single window mode
- Add separate snapping settings for fullscreen mode
- Remove bitmaps cursors and only support RGBA cursors
- Color manage drawable and image thumbnails
- Add more format string options for the image title
- Use the external gtkosxapplication package instead of included code
- Add a generic GimpPopup class and use it instead of duplicating code
- Make the generated GUI of GEGL ops much better
- Allow to implement custom GUI for gegl ops, and do that in some cases
- Add GimpDial, GimpPolar and GimpCircle to be used for angle and hue picking
Tools:
- Add an "experimental playground" for unfinished tools
- (experimental) Add a tool that paints with MyPaint brushes
- (experimental) Add an n-point deformation tool
- (experimental) Add a transform tool with a variable # of handles
- (experimental) Add a seamless clone tool
- Add a unified transform tool that allows rotating, scaling, perspective
- Add a warp tool as replacement for the IWarp plug-in
- Allow tool dialogs to be embedded on the canvas generically
- Add much more options to painting, like the ability to lock
tool options to brush defaults, and to zoom the brush with the canvas
- Make the blend tool work interactively in realtime
- Add undo/redo to many tools (using the normal shortcuts)
Libgimp:
- Deprecate the entire old pixel manipulation API
- Add API to get a drawable's buffer, the rest can be done with GEGL
- Add high bit depth support when using the new buffer API
- Make many enum value names sane and deprecate the old names
- Many core enums moved here instead of proxying them via PDB generation
- Add API to stroke vector outlines, with all core properties
- Add more context API that affects other procedures
- Deprecate API with weird names, and add new API with less arguments
- Add metadata and color management API, utility functions and widgets
- Split GimpPickButton into per-platform backends and fix it on OS X
Plug-ins:
- Remove lots of plug-ins that are now implemented as GEGL ops
- Remove the lcms plug-in, this is now done in the core/libgimp
- Remove the metadata plug-ins, this is now done in the core/libgimp
- Remove the file-uri plug-in, this is now done in the core using GIO
- Port many file plug-ins to GIO
- Port many plug-ins that are not strictly filters to GEGL
Source and build system:
- Don't use INCLUDES in Makefile.am, use AM_CPPFLAGS instead
General:
- Lots and lots of bug fixes
- Translation updates
Changelog:
Overview of Changes from GIMP 2.8.20 to GIMP 2.8.22
===================================================
GUI:
- improve drawing performance in single window mode, especially with
pixmap themes
macOS DMG:
- Make the launcher script also set BABL_PATH
- Add patch for GTK+ Bug 743717 to the build which concerns crashes
during clipboard operations with a clipboard manager active
- Add patch for GTK+ Bug 767091 to the build which concerns crashes
on some drag & drop operations
- generate OSX package metadata during build
Plug-ins:
- Fix for CVE-2007-3126, a bug in the ICO plug-in which allowed
context-dependent attackers to cause a denial of service (crash)
via an ICO file with an InfoHeader containing a Height of zero.
We couldn't reproduce any crash in recent version, but fixed the
error messages for good measure
- Avoid creating wrong layer group structure when importing PSD
files (already fixed in 2.8.20, didn't make it to the NEWS)
- Prevent a crash in PDF plug-in if images or resolution are large
- stop parsing invalid PCX files early and prevent a segmentation fault
General:
- if NOCONFIGURE is set, autogen.sh won't run configure
- VPATH builds for win32 targets have been fixed
Updated Translations:
- Basque
- Brazilian Portuguese
- Catalan
- Chinese (PRC)
- Finnish
- Greek
- Hungarian
- Italian
- Kazakh
- Norwegian
- Polish
- Slovenian
- Spanish
- Swedish
Core:
- Avoid D-Bus error message when built without D-Bus support
- fix OS X min required conditional in gimpimagewindow.c
- Saving to existing .xcf.bz and .xcf.gz files didn't truncate them
and could lead to unnecessarily large files
- Text layer created by gimp-text-fontname doesn't respect border
when resized
- avoid seeking when saving XCF files to prevent corruption with
file network shares (fixed since 2014, but not mentioned in NEWS yet)
GUI:
- Flow on Paint Dynamics editor dialog: the 'y' axis is indicating
'Rate' instead 'Flow'
- Vertical ruler shows artifacts if the status bar isn't showing
- Tablet stylus misbehaves when crossing the edge of a dock in
multi-window-mode
- Disable the new "automatic window tabbing" feature introduced on macOS
Sierra
- Improve the visiblity of slider handles with dark themes
- Make it harder to switch to renaming if selecting already selected
items in resource lists
Tools:
- make toggling to color picker mode of paint tools more robust
Libgimp:
- call gimp_file_entry_set_filename() with filename encoding
Windows Installer:
- Reduce the memory requirement when running the installer (has
already been shipped in a 2.8.18 installer-only update)
- Ship an updated libcairo to fix GTK+ UI rendering problems, like
missing palette border/bevel and shadowa under tab labels
macOS DMG:
- Ship the Tango icon theme with the DMG for a complete set of icons
- fix the way mime data is copied into the bundle
- no longer copy Pango modules into the bundle
- prevent a crash caused by drag&drop on OSX by patching the included
GTK+
- ship a patch for gettext to make sure the preferred UI language
will be used
Plug-ins:
- Prevent the Python console from closing by the Escape key
- Help browser does not launch on OS X
- Filter 'Edge Detect/Difference of Gaussians' returns empty image
- only use -xobjective-c for compile commands
- mkgen.pl: fix calls to write_file() routine to write to current
directory
- When printing, the images are composed onto a white background to
prevent printing a black box instead of a transaprent image
- Fix color visison deficiency display filters to apply gamma
correction directly
Overview of Changes from GIMP 2.8.16 to GIMP 2.8.18
===================================================
Core:
- Initialize fontconfig cache in separate thread to keep GUI
responsive on first startup
- Properly recognize layer masks as deactivated, e.g. for moving layers
- Create $XDG_DATA_HOME if it doesn't exist
- (CVE-2016-4994) Multiple Use-After-Free when parsing XCF channel
and layer properties
- Fix progress access to prevent crash on rapid sequence of commands
- Fix crash in gimp-gradient-segment-range-move
GUI:
- Disable color picker buttons on OS X to prevent a GUI lockup
- Disable "new-style" full-screen mode on OS X to prevent a crash
- Pulsing progress bar in splash screen to indicate unknown durations
- Fix gamut warning color for lcms display filter
- Fix unbolding of bold font on edit
- Prevent accidental renaming of wrong adjacent item
Installer:
- Change compression settings to decrease size by 20%
- Add Catalan, Danish, French, Dutch
Plug-ins:
- Fix crash on sRGB JPEG image drag & drop
- Fix ambiguous octal-escaped output of c-source
- Fix KISS CEL export
- Fix progress bar for file-compressor
- Make Script-Fu regex match return proper character indexes for
Unicode characters
- Fix Script-Fu modulo for large numbers
General:
- Documentation updates
- Bug fixes
- Translation updates
Core:
- Seek much less when writing XCF
- Don't seek past the end of the file when writing XCF
- Windows: call SetDLLDirectory() for less DLL hell
- Fix velocity parameter on .GIH brushes
- Fix brokenness while transforming certain sets of linked layers
GUI:
- Always show image tabs in single window mode
- Fix switching of dock tabs by DND hovering
- Don't make the scroll area for tags too small
- Fixed a crash in the save dialog
- Fix issue where ruler updates made things very slow on Windows
Plug-ins:
- Fix several issues in the BMP plug-in
- Make Gfig work with the new brush size behavior again
- Fix font export in the PDF plug-in
- Support layer groups in OpenRaster files
- Fix loading of PSD files with layer groups
General:
- OSX build system fixes
- Bug fixes
- Translation updates
Problems found with existing digests:
Package fotoxx distfile fotoxx-14.03.1.tar.gz
ac2033f87de2c23941261f7c50160cddf872c110 [recorded]
118e98a8cc0414676b3c4d37b8df407c28a1407c [calculated]
Package ploticus-examples distfile ploticus-2.00/plnode200.tar.gz
34274a03d0c41fae5690633663e3d4114b9d7a6d [recorded]
da39a3ee5e6b4b0d3255bfef95601890afd80709 [calculated]
Problems found locating distfiles:
Package AfterShotPro: missing distfile AfterShotPro-1.1.0.30/AfterShotPro_i386.deb
Package pgraf: missing distfile pgraf-20010131.tar.gz
Package qvplay: missing distfile qvplay-0.95.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
- Fix libtool versioning (forgot to bump gimp_interface_age)
Changes 2.8.12:
Core:
- OSX: Fix migration code for old GIMP directories
- Fix brush sizes when used from plug-ins
- Windows: Allow to Explorer-open files with UTF-8 characters in the filename
- Make XCF loading more robust against broken files
GUI:
- Make sure the widget direction matches the GUI language
- Remove the option to disable the warning when closing a modified image
- Fix canvas overlay widgets (like the text options) for tablets
- Make DND work between images in one dockable
Libgimp:
- Make gimp_image_get_name() return the string used for the image title
Plug-ins:
- Make script-fu-server more secure by listening to 127.0.0.1 by
default and add a warning about changing that IP. This breaks the
procedure's API, but for security reasons.
- Bring back proper script-fu translations
General:
- Massively clean up and fix the OSX build and bundle
- Add Jenkins tutorial
- Documentation updates
- Bug fixes
- Translation updates
Core:
- Set manifest as Windows 8 compatible
GUI:
- Indicate if a file was exported in the Quit dialog
- Add shortcuts and hint labels to the close and quit dialogs
that make closing and quitting easier and more consistent
- Rename the File->Export menu labels to match Save/Save as
- Fix keyboard shortcuts on OSX Mavericks
- Don't open lots of progress popups when opening many files
- Correctly restore the hidden state of docks in single window mode
Libgimp:
- Fix exporting an image consisting of a single layer group
- Don't attempt to pick transparent colors
Plug-ins:
- Fix crash in LCMS plugin if RGB profile was missing
General:
- Fix compile on NetBSD (missing -lexecinfo)
- Bug fixes
- Translation updates
Core:
- Make sure indexed images always have a colormap
- Fix language selection via preferences on Windows
- Don't crash on setting a large text size
GUI:
- Keep the same image active when switching between MWM and SWM
- Make sure all dockables are properly resizable (particularly shrinkable)
- Add links to jump directly to Save/Export from the Export/Save
file extension warning dialogs
Libgimp:
- Fix GimpPickButton on OSX
Plug-ins:
- Properly document plug-in-autocrop-layer's PDB interface
- Fix importing of indexed BMPs
General:
- Fix lots of places to use GIO to get proper file sizes and times on windows
- Add an AppData file for GIMP
- Backport lcms2 support from master, because lcms1 is not getting
bug fixes any longer
- Lots of bug fixes
- Lots of translation updates
Core:
- Fix saving to URIs, it was broken to only allow exporting, and fix
save/export of compressed files
- Fix brush spacing for drawing in any direction
- Increase the maximum size of clipboard brushes and patterns to 1024x1024
- Make sure data objects are saved when only their name was changed
GUI:
- Don't allow single-window docks to shrink smaller than their requisition
- Make sure a single-window's right docks keep their size across sessions
- Allow to change the spacing of non-generated brushes again
- In single-window mode, make Escape move the focus to the canvas,
and beep if the focus is already there
- Be smarter about unavailable fonts, and don't crash
- Make clicking the single-window's close button quit GIMP
- Make view-close (Ctrl+W) only close image windows and tabs, not docks
Libgimp:
- Add SIGNED_ROUND() which also rounds negative values correctly
Plug-ins:
- Make GIMP_PLUGIN_DEBUG work again after GLib changed logging
- Fix zealous crop for transparent borders
Installer:
- Add Hungarian translation
Data:
- Add a default "Color from Gradient" dynamics and tool preset
General:
- Lots of bug fixes
- Lots of translation updates
Core:
- Move the OSX gimpdir to "~/Library/Application Support"
GUI:
- Better names for the default filters in save and export
- Make tool drawing (esp. the brush outline) much more responsive
- Remember the "maximized" state across sessions
- Simplify the splash image code a lot, makes it appear immediately again
- Allow the text tool to start on an image without layers
- Various fixes for text style attribute handling
- Set unconfigured input devices to eraser if GTK+ says they are erasers
- Make language selectable in Preferences on OSX
Libgimp:
- Make libgimp drawable combo boxes aware of layer groups
- Make sure plug-in windows appear on top on OSX
- Fix item width in GimpPageSelector (used e.g. in PDF import)
Plug-ins:
- Better default values in the Drop Shadow script
- Fix a whole bunch of bugs in the BMP plug-in
- On OSX, use the system's screenshot utility
Installer:
- Add Brazilian-Portuguese translation to the Windows installer
Source and build system:
- Many improvements to the OSX bundle build system
- Support automake 1.13
General:
- Lots of bug fixes
- Lots of translation updates
Core:
- Add our own GimpOperationBrightnessContrast because GEGL one is different
Plug-ins:
- Fix some GFig rendering issues
Source and build system:
- Depend on Babl 0.1.10, GEGL 0.2.0 and some other new library versions
General:
- Bug fixes
- Translation updates
Bug fixes:
* GIMP 2.6.10 segfaults when CTRL-left click on a layer mask
* GIMP fails to import a path from SVG
* Crash or Gtk-CRITICAL on File->Open
* [abrt] gimp-2:2.6.11-1.fc14: py-slice.py:172:slice:TypeError: integer argument
expected, got float
* gimp(1) manpage fixes
* Sample Colorize does not function non-interactively
* file-pdf-load: Don't use deprecated API
* file-psp: fix for bogus input data
* Fixes for some buffer overflow problems
* Guard against crash due to quitting while DND is processed
* fails to build with -Werror=format-security
* script-fu: make server IPv6 aware