GIMP Changelog

What's new in GIMP 2.99.18 Development

Feb 22, 2024
  • 238 reports were closed as FIXED.
  • 201 merge requests were merged.
  • 1358 commits were pushed.
  • 26 translations were updated: Basque, Belarusian, Brazilian Portuguese, Bulgarian, Catalan, Chinese (China), Danish, Esperanto, Finnish, Georgian, German, Greek, Hungarian, Icelandic, Italian, Lithuanian, Norwegian Nynorsk, Persian, Polish, Russian, Slovenian, Spanish, Swedish, Turkish, Ukrainian, Vietnamese.

New in GIMP 2.10.36 (Nov 8, 2023)

  • Core:
  • Disable Arbitrary Rotation menus (under both Image and Layer menus) if no image is active, for consistency.
  • New gradient available: FG to Transparent (Hardedge) gradient.
  • A change in linuxwacom made some graphics tablet crash GIMP. Though the issue is in the driver (downgrading it "fixes" the issue), it was bad enough that a workaround was also added in GIMP code so that we don't crash with the newer driver. A fix was also merged on linuxwacom itself:
  • https://github.com/linuxwacom/xf86-input-wacom/issues/307
  • https://github.com/linuxwacom/xf86-input-wacom/pull/309
  • New palette import supports:
  • Adobe Swatch Exchange (ASE)
  • Adobe Color Book (ACB)
  • Generated Brush previews are now rotated clockwise with the brush angle, which goes against the documentation. Nevertheless this is how angles were used on canvas in the 2.10 branch until now, so to avoid breaking existing workflows while having consistent preview, we chose to follow actual on-canvas usage over documentation. It may be re-evaluated for GIMP 3.
  • Tool:
  • Text tool:
  • When replacing a selection, take and apply markup (if any) from the first character of the selection for the entered text. This fixes the case when you no longer can change the global layer text properties after replacing the text.
  • Set the blank font name for the standard font instead of 'Standard' to fix the issue when 'Standard' can be actual font from the list or a font which starts with (e.g. Standard Symbols PS).
  • User Interface:
  • Item tree view lock boxes:
  • now separately themable with gtkrc;
  • showing a white frame when hovering over lock buttons;
  • showing a small padlock next the lock icon when it's active.
  • Add Table of Contents to User Manual submenu (in Help menu).
  • Plug-ins:
  • Fixed vulnerabilities:
  • DDS: ZDI-CAN-22093
  • PSD: ZDI-CAN-22094
  • PSP: ZDI-CAN-22096 and ZDI-CAN-22097
  • JPEG-XL: support libjxl v0.9 decoding API.
  • Metadata editor: more DigitalSourceType values.
  • PDF are now loaded at 300PPI by default.
  • GIF:
  • Added support of non-square aspect ratio by setting different vertical and horizontal resolution when a loaded file has the PixelAspectRatio metadata set.
  • Various more file format fixes (at least GIF, PDF import, HEIF/AVIF, JPEG XL, XWD, DDS) and various fixes in non-file format related plug-ins too.
  • Image Map: HTTPS scheme now accepted in the URL field.
  • Libgimpbase:
  • Do not save Photoshop specific EXIF metadata when exporting images because they can contain sensitive data and we cannot update them.
  • We now update Exif.Photo.PixelX/YDimension Exif tags when resizing and exporting (but only if they were already present, as they are non-essential).
  • Translation:
  • 20 translations were updated: Belarusian, Catalan, Chinese (China), Danish, Dutch, Georgian, German, Greek, Hungarian, Icelandic, Italian, Lithuanian, Polish, Portuguese, Romanian, Slovenian, Spanish, Swedish, Turkish, Ukrainian.
  • Build:
  • Added code in the Windows installer script for the ARM 64-bit build, bundled into the same universal installer (though the first experimental installer with Aarch64 support was for GIMP 2.10.34 revision 2).

New in GIMP 2.10.34 (Feb 27, 2023)

  • Core:
  • Check for updates now works on macOS (backported from 2.99.14).
  • Update help IDs for better integration with the documentation website.
  • Symmetry dockable contents is now shown, yet deactivated, when no images are opened, improving discoverability (backported from 2.99.14).
  • DBus fully disabled on macOS (in some case, it could even freeze GIMP process when dbus is present yet not responding). Open With feature (e.g. from file browsers) still work fine as it uses a different code path on macOS. Other features using dbus (opening files or running batch commands from a separate GIMP process) won't work, but they probably never did on macOS anyway.
  • "Canvas Size" dialog took too much vertical space and now better uses the horizontal space by moving the preview and offset fiels to the right side, and the "Center" button just below (backported from 2.99.8).
  • Template selector (backported from 2.99.6) in resize dialog.
  • Color scale preferences (0..255/0..100 and LCh/HSV settings in Colors selection dialogs) are now remembered across sessions.
  • Eye icon header added to the item tree views to make it more obvious where to click for item visibility and links (backported from 2.99.10)
  • Revert color proofing behavior changed in 2.10.32 which resulted in inconsistent past workflows.
  • "Lock path strokes" tooltip for the dockable icon was renamed "Lock path".
  • Plug-ins:
  • DDS: make GUI translatable.
  • File-raw: added high bit depth precision export (partial backport from 2.99.12).
  • TIFF:
  • Various bug fixes;
  • Better check for invalid resolutions on import;
  • Do not generated warnings for incorrect RichTIFFIPTC tags produced by Adobe products (only output a message to stderr, for not completely ignoring these);
  • Loading "reduced" image or not is now an option. We use a heuristic for the default value of said option (trying to guess if it's a thumbnail by using common usage), but final decision is now up to one knowing the image you load (backported from 2.99.14);
  • Default TIFF export format is "normal" TIFF, not BigTIFF (making it default was definitely an error in 2.10.32).
  • PSD:
  • Various bug fixes;
  • Useless physical unit conversion removed;
  • Backported improvement (2.99.10) for importing layers with clipping set (leading to color bleeding);
  • Backported improvements (2.99.10) for importing clipping layers;
  • Paths are now exported (backported from 2.99.14).
  • WebP: more informative error messages in some cases.
  • Flame: various bug fixes.
  • JPEG-XL:
  • Metadata import backported from 2.99.14 - (requires libjxl 0.7.0)
  • Partial backport (2.99.8) of JPEG-XL export; export is always in 8bit lossless.
  • HEIF: various bug fixes.
  • Dicom: various bug fixes.
  • help:
  • Support in GIO for macOS platform).
  • Animation-play: fixed on macOS.
  • PDF:
  • Import: new option "Fill transparent areas with white" to fill the background in white (ON by default as most office PDF writers seem to rely on readers filling the background with white), allowing importing transparent PDF files.
  • Export: new option "Fill transparent areas with background color" allowing to decide whether to export a PDF with transparent background.
  • TGA:
  • Added a workaround to load wrongful TGA files exported by Krita (which they fixed on their side too now, see Krita bug 464484).
  • ICO and CUR:
  • Magics detection for these formats has been removed (now using only using filename extension) because it was interfering with the detection of certain types of TGA images (which are likely more common than ICO and CUR files, and extension for these should be reliable enough).
  • Libgimpbase:
  • GimpMetadata API (in particular the gimp_metadata_set_from_*() functions) are now much less memory-hungry (backported from the main dev branch) when using GExiv 0.12.2 or over. With some huge metadata, it could cause long freeze or even crashes of plug-ins.
  • Libgimpwidgets:
  • Color-picking with X11 is now the default when compiled with X11, even if a color-picking portal also exists, because it is always right, whereas portals return color in display space without the space information itself (i.e. without profiles).
  • New dedicated GimpPickButton implementation for Windows (backported from 2.99.14).
  • Libgimp:
  • New wrapper functions around GEGL ops, which also map to items in our Color menu:
  • Gimp_drawable_shadows_highlights()
  • Build:
  • Bumping minimum GEGL to version 0.4.38.
  • Bumping minimum libjxl to version 0.7.0.
  • New GIMP_RELEASE macro to tell if code is a release or in-between release(different from GIMP_UNSTABLE which was telling if we are in a stable or
  • Development branch).
  • Our stable CI now uses Debian stable where Python2 is still present.

New in GIMP 2.99.12 Development (Aug 29, 2022)

  • Core Features:
  • On-canvas brush sizing
  • Customizable on-canvas modifiers
  • Testing new Zoom behaviors
  • Improved tool pointers
  • Improving again the “Fill by line art detection” of Bucket Fill tool
  • Customizable checkerboard colors
  • Welcome Dialog
  • Pinching gesture for more usage
  • CMYK:
  • Simulation data is now image data
  • Simulation toggle in the status bar
  • Various GUI now simulation-aware
  • Export formats with new or improved CMYK support
  • New plug-in API
  • Themes:
  • File format support:
  • PSD
  • SVG
  • GIF
  • PNG
  • DDS
  • FLI
  • Raw data
  • New format: WBMP
  • New format: ANI
  • Script-fu:
  • Script-fu server now its own plug-in
  • New separate interpreter
  • Rethinking the API
  • API:
  • Batch processing:
  • Build and documentation:
  • meson (message to packagers)
  • Gettext
  • Platform support:
  • Wayland
  • macOS
  • babl and GEGL:
  • babl 0.1.94/0.1.96
  • GEGL 0.4.38

New in GIMP 2.10.32 Revision 1 (Jun 21, 2022)

  • Fixes issue #8280: AVIF import

New in GIMP 2.10.32 (Jun 13, 2022)

  • 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 tough 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 phoshop (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).

New in GIMP 2.10.30 (Dec 20, 2021)

  • 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.
  • 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 metadataplug-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 PSDfile 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.

New in GIMP 2.10.28 (Sep 23, 2021)

  • Bug fixes for GIMP on Windows:
  • Very slow file dialogs: it used to happen when network devices were slow or unavailable, or pluggable devices disconnected, or even because of fake floppy drives configured in the BIOS. GLib was using an inappropriate Windows API to get some information about drives. This has been fixed! (#913, glib!2020)
  • Opening files in specific third-party software was crashing GIMP: apparently, these applications were editing the file-handling registry field while GLib had a buggy watcher on the registry. (#6780, glib!2205, glib!2210)
  • GTK was outputting the wrong character on some keyboard input using Input Engines (e.g. alphanumeric characters were interpreted as half-width katakana when using the Japanese IME). (#1603, gtk!3741)
  • TIFF exporting used to lock the TIFF files because of a bug in the Windows thumbnailer (Explorer.exe would acquire a lock on the file and never release it). Since Microsoft doesn’t seem to want to fix this long-standing bug, we decided to switch to another way of creating thumbnails by adding a “reduced-resolution image” as the second page of the TIFF, as proposed in the TIFF specification, instead of adding a subifd thumbnail. This takes care of the lock issue in a nice way, bypassing Explorer‘s bug. Of course, it means that programs that can’t reads tags properly might try opening thumbnails as additional pages, even though it is explicitly annotated as “reduced-resolution image“. If you ever run into this very issue, please report it to developers of such programs. What they need to check is the SubFile type of the pages their software opens (as per TIFF specification). (#3740)
  • GIMP used to prevent some applications to open, when these programs needed to watch some specific directory, because GLib was reading directory with inappropriate access rights. Actually, this fix has been available since GIMP 2.10.24. (#4594, glib!1976)
  • Windows software with invisible windows (e.g. gesture shortcuts, screen capture and the like) used to interfere with GTK software and break some mouse interactions. We have had a patch for this, by Ell, since 2017, which we used for all GIMP 2.10.x releases. Unfortunately, with GTK2 maintenance stopped, our patch was only available in the bugtracker and in our binaries, while it was beneficial to other GTK software, even in GTK3 or newer. It has only recently been reworked and improved by Luca Bacci so that this problem is now officially fixed in GTK3 too! (#1082, gtk!2767)
  • The Dashboard dockable now has memory support in OpenBSD.
  • Performance improvements for GIMP on macOS Big Sur were applied in our macOS packages since GIMP 2.10.22 as experiments. We felt confident enough to move the code to our main codebase.
  • The following plug-ins received fixes: C-source, DICOM, GIF, PS, Sunras, BMP, DDS, PSD, TIFF, Gimpressionist, metadata viewer and several script-fu scripts as well as the script-fu interpreter itself.
  • Some accessibility issues in themes were fixed, such as mouse-hover feedback or problematic colors.
  • A new Script-Fu function (dir-make) enables to create directories from scripts.

New in GIMP 2.10.24 Revision 2 (Apr 2, 2021)

  • Custom GTK fixes for issues like drag&drop with certain screen grabbers (issue #1082), tiny SVG icons (issue #1563) and pasting images from some other applications (issue #3481).

New in GIMP 2.10.24 (Mar 31, 2021)

  • Core:
  • Ignore Pentax and PentaxDng metadata at export because they are unsupported.
  • DBus calls (remote file open, typically with double click on file browser; and remote command run) are now processed after all command line files (in case of calls during startup) and in the call order (FIFO) for consistency. Some timeout has also been added to not spam the core process with non-processable DBus calls during startup.
  • Display profile name in "Color space" field of Image Properties and improve ellipsis & wrap on dialog fields whose contents' size is not controllable together with better dialog size management.
  • Fix stack overflow when loading very large XCF files on Windows.
  • Point snapping now works outside the canvas. This is used for snap to guides, grid and vectors. Snap to grid only works off-canvas when "Show All" is enabled because off-canvas grid is not visible otherwise, though snap to guide and vectors will always work off-canvas.
  • Libgimp:
  • Various metadata improvements:
  • Improve reading of iptc tags that appear more than once.
  • Plug-ins:
  • JPEG export will better advertize when metadata export fails, possibly with relevant error message. Image export would not fail, but at least we make the person aware metadata is not properly exported.
  • More robust TIFF import and export:
  • Better handling of Exif.Thumbnail.* tags on export.
  • Import now ignores TIFF pages with invalid directory (rather than freezing and output an error to warn of possible data loss).
  • Import attempts to count the directories by reading them when the headers does not announce any directory, which allows to salvage images with improper header. Also if reading of a directory fail, we now output a message to warn of possible data loss.
  • Fixed loading 2 and 4-bit TIFF images in grayscale and indexed.
  • Improve support of ExtraSamples fields with non-conformant TIFF files.
  • Improve loading of multi page tiffs with linear TRC.
  • More safety checks as a result of fuzz-testing.
  • Improve loading of MinIsWhite and MinIsBlack images.
  • GeoTIFF tag support added (recognized and stored into image parasites at import, then exported back when TIFF format is used) with appropriate "Save GeoTIFF data" checkbox (checked by default) to disable GeoTIFF metadata export when not desired.
  • The metadata viewer and editor got a big cleaning and refactoring
  • Pass, as well as various fixes and several improvements:
  • Fix handling of IPTC tags which can appear more than once (such as "Keywords") in both the viewer and editor.
  • Always read both the IPTC and XMP equivalent tags in the editor, instead of assuming they are necessarily the same.
  • More IPTC equivalents of XMP tags added:
  • Iptc.Application2.LocationName <=> Xmp.iptc.Location
  • Iptc.Application2.BylineTitle <=> Xmp.photoshop.AuthorsPosition
  • Iptc.Application2.CountryCode <=> Xmp.iptc.CountryCode
  • Iptc.Application2.Writer <=> Xmp.photoshop.CaptionWriter
  • The editor now properly saves IPTC tags.
  • Improve UTF-8 conversion to avoid double string conversion (hence
  • actually breaking encoding).
  • Use proper unit abbreviations and proper label casing.
  • GPS data is now properly formatted with better precision and with
  • Translatable string parts and tooltips are added to explain how to
  • Correctly edit GPS data (latitude, longitude, altitude).
  • Also seconds part of latitude/longitude is now saved with more
  • Precision and altitude details now switch from .1m to .10m.
  • Better error reporting when the editor fails to write a tag, with proper GUI error, so that such error do not go unseen.
  • Better error handling when closing the editor or viewer too, and improve error handling when the calendar dialog fails.
  • Use a logging domain for debugging-only messages which pollutes the output.
  • Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:* override the shorter forms Xmp.iptc.Ci* if both are present, since the longer form is more common.
  • Improve saving of XMP metadata.
  • And more bug fixes and refactoring steps to get rid of duplicate code.
  • PNG will now prompt only for layer offset different from zero. Some software were always setting an offset of 0 (e.g.: POV-Ray v3.7) so GIMP would unecessarily prompt the user until now for PNG created by such software.
  • BMP:
  • Allow loading of BMP images with incorrect BI_BITFIELDS compression.
  • Support loading more bit depth such as 24bpp images.
  • File-darktable:
  • Support updated Lua API of darktable 3.6 and beyond;
  • Adding environment contents to debugging output when
  • DARKTABLE_DEBUG env variable is set.
  • PDF import:
  • New option to reverse order of layer.
  • Support fractional DPI (allowing accurate page dimensions).
  • DDS:
  • Set blue channel of BC5 dds images to 0 instead of 255.
  • Fix DDS BC5 compression/decompression with Red and Blue swapped.
  • We detect images created by an older GIMP on loading and swap the channels back.
  • HEIF:
  • Removes the "HDR" mention on HEIF 10/12-bit export because high bit depth does not necessarily means HDR.
  • Runtime detection of HEIC and AVIF file formats (depending on available encoders and decoders), which allows afterwards update of the dependency, but also allows usage for a single format (e.g. for distributions which want to support only AVIF).
  • With libheif 1.10, visually lossless export is possible for 10/12 bit depths too
  • PSD:
  • More flexible reading of layer mask record size, skipping invalid or unsupported mask info size, hence allowing us to load more PSD files (at least the part of a PSD we support instead of failing the whole import altogether).
  • G3 fax images:
  • Improve error handling when loading.
  • Be more forgiving on bad lines which were quite frequent on older fax images, allowing to salvage some old images.
  • Build:
  • Some configure fixes for autoconf-2.70 support.
  • Adwaita's legacy "software-update-available" icon is now bundled with GIMP to handle the possibility of them being absent from your system theme (typically it was missing on our Windows build).
  • Installer:
  • New Slovak translation.
  • Translations:
  • Kabyle translation added.
  • Build:
  • Bumping minimum GEGL to version 0.4.30.

New in GIMP 2.10.20 (Jun 12, 2020)

  • Release highlights:
  • Tool-group menus can now expand on hover
  • Non-destructive cropping now available by cropping the canvas rather than actual pixels
  • Better PSD support: exporting of 16-bit files now available, reading/writing channels in the right order
  • On-canvas controls for the Vignette filter
  • New filters: Bloom, Focus Blur, Lens Blur, Variable Blur
  • Blending options now built into filter dialogs
  • Over 30 bugfixes
  • Other changes:
  • Painting tools can now save and load opacity and blending mode to/from presets.
  • Canon CR3 files are now properly recognized by GIMP and sent to your raw developer software of choice.
  • The TWAIN plug-in used for acquiring images via scanners has been slightly refactored and now supports 16-bit RGB/grayscale images.
  • PNG and TIFF plug-ins now default to not saving color values when alpha channel is present and 0 itself. This is to address security concerns about using simple cutting to remove sensitive information.
  • The PDF plug-in now imports multi-page documents in bottom-first order, similar to animated formats, and also similar to defaults for PDF exporting. This brings consistency but breaks existing behavior in 3rd party scripts.

New in GIMP 2.10.14 (Dec 9, 2019)

  • Here are release 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
  • Out-of-canvas viewing and editing:
  • Not being able to view and edit data outside the canvas boundary used to be a deal breaker in quite a few use cases. So this is going to be a bit of a breakthrough moment for quite a few users.
  • This is what has changed:
  • There is now a new Show All mode accessible via the View menu that reveals all pixels outside the canvas boundary.
  • This mode uses alpha checkerboard for canvas padding, but you can configure GIMP to temporarily or permanently use the usual padding color instead.
  • You can also enable canvas boundary cue display (dotted red line).
  • Color- and patch-picking, bucket-filling, and transforming now works outside the canvas. Which means you can crop past the canvas boundary or pick a source patch from outside the canvas area to heal an area inside the canvas.
  • New Image mode in transform tools:
  • This new feature is closely related to out-of-canvas viewing and editing and was also contributed by Ell.
  • Now when you e.g. rotate a single-layer image, you can use this transform type to automatically expand the canvas to include all of rotated pixels when using the default Adjust clipping mode. The switch is right next to layer/path/selection toggle at the top of any transform tool’s settings.
  • It’s complemented by a new Image > Transform > Arbitrary Rotation… menu entry, which activates the rotate tool in the Image mode.
  • Filters can now extend beyond layer boundary:
  • The result of some filters can be larger than the original layer. A very common example is Drop Shadow, which adds a shadow at an offset to the layer. Such filters are no longer clipped to the layer boundary by default. Instead, the layer is automatically resized as necessary when the filter is applied.
  • This behavior can be toggled through the new Clipping option in the filter dialog.
  • Invisible layers can now be edited:
  • There is now a global toggle to enable the editing of layers with disabled visibility (the eye icon in the layers docker). There was some demand for it from users, and it was easy to do, so a new contributor, woob, added this feature.
  • Free Select tool update:
  • The Free Select tool received further usability improvements. It now supports using Alt+drag to quickly move, cut, and copy the selection, without having to commit the selection first, similarly to the rest of the selection tools.
  • Foreground Select tool update:
  • Thomas Manni contributed a new Grayscale preview mode to the Foreground Select tool, which allows seeing the resulting mask in black and white. The usual preview mode is now called Color and choosing the color and opacity for the mask instead of imposing only 4 colors (red, green, blue, grey).
  • Feather Selection update:
  • The Feather Selection dialog has a new Selected areas continue outside the image toggle, working similarly to the corresponding option in the Shrink Selection and Border Selection dialogs. This option affects the border behavior of the operation: when toggled, selected areas along the image border are assumed to continue past the image bounds, and are therefore not affected by the feather.
  • New filters:
  • Thanks to Ell, GIMP is now shipping with a simple Normal Map filter (Filters > Generic) that generates normal maps from height maps. This is early initial work, a lot more is expected to be done.
  • GIMP now provides direct access to more GEGL filters
  • Bayer Matrix (for ordered dithering) and Linear Sinusoid (useful for halftoning), also both created by Ell, are in the Filters > Render > Pattern menu.
  • Newsprint (Filters > Distorts), by Øyvind Kolås, is a GEGL version of the old GIMP filter for halftoning, plus quite a few extras.
  • Mean Curvature Blur, by Thomas Manni, can be helpful to do edge-preserving blurring.
  • Also, more GEGL-based filters with on-canvas preview have replaced old GIMP counterparts: Neon (Filters > Edge-Detect), Stretch Contrast (Colors > Auto), and Oilify (Filters > Artistic).
  • Moreover, Michael Natterer did a simple 8-bit per channel port of 27 older filters to use GEGL buffers (they are still GIMP filters, not GEGL operations). Another filter, Van Gogh, got higher bit depth support (up to 32bpc float).
  • HEIF, TIFF, and PDF support improvements:
  • GIMP now supports ICC profiles in HEIF images at both loading and exporting time when built with libheif v1.4.0 and newer. The exporting dialog also features a new “Save color profile” checkbox.
  • The TIFF importer now asks how to process unspecified TIFF channels: use as non-premultiplied alpha (used to be the default), as premultiplied alpha, or just import as a generic channel. This fixes a known bug with 4-channel (RGBA) TIFF files as demonstrated here.
  • Finally, the PDF exporter was fixed by Lionel to export text layers inside layer groups as text correctly.
  • Better loading of corrupted XCF files:
  • XCF loading is now a bit more resilient to corruption: it doesn’t stop any more at the first layer or channel error; instead it tries to load more layers/channels to salvage as much data as possible from a corrupted XCF file.
  • Improvements for the macOS version:
  • Alex Samorukov introduced various improvements to the macOS build of GIMP.
  • First and foremost, GIMP is now compatible with macOS Catalina and doesn’t have the file permission issue that the 2.10.12 build had.
  • Secondly, the DMG will now open a window with an Applications shortcut that explains how to install it. He also added some fixes for command line users.
  • Finally, Alex built the new version with updated 3rd party components. Among other things, this means support for color profiles in HEIF/HEIC files.

New in GIMP 2.10.12 (Jun 15, 2019)

  • Improving curves editing and Curves tool:
  • Generic curves interaction
  • The interaction with curves in general has been greatly enhanced, which is an improvement both to the Curves tool and all other places where curves need tweaking (currently paint dynamics and input device settings):
  • Relative motion when dragging points
  • When dragging an existing curve point, it won’t “jump” anymore to the cursor position upon pressing the button. Instead it will move relatively to its current position as the cursor moves. This allows selecting a point with a quick click without moving it, and adjusting a point position more easily.
  • Additionally, when the cursor hovers above a point, or when dragging a point, the coordinate indicator now show the point’s position, rather than the cursor’s.
  • Snap to curve when holding Ctrl
  • When holding down Ctrl while adding or dragging a point, the Y-coordinate will snap to the original curve. This is particularly useful for adding points along the curve.
  • Likewise, the coordinate indicator shows the snapped coordinates.
  • Curves tool specific interaction
  • Additionally, some improvements are specific to the Curves tool:
  • Numeric input of Curves tool points
  • Two new spin-buttons labelled “Input” and “Output” are now available in the Curves tool interface. They allow setting the selected point’s coordinates numerically and accurately if needed.
  • Add smooth or corner curve-point types
  • Control points can now be either smooth or corner points. Smooth points produce a smooth curve, while corner points result in sharp angles (previously, all points were smooth and this is still the default).
  • Corner points are displayed using a diamond shape, instead of a circle and the type can be changed in the Curves tool.
  • TIFF now has layer support!
  • Thanks to Tobias Ellinghaus, well known as a darktable developer, TIFF can now export images without merging layers.
  • Support of user-installed fonts on Windows
  • Though not fully tested, we now have a temporary support of a new Windows 10 feature. Windows 10 users indeed now have the ability to install fonts without admin permissions since a recent update.
  • Therefore we added this non-admin font folder to our search path when running GIMP. It should be only a temporary workaround since eventually this should be supported by fontconfig, the upstream library used to manage fonts.
  • Note also that it is not fully tested because of our lack of Windows developers. Therefore we are mostly hoping it will work as expected, and this is a good time to make a call again:
  • Are you a Windows developer? Do you love GIMP? Please contribute!
  • Seriously, none of our current developers use Windows and bugs are piling up in our bug tracker for this platform (same can be said on macOS by the way), whereas GIMP is so enjoyably stable on GNU/Linux. We are happy to do the occasional good deeds, but there are limits to what we can do for a platform we don’t use. On the other hands, we happily welcome patches and new contributors!
  • Faster painting
  • GIMP now doesn’t replace the paint buffer on every dab if the paint color/pixmap hasn’t changed. This results in faster painting on specific cases.
  • As a by-product of the change, the color-from-gradient dynamics is now fixed when the image has a color profile.
  • Incremental mode in the Dodge/Burn tool
  • The Dodge/Burn tool got a new “Incremental” option which, similarly to the Paintbrush, Pencil, and Eraser tools, applies the effect incrementally as the pointer moves.
  • Free Select tool creates preliminary selection
  • One of GIMP 2.10.0 changes which annoyed many people was that the Free Select tool was not creating a selection immediately when the region was closed. One was forced to perform an additional confirmation step (Enter or double-click).
  • This was done on purpose because we wanted to leave ability to tweak the polygonal selection that is built into the Free Select tool. Yet it could obviously be better, proof being the Rectangle Select tool which still allowed to edit the rectangle even though a selection was pre-created.
  • The Free Select tool now works the same way: even though a preliminary selection exists (allowing to directly copy or delete a contents without additional step), you will still be able to edit this free selection as long as you don’t start another selection nor change tools.
  • New Offset tool:
  • New Offset tool shifts pixels and optionally wraps them around the edges so that you could create repeatable patterns.
  • Offset filter New Offset tool used to make a repeatable heart pattern
  • There’s a simple on-canvas interaction available: just drag on the canvas to shift the layer.
  • You can activate the new filter either via Layer > Transform > Offset menu, or via Shift+Ctrl+O shortcut.
  • Moving an intersecting pair of guides
  • The Move tool can now move together an intersecting pair of guides. by dragging the guides at their point of intersection. This is useful when the guides are used to mark a point, rather than a pair of lines (e.g., as is the case for the mandala symmetry guides, which mark the symmetry’s point of origin).
  • Bug fixing:
  • Many bugs were fixed, some more severe than others (in particular a few crashes), as well as some code cleaning, factorization, and so on. The usual deal!
  • More than the new features, we actually thought these issues were enough to warrant this new release.
  • Among most pesky bugs fixed:
  • crashes for various reasons, with more crashes to fix yet;
  • various color management related bugs;
  • unwanted change of foreground and background colors in tools’ presets;
  • brush transformation improved and fixed in various places in symmetry painting mode;
  • a few localization bugs, and most importantly broken translation display for several supported languages (so far, we believe it to be a bug in the Pango dependency);
  • some brush format bugs;
  • And more. GIMP 2.10.12 is the result of about 200 commits in 2 months! We will focus below on two specific bug fixing which deserve mentioning.
  • Improved symmetry painting support
  • The symmetry painting backend got some improvements, which resulted in a few fixes, in particular some artifacts could occur with big brushes or in the Clone/Heal tool when the brush was cropped to the bounds of a drawable. These are now fixed.
  • In the Ink tool as well, the brush shape was not properly transformed. This has been fixed as well.
  • Just open the Symmetry Painting dockable dialog, choose a type of symmetry and paint away!
  • Color space mixup on exporting images:
  • Several people noticed that exporting some images ended up in washed-up colors sometimes. This was because in some cases, we were exporting by error sRGB colors with a linear profile (especially visible in GIMP 2.10.10 since we were exporting profiles by default even when using a default GIMP profile). We fixed this and took the opportunity to improve GIMP’s export logics.
  • Now we are always exporting an explicitly set profile as-is, and pixel colors are stored according to this profile expectation. If you manually assigned a profile, GIMP should indeed always follow your request.
  • On the other hand, if no explicit profile was set, we implemented various strategies depending on the format:
  • If the export format is able to store high-bit depth colors (e.g. PNG up to 16-bit and TIFF up to 64-bit), we follow the work format.
  • If the export format is 8-bit only (such as JPEG), we transform the data to sRGB in order to avoid posterization and shadow artifacts (except if your work format is 8-bit linear, then we leave it as 8-bit linear for minimal loss).
  • Note that there are still edge cases which we may not find optimal yet regarding how profiles are handled. These should all be greatly improved when we will merge the “Space Invasion” code (an ongoing mid-term project, as we were already talking about it when releasing GIMP 2.10.8). This code merge should hopefully happen soon enough!
  • Around GIMP
  • GEGL and babl:
  • During this development span, GEGL 0.4.16 got released (91 commits), as well as babl 0.1.64 (31 commits) and 0.1.66 (7 commits).
  • The biggest user-visible change is probably the cubic sampler coefficient change, which used to produce smooth interpolation, suitable for some cases, but not as sharp as people would expect in most other cases. Now in all places where there is choice of interpolation (all transformation tools, Warp Transform tool, etc.), the result with cubic has changed and produces sharper results.
  • Another notable improvement in GEGL is an updated memory management, by conditionally freeing memory from the heap (thanks to manual calls of malloc_trim()), hence forcing the underlying libc to release memory more often. This behavior is especially suitable for long-running applications whose memory need can greatly vary, such as GIMP. In practice, it means that GIMP process’ memory size will now shrink much faster when you will close big images on supporting systems.

New in GIMP 2.10.10 (Apr 8, 2019)

  • Line art detection in the Bucket Fill tool for comic artists
  • Various usability improvements in transformation tools
  • Sample Merged option added to the Heal tool and fixed in the Clone tool
  • Parametric brushes now have 32-bit per channel precision
  • Easier brush and pattern creation workflow
  • On-canvas layer selection
  • Faster saving/exporting and layer groups rendering
  • Initial DDS support
  • Many improvements in GEGL, the image processing engine

New in GIMP 2.10.8 (Nov 10, 2018)

  • Bug fixes and optimizations

New in GIMP 2.10.6 (Aug 21, 2018)

  • Main changes:
  • Vertical text layers:
  • GIMP finally gets support for vertical text (top-to-bottom writing)! This is a particularly anticipated feature for several East-Asian writing systems, but also for anyone wishing to design fancy vertical text.
  • For this reason, GIMP provides several variants of vertical text, with mixed orientation (as is typical in East-Asian vertical writing) or upright orientation (more common for Western vertical writing), with right-to-left, as well as left-to-right columns.
  • Thanks to Yoshio Ono for the vertical text implementation!
  • New filters:
  • Two new filters make an entrance in this release:
  • Little Planet:
  • This new filter is built on top of the pre-existing gegl:stereographic-projection operation and is finetuned to create “little planets” from 360×180° equirectangular panorama images.
  • Long Shadow:
  • This new GEGL-based filter simplifies creating long shadows in several visual styles.
  • There is a handful of configurable options, all helping you to cut extra steps from getting the desired effect.
  • The feature was contributed by Ell.
  • Improved straightening in the Measure tool:
  • A lot of people appreciated the new Horizon Straightening feature added in GIMP 2.10.4. Yet many of you wanted vertical straightening as well. This is now possible.
  • In the Auto mode (default), Straighten will snap to the smaller angle to decide for vertical or horizontal straightening. You can override this behavior by specifying explicitly which it should be.
  • Optimized drawable preview rendering:
  • Most creators working on complex projects in GIMP have had bad days when there are many layers in a large image, and GIMP can’t keep up with scrolling the layers list or showing/hiding layers.
  • Part of the reason was that GIMP couldn’t update user interface until it was done rendering layer previews. Ell again did some miracles here by having most drawable previews render asynchronously.
  • For now, the only exception to that are layer groups. Rendering them asynchronously is still not possible, so until we deal with this too, we made it possible for you to disable rendering layer group previews completely. Head over to Preferences > Interface and tick off the respective checkbox.
  • One more thing to mention here. For technically-minded users, the Dashboard dockable dialog (introduced in GIMP 2.10.0) now displays the number of async operations running in the Misc group.
  • A new localization: Marathi:
  • GIMP was already available in 80 languages. Well, it’s 81 languages now!
  • A team from the North Maharashtra University, Jalgaon, worked on a Marathi translation and contributed a nearly full translation of GIMP.
  • Of course, we should not forget all the other translators who do a wonderful work on GIMP. In this release, 13 other translations were updated: Brazilian Portuguese, Dutch, French, German, Greek, Italian, Latvian, Polish, Romanian, Russian, Slovenian, Spanish, and Swedish.
  • Thanks everyone!
  • File dialog filtering simplified:
  • A common cause of confusion in the file dialogs (opening, saving, exporting…) was the presence of two file format lists, one for displaying files with a specific extension, the other for the actual file format choice. So we streamlined this.
  • There is just one list available now, and it works as both the filter for displayed images and the file format selector for the image you are about to save or export.
  • Additionally, a new checkbox allows you to display the full list of files, regardless of the currently chosen file format. This could be useful when you want to enforce an unusual file extension or reuse an existing file’s name by choosing it in the list and then appending your extension.
  • The end of DLL hell? A note to plug-in developers:
  • A major problem over the years, on Windows, was what developers call the DLL hell. This was mostly caused either by third-party software installing libraries in system folders or by third-party plug-ins installing themselves with shared libraries interfering with other plug-ins.
  • The former had already been mostly fixed by tweaking the DLL search priority order. This release provides an additional fix by taking into account 32-bit plug-ins running on 64-bit Windows systems (WoW64 mode).
  • The latter was fixed already since GIMP 2.10.0 if you installed your plug-ins in its own directory (which is not compulsory yet, but will be in GIMP 3).
  • E.g. if you have a plug-in named myplugin.exe, please install it under plug-ins/myplugin/myplugin.exe. This way, not only you won’t pollute other plug-ins if you ever included libraries, but your plug-in won’t be prevented from running by unwanted libraries as well. All our core plug-ins are now installed this way. Any third-party plug-ins should be as well.
  • Ongoing Development:
  • Prepare for the space invasion:
  • Meanwhile, taking place simultaneously on the babl, GEGL, and GIMP 2.99 fronts, pippin and Mitch embarked on a project internally nicknamed the “space invasion“, the end goal of which is to simplify and improve color management in GIMP, as well as other GEGL-based projects.
  • About a year ago, babl, the library used by GIMP and GEGL to perform color conversions, gained the ability to tie arbitrary RGB color spaces to existing pixels formats. This, in turn, allowed GIMP to start using babl for performing conversions between certain classes of color profiles, instead of relying solely on the LCMS library, greatly improving performance. However, these conversions would only take place at the edges between the internal image representation used by GIMP, and the outside world; internally, the actual color profile of the image had limited effect, leading to inconsistent or incorrect results for certain image-processing operations.
  • The current effort seeks to change that, by having all image data carry around the information regarding its color profile internally. When properly handled by GEGL and GIMP, this allows babl to perform the right conversions at the right time, letting all image-processing operations be applied in the correct color space.
  • While the ongoing work toward this goal is already available in the mainline babl and GEGL versions, we are currently restricting it to the GIMP 2.99 development version (to become GIMP 3.0), but it will most likely make its way into a future GIMP 2.10.x release.
  • GIMP extensions:
  • Lastly Jehan, from ZeMarmot project, has been working on extensions in GIMP. An extension could be anything from plug-ins to splash images, patterns, brushes, gradients… Basically anything which could be created and added by anyone. The end goal would be to allow creators of such extensions to upload them on public repositories, and for anyone to search and install them in a few clicks, with version management, updates, etc.
  • This work is also only in the development branch for the time being, but should make it to a GIMP 2.10.x release at some point in the future as well.
  • Keep in mind that pippin and Jehan are able to work on GEGL and GIMP thanks to crowdfunding and the support of the community. Every little bit helps to support their work and helps to make GIMP/GEGL even more awesome!

New in GIMP 2.10.4 (Jul 6, 2018)

  • The latest update of the stable series delivers bugfixes, simple horizon straightening, async fonts loading, fonts tagging, and more new features.

New in GIMP 2.10.2 (May 22, 2018)

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

New in GIMP 2.10.0 (Apr 30, 2018)

  • Image processing nearly fully ported to GEGL, allowing high bit depth processing, multi-threaded and hardware accelerated pixel processing, and more
  • Color management is a core feature now, most widgets and preview areas are color-managed
  • Many improved tools, and several new and exciting tools, such as the Warp transform, the Unified transform and the Handle transform tools
  • On-canvas preview for all filters ported to GEGL
  • Improved digital painting with canvas rotation and flipping, symmetry painting, MyPaint brush support…
  • Support for several new image formats added (OpenEXR, RGBE, WebP, HGT), as well as improved support for many existing formats (in particular more robust PSD importing)
  • Metadata viewing and editing for Exif, XMP, IPTC, and DICOM
  • Basic HiDPI support: automatic or user-selected icon size
  • New themes for GIMP (Light, Gray, Dark, and System) and new symbolic icons meant to somewhat dim the environment and shift the focus towards content (former theme and color icons are still available in Preferences)
  • And more, better, more, and even more awesome

New in GIMP 2.10.0 RC 2 (Apr 20, 2018)

  • Optimizations and multi-threading for painting and display:
  • A major regression of GIMP 2.10, compared to 2.8, was slower painting. To address this issue, several contributors (Ell, Jehan, Massimo Valentini, Øyvind Kolås…) introduced improvements to the GIMP core, as well as to the GEGL and babl libraries. Additionally, Elle Stone and Jose Americo Gobbo contributed performance testing.
  • The speed problems pushed Ell to implement multi-threading within GIMP, so that painting and display are now run on separate threads, thus greatly speeding up feedback of the graphical interface.
  • The new parallelization framework is not painting-specific and could be used for improving other parts of GIMP.
  • Themes rewritten:
  • Since the development version 2.9.4, we had new themes shipped with GIMP, and in particular dark themes (as is now common for creative applications). Unfortunately they were unmaintained, bugs kept piling up, and the user experience wasn’t exactly stellar.
  • Our long-time contributor Ville Pätsi took up the task of creating brand new themes without any of the usability issues and glitches of previous ones. While cleaning up, only the Gray theme has been kept, whereas Light and Dark were rewritten from scratch. Darker and Lighter themes have been removed (they won’t likely reappear unless someone decides to rewrite and contribute them as well, and unless this person stays around for maintenance).
  • Gradient tool improved to work in linear color space:
  • Thanks to Michael Natterer and Øyvind Kolås, the gradient tool can now work in either perceptual RGB, linear RGB, or CIE LAB color space at your preference.
  • We also used the opportunity to rename the tool, which used to be called “Blend tool” until now, even though barely anyone uses such name. “Gradient tool” is a much more understandable naming.
  • New on-canvas control for 3D rotation:
  • A new widget for on-canvas interaction of 3D rotation (yaw, pitch, roll) has been implemented by Ell. This new widget is currently only used for the Panorama Projection filter.
  • Improvements in handling masks, channels, and selections
  • GIMP doesn’t do any gamma conversion when converting between selection, channels, and masks anymore. This makes the selection -> channel -> selection roundtrips correct and predictable.
  • Additionally, for all >8-bit per channel images, GIMP now uses linear color space for channels. This and many other fixes in the new release were done by Michael Natterer.
  • Translations:
  • 8 translations have been updated between the two release candidates. We are very close to releasing the final version of GIMP 2.10.0. If you plan to update a translation into your language and be in time for the release, we recommend starting now.
  • GEGL changes:
  • Mosty of the changes in GEGL since the release in March are performance improvements and micro-optimizations in display paths. Additionally, avoiding incorrectly gamma/ungamma correcting alpha in u8 formats provides a tiny 2-3% performance boost.
  • For further work on mipmaps support, GEGL now keeps track of valid/invalid areas on smaller granularity than tiles in mipmap.
  • The Panorama Projection operation got reverse transform, which permits using GIMP for retouching zenith, nadir or other arbitrary gaze directions in equirectangular, also known as 360×180 panoramas.
  • Finally, abyss policy support in the base class for scale operations now makes it possible to achieve hard edges on rescaled buffers.

New in GIMP 2.10.0 RC 1 (Mar 27, 2018)

  • NEW FEATURES:
  • Dashboard dockable:
  • A new Dashboard dock helps with monitoring GIMP’s resource usage to keep things in check, allowing you to make more educated decisions about various configuration options. On the developer side, it also helps us in debugging and profiling various operations or parts of the interface, which is important in our constant quest to improve GIMP and GEGL, and detect which parts are the biggest bottlenecks.
  • Debug dialog:
  • What we consistently hear from users is that they have had zero GIMP crashes in years of using it. Still, as with any software, it is not exempt from bugs, and unfortunately sometimes might even crash. While we encourage you to report all bugs you encounter, we do admit that producing useful information for a report can be difficult, and there is little we can do about a complaint that says “GIMP crashed. I don’t know what I was doing and I have no logs”. So GIMP now ships with a built-in debugging system that gathers technical details on errors and crashes. On development versions, the dialog will be raised on all kind of errors (even minor ones). On stable releases, it will be raised only during crashes. The default behavior can be customized in Edit > Preferences > Debugging.
  • Image recovery after crash:
  • With the debugging system in place to detect a crash, it was easy enough to add crash recovery. In case of a crash, GIMP will now attempt to backup all images with unsaved changes, then suggest to reopen them the next time you start the application.
  • This is not a 100%-guaranteed procedure, since a program state during a crash is unstable by nature, so backing up images might not always succeed. What matters is that it will succeed sometimes, and this might rescue your unsaved work!
  • Shadows-Highlights:
  • This new filter is now available in GIMP in the Colors menu thanks to a contribution by Thomas Manni who created a likewise named GEGL operation.
  • The filter allows adjusting shadows and highlights in an image separately, with some options available. The implementation closely follows its counterpart in the darktable digital photography software.
  • COMPLETED FEATURES:
  • Layer masks on layer groups:
  • Masks on layer groups are finally possible! This work, started years ago, has now been finalized by Ell. Group-layer masks work similarly to ordinary-layer masks, with the following considerations.
  • The group’s mask size is the same as group’s size (i.e., the bounding box of its children) at all times. When the group’s size changes, the mask is cropped to the new size — areas of the mask that fall outside of the new bounds are discarded, and newly added areas are filled with black (and hence are transparent by default).
  • JPEG 2000 support ported to OpenJPEG:
  • JPEG 2000 images importing was already supported, using the library called Jasper. Yet this library is now deprecated and slowly disappearing from most distributions. This is why we moved to OpenJPEG. In particular, now GIMP can properly import JPEG 2000 images in 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). Images in YCbCr and xvYCC color spaces will be converted to sRGB. JPEG 2000 codestream files are also supported. While color space can be detected for JPEG 2000 images, for codestream files you will be asked to specify the color space.
  • Linear workflow updates:
  • Curves and Levels filters have been updated to have a switch between linear and perceptual (non-linear) modes, depending on which one you need. You can apply Levels in perceptual mode to a linear image, or Curves in linear mode to a perceptual image — whichever suits you best for the task at hand. The same switch in the Histogram dock has been updated accordingly.
  • Screenshot and color-picking:
  • On Windows, Simon Mueller has improved the screenshot plug-in to handle hardware-accelerated software and multi-monitor displays.
  • Metadata preferences:
  • Settings were added for metadata export handling in the “Image Import & Export” page of the Preferences dialog. By default, the settings are checked, which means that GIMP will export all metadata, but you can uncheck them (since metadata can often contain a lot of sensitive private information). Note that these options can also be changed per format (“Load Defaults” and “Save Defaults” button), and of course per file during exporting, just like any other option.
  • Lock brush to view:
  • GIMP finally gives you a choice whether you want a brush locked to a certain zoom level and rotation angle of the canvas. The option is available for all painting tools that use a brush except for the MyPaint Brush tool.
  • Missing icons:
  • 8 new icons were added
  • Various GUI refining:
  • Many last-minute details have been handled, such as renaming the composite modes to be more descriptive, shortened color channel labels with their conventional 1- or 2-letter abbreviations, color models rearranged in the Color dock, and much more!
  • Translations:
  • String freeze has started and GIMP has 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. The Windows installer is now also localized with gettext.
  • GEGL changes:
  • The GEGL library now used by GIMP for all image processing has also received numerous updates.
  • Most importantly, all scaling for display is now done on linear data. This produces more accurate scaled-down thumbnails and more valid results of mipmap computations. GIMP 2.10.0-RC1 doesn’t use mipmaps yet, but it will further down the line.
  • More work has been done to improve performance of GEGL across many parts of the source code. Improvements to pixel data fetching and setting functions have led to performance boosts across many GEGL operations (in particular, Gaussian blur), and for some performance-critical display cases, performance should have improved two- to three-fold since the release in December 2017.
  • There are 5 new operations in the workshop now. Among those, enlarge and inpaint are part of the new experimental inpainting framework by Øyvind Kolås, domain transform by Felipe Einsfeld Kersting is an edge-preserving smoothing filter, and recursive-transform is Ell’s take on the famous Droste effect.

New in GIMP 2.9.6 Beta (Aug 25, 2017)

  • Performance:
  • GIMP now has support for experimental multi-threading in GEGL and will try to use as many cores as are available on your computer.
  • We know GIMP can explode when using more than one core, but we keep it that way so that we get as many bug reports as possible for this officially unstable development version. This is because we really, really want to ship GIMP 2.10 with usable parallel processing.
  • On the other hand, you can always set the amount of cores to 1 if you couldn’t be bothered to report bugs. For that, please tweak the amount of threads on the System Resources page of the Preferences dialog.
  • Setting amount of threads in GIMP 2.9.6
  • GUI, Usability, and Configurability:
  • Benoit Touchette improved mask creation workflow for users who use a ton of masks in their projects. Now GIMP remembers the last type of mask initialization, and you can use key modifiers + mouse click on layer previews to create, apply, or remove masks. There’s a new button in the Layers dockable dialog for that as well.
  • To make that feature possible, Michael Natterer introduced saving of last dialogs’ settings across sessions and made these defaults configurable via the new Interface / Dialog Defaults page in the Preferences dialog.
  • Configurable Dialog Defaults in GIMP 2.9.6
  • Additionally, the Preferences dialog got a vertical scrollbar where applicable to keep its height more sensible, and settings on individual pages of the dialog can be reset separately now.
  • The Quit dialog got a few updates: automatically exiting when all the images in the list have been saved, and a Save As button for every opened image (clicking an image in the list will raise it easy checks).
  • Configurable Fill With option in GIMP 2.9.6
  • Yet another new feature is an option (on the screenshot above) to choose fill color or pattern for empty spaces after resizing the canvas.
  • Better Hi-DPI Support:
  • While most changes for better Hi-DPI displays support are planned for v3.0, when GIMP is expected to be based on either GTK+3 or GTK+4, we were able to remove at least some of the friction by introducing icon sizes at different resolutions and a switch for icon sizes on the Icon Theme page of the Preferences dialog.
  • On-canvas Interaction Changes:
  • Michael Natterer did a huge under-the-hood work that is likely to affect user interaction with GIMP bigly. Simply put, he moved a lot of on-canvas code from tools like Rectangle Select, Measure and Path into reusable code.
  • New tools can reuse on-canvas elements of other tools (adding shape drawing tools should be easier now, although we are not planning that for 2.10, unless someone sends a clean patch).
  • GEGL-based filters can be interacted with directly on the canvas (Spiral and Supernova so far as test case).
  • So far one still needs to write C code to make a GEGL-based filter use on-canvas interaction. We expect to spend some time figuring out a way to simplify this, possibly using the GUM language (see below).
  • Layers, Linear and Perceptual Workflows:
  • Since we want to make workflows in linear color spaces more prominent in GIMP, it was time to update the blend modes code. You can now switch between two sets of layer modes: legacy (perceptual) and default (linear). The user interface for switching was a quick design, we’d like to come up with something better, so we are interested in your input.
  • Moreover, we made both compositing of layers and blending color space configurable, should you have the need to use that for advanced image manipulation.
  • We also added a new Colors -> Linear Invert command to provide radiometrically correct color inversion. And the histogram dialog now features a toggle between gamma and linear modes—again, it’s a design we’d like to improve.
  • Thanks to Øyvind Kolås and his Patreon supporters, GIMP now also has a simple ‘blendfun’ framework that greatly simplifies implementing new color modes. Ell made use of that by adding Linear Burn, Vivid Light, Linear Light, Pin Light, Hard Mix, Exclusion, Merge, Split, and Luminance (RGB) blending modes (most of them now also supported in the PSD plug-in).
  • Another prominent change is the introduction of the Pass Through mode for layer groups. When this mode is used instead of any other one, GIMP mixes layers inside that group directly to the layers below, skipping creation of the group projection. The feature was implemented by Ell. The screenshot below features a user-submitted PSD file that has TEXTURES layer group in the Pass Through mode, as opened in GIMP 2.9.4 (left) and GIMP 2.9.6 (right).
  • Pass Through mode vs no Pass Through mode
  • Newly added color tags simplify managing large projects with a lot of layers and layer groups. The screenshot below is a real-life PSD file opened in GIMP 2.9.6.
  • New User Interface Themes:
  • To make more use of that feature, we need someone to step up and implement multiple layers selection. For an initial research, see this wiki page.
  • For full access to all the new features, we updated 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.
  • CIE LCH and CIE LAB:
  • Under the influence of Elle Stone (and with her code contributions), CIE LCH and CIE LAB color spaces are finding more use in GIMP now.
  • Color dialogs now have an LCH color selector that, in due time, will most likely replace outdated HSV selector for reasons outlined by Elle in this article. The LCH selector also supports gamut checking.
  • A new Hue-Chroma filter in the Colors menu works much like Hue-Saturation, but operates in CIE LCH color space. Moreover, the Fuzzy Select and the Bucket Fill tool now can select colors by CIE L, C, and H.
  • Finally, both the Color Picker and the Sample Points dialog now display pixel values in CIE LAB and CIE LCH.
  • Tools:
  • New Handle Transform tool contributed by Johannes Matschke in 2015 has been finally cleaned up by Michael Natterer and available by default. It’s a little tricky to get used to, but we hear reports that once you get the hang of it, you love it.
  • Thanks to Ell, the Warp Transform tool is now a lot faster, partially thanks to a switch that toggles high-quality preview that isn’t always necessary.
  • All transformation tools don’t display grid by default anymore, and during an interactive transformation the original layer gets hidden now. The latter greatly simplifies transforming upper layer in relation to a lower layer. Before that, the original layer used to block the view.
  • Free Select tool now waits for Enter being pressed to confirm selection, which enables you to tweak positions of polygonal selection.
  • Painting:
  • An important new feature that is somewhat easy to overlook is being able to paint on transparent layers with modes other than normal.
  • Thanks to shark0r, 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. For more on this, please read this forum thread.
  • Canvas rotation has been improved: it got snappier in certain cases, and rulers, scrollbars, as well as the Navigation dialog follow the rotation now.
  • Alexia introduced some improvements to the brush engine. 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. Plus there’s a specialized convolution algorithm for the hardness blur to make it faster now.
  • Processing Raw Images:
  • Since 2.9.4, GIMP is capable of opening raw (digital camera) images via darktable, and the plan was to open it up to more plug-in developers, because nothing sparks a thoughtful, civil conversation like a raw processor of choice.
  • This is now possible: 2.9.6 ships with a RawTherapee plug-in (v5.2 or newer should be installed) and a new file-raw-placeholder plug-in that registers itself for loading all raw formats, but does nothing except returning an error message pointing to darktable and RawTherapee, if neither is installed.
  • Moreover, you can now choose preferred raw plug-in, when multiple options are available on your computer. For this, open the Preferences dialog and go to the Image Import page, then click on the plug-in you prefer and click OK to confirm your choice. You will need to restart GIMP.
  • Better PSD Support:
  • The PSD plug-in now supports a wider range of blending modes for layers, at both importing and exporting: Linear Burn, Linear Light, Vivid Light, Pin Light, and Hard Mix blending modes. It also finally supports exporting layer groups and reads/writes the Pass Through mode in those. Additionally, GIMP now imports and exports color tags from/to PSD files.
  • WebP support:
  • We already shipped GIMP 2.9.2 with initial support for opening and exporting WebP files, however the plug-in was missing a number of essential features. Last year, we replaced it with a pre-existing plug-in initially written by Nathan Osman back in 2011 and maintained through the years. We now ship it by default as part of GIMP.
  • The new plug-in received additional contributions from Benoit Touchette and Pascal Massimino and supports both ICC profiles, metadata loading/exporting, and animation.
  • Metadata Viewing and Editing:
  • Thanks to Benoit Touchette, GIMP now ships a new metadata viewer that uses Exiv2 to display Exif, XMP, IPTC, and DICOM metadata (the latter is displayed on the XMP tab).
  • Moreover, Benoit implemented a much anticipated metadata editor that supports adding/editing writing XMP, IPTC, DICOM, and GPS/Exif metadata, as well as loading/exporting metadata from/to XMP files.
  • Filters:
  • Thanks to contributions from Thomas Manni and Ell, GIMP now has 9 more GEGL-based filters, including much anticipated Wavelet Decompose, as well as an Extract Component plug-in that simplifies fetching e.g. CMYK’s K channel or LAB’s L* channel from an image.
  • Another new feature that we expect to develop further is GUM—a simple metadata language that helps automatically building more sensible UI for GEGL filters.
  • Resources and Presets:
  • To make GIMP more useful by default, we now ship it with some basic presets for the Crop tool: 2×3, 3×4, 16:10, 16:9, and Square.
  • Documents templates have been updated and now feature popular, contemporary presets for both print and digital media.

New in GIMP 2.8.22 (May 12, 2017)

  • Various bug fixes.

New in GIMP 2.8.20 (Feb 7, 2017)

  • Bug fixes

New in GIMP 2.8.18 (Jul 18, 2016)

  • We are releasing GIMP 2.8.18 to fix a vulnerability in the XCF loading code (CVE-2016-4994). With special XCF files, GIMP can be caused to crash, and possibly be made to execute arbitrary code provided by the attacker.
  • This release includes additional bug fixes since 2.8.16. An important change has happened to the initial startup experience on Microsoft Windows and OS X platforms - any “GIMP is not responding” errors encountered there should be gone.

New in GIMP 2.8.16-4 (Jun 7, 2016)

  • Installer update: With the past few releases, users on the 32-bit versions of Microsoft Windows platforms were plagued by an annoying bug — resizing a window crashed GIMP. We believe this to be fixed, and have released an updated installer. The crash was caused by a problem in libpixman, and is fixed in current version of this library. This has been packaged

New in GIMP 2.8.16 (Nov 23, 2015)

  • Features support for layer groups in OpenRaster files, fixes for layer groups support in PSD, various user inrterface improvements, translation updates, and more changes

New in GIMP 2.8.14.1 (Sep 6, 2014)

  • This one fixes the crash on window resize and the missing icons bugs - all by updating the included GTK+ library to 2.24.24.

New in GIMP 2.8.14 (Aug 27, 2014)

  • Fix libtool versioning (forgot to bump gimp_interface_age)

New in GIMP 2.8.12 (Aug 27, 2014)

  • 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

New in GIMP 2.8.10 (Dec 2, 2013)

  • 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

New in GIMP 2.8.8 (Nov 5, 2013)

  • 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

New in GIMP 2.8.6 (Jun 24, 2013)

  • 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

New in GIMP 2.8.4 (Feb 7, 2013)

  • 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

New in GIMP 2.8.0 (May 7, 2012)

  • User Interface:
  • Single-Window Mode:
  • GIMP 2.8 introduces an optional single-window mode. You can toggle between the default multi-window mode and the new single-window mode through the Single-window mode checkbox in the Windows menu. In single-window mode, GIMP will put dockable dialogs and images in a single, tabbed image window. The single-window mode setting is of course preserved if you quit and start GIMP again. Single-window mode removes the necessity for users of having to deal with multiple windows.
  • Multi-Column Dock Windows:
  • GIMP 2.8 allows dockable dialogs in a dock window to be placed in multiple columns. To create a new column in a dock window, drag and drop a dockable dialog on the vertical edges of the dock window. This is an appealing feature for multi-monitor users where one screen can have a big dock window with all the dialogs and the tools, while all images are on other displays.
  • More Screen Real Estate For Dockable Dialogs:
  • The docking bars have been removed and replaced with overlaid highlights. The dockable drag handle has been removed and the dockable menu button has been moved up to the tabs. A new Automatic tab style has been added which makes dockable tabs use the available space.
  • Save And Export:
  • A rather big conceptual change is that saving and exporting images now are clearly separated activities. Saving an image can only be done in the XCF format which is GIMP's native file format, able to save all kinds of information necessary for works in progress.
  • To export into other formats File->Export... needs to be used. This distinction makes it clearer if all available information is stored in a file, or not. There are some optimizations for alternative workflows such as opening a jpg, polishing it, and quickly exporting back to the original file. This conceptual change has also allowed us to get rid of the annoying dialogs that warned about the flatting of images when saving to non-layered formats.
  • Layer Groups:
  • For complex compositions, a flat layer structure is very limiting. GIMP 2.8 lets users organize their compositions better through the introduction of layer groups which allow layers to be organized in tree-like structures. Layer groups are fully scriptable through the GIMP plug-in API.
  • Tools Drawn With Cairo:
  • All tools rendering on canvas have been ported to Cairo to provide smooth antialiased graphics and make GIMP's look and feel match modern users expectations. All but a few plug-ins have been ported over to Cairo as well. Additionally all tools now use an on-canvas progress indicator instead of the one in the statusbar.
  • On-Canvas Text Editing:
  • Text editing with the Text Tool is now performed on-canvas instead of in a separate window. The editing on-canvas is rather sophisticated: apart from the usual text formatting features like font family, style and size selectors you get numeric control over baseline offset and kerning, as well as the ability to change text color for a selection. You can also use a combination of Alt and arrow keys to change baseline offset and kerning. This feature was originally developed during Google Summer of Code 2008 and heavily improved since.
  • Keyboard Shortcut Changes:
  • Since the keyboard shortcuts Ctrl+E and Ctrl+Shift+E have been repurposed for the image export mechanisms, new keyboard shortcuts have been setup for 'Shrink Wrap' and 'Fit in Window', namely Ctrl+J and Ctrl+Shift+J respectively.
  • Simple Math In Size Entries:
  • Enhancements have also been made to the size entry widget, which is used for inputting most of the x, y, width, height parameters. For example, in the scale dialog it is now possible to write '50%' in the Width field to scale the image to 50% of the width. Expressions such as '30in + 40px' and '4 * 5.4in' work, too.
  • Minor Changes:
  • Added 'Windows?Hide docks' menu item that does what 'Tab' does and also displays its state, which is now persistent across sessions, too.
  • Added infrastructure allowing to embed user interface elements on the canvas. This is currently used for text styles in the text tool, and (experimentally) when a color correction tool is invoked while the canvas is in full-screen mode.
  • To make dock window titles manageable, only show the active dockable in the dock window title.
  • The layer modes have been rearranged into more logical and useful groups based on the effect they have on compositing of a layer. Layer modes that make the composite lighter are in one group, layer modes that make the composite darker in another group, and so forth.
  • You can now Alt+Click on layers in the Layers dialog to create a selection from it. Add, subtract and intersect modifiers Ctrl, Shift and Ctrl+Shift keys work too. This makes it easy to compose contents of a layer based on the contents of other layers, without detours.
  • New docks are created at the pointer position.
  • Removed Toolbox from list of Recently Closed Docks, handle that directly in the Windows menu.
  • Allow closing the toolbox without closing the whole application.
  • Default to non-fixed-aspect in Canvas Size dialog.
  • In the Preferences dialog, only have one setting for the window hint for both the toolbox and the docks.
  • Support arbitrary affine transforms of brushes.
  • Got rid of the Tools dockable and move toolbox configuration to Preferences.
  • A question that often arises is how to change the UI language in GIMP, which has traditionally been a bit cumbersome. Not any longer, it is now possible to change the language in Preferences.
  • Added 'Lock content' button to the layers, channels and paths dialogs, made the lock buttons more compact.
  • Allow renaming list items with F2.
  • Allow binding arbitrary actions to extra mouse buttons.
  • Tools & Plug-ins:
  • Brush System Improvements:
  • The brush dynamics engine has been expanded considerably, making almost all aspects of the brush engine drivable by a multitude of inputs, all of them configurable with their own response curve.
  • Because of the expansion, dynamics were separated from tool options and converted into a resource in their own right. The Google Summer of Code 2009 Advanced GUI for Brush Dynamics project was the start of its development.
  • Tool Preset Improvements:
  • You can now save existing state of any tool as a preset and give it a meaningful name. The presets are accessible from a new Tool Presets dockable dialog and additionally can be tagged so that you can easily manage a lot of presets.
  • This new feature completely replaces the previously existing tool presets system to a new level of accessibility. It also makes it possible to distribute tool presets just like any other resource because each preset is saved as an individual file.
  • Cage Transform Tool:
  • A completely new Cage transform tool has been added thanks to the excellent work of one of our Google Summer of Code 2010 students. The tool implements an innovative approach to free transformation and makes it possible to easily warp parts of objects using an adjustable user-defined polygonal frame.
  • File Plug-Ins:
  • A plug-in for loading JPEG2000 images has been added, as well as plug-ins for X11 Mouse Cursor files and fundamental OpenRaster (.ora) import and export support. Added RGB565 support to the csource plug-in. Developers: Aurimas Juška, Takeshi Matsuyama
  • A Cairo based PDF exporter was implemented. While being somewhat simplistic the exporter saves text, embedding fonts into the final PDF file, and attempts to convert all flat filled areas to vector objects. Developer: Barak Itkin
  • Last, but not least, a Web-page plug-in was added to render any web page into an image using Webkit.
  • For Tablet Users:
  • A new experimental widget was added to meet the requirements of graphic tablets users. The widget combines a slider, a label and a numeric value control which simplifies adjusting a value using a stylus, better visualizes the current value and provides a more compact UI. It is now used in the Tools Options dockable dialog for opacity control and most options of brush based tools.
  • Another useful feature for users of advanced input devices such as graphic tablets is a completely new dialog for input device configuration which allows configuring per-device pressure curves to compensate for hardware differences and personal per-pen preferences.
  • People with Intuos tablets and either Artpen or Airbrush styluses will be glad to find that Airbrush wheel and Artpen rotation are available for driving dynamics via the 'Wheel' input.
  • Resource Tagging:
  • It is now possible to tag GIMP resources such as brushes and patterns to group them. The tagging is performed from the respective dockables e.g. the Brushes dockable, and it is possible to filter resources based on these tags.
  • The tags are saved to an XML file, external to the data files themselves. It is possible to tag multiple resources simultaneously in the UI, but currently only while being viewed as a list. This feature was developed during Google Summer of Code 2008.
  • Resources:
  • We have started overhauling the default set of resources and in this version there have been some changes to the default set of brushes. The silly 'Untitled' title has been removed from unnamed palette entries. A wholly new set of brushes for painting has been added and makes use of the new tagging system
  • Minor Changes:
  • Allow specifying the written language in the Text Tool. This helps with choosing an appropriate font, or appropriate glyphs for the selected language.
  • Moved 'Text along path' from tool options to the text context menu.
  • Add diagonal guides to the Crop Tool.
  • Support rotating brushes.
  • The Smooth Stroke feature from GIMP Painter was ported to GIMP.
  • Added 'Rule of fifths' crop guide overlay.
  • Added an icon for the Desaturate tool.
  • Support loading 16bit (RGB565) raw data.
  • Added palette exporter for CSS, PHP, Python, txt and Java, accessed through the palette context menu.
  • Support printing crop marks for images.
  • Made the Pointer dockable show information about selection position and size.
  • Replaced the brush scale control in tool options by a brush size one that works in pixels, and does the right thing when the brush changes.
  • Improved the Free Select Tool on-canvas feedback.
  • Made it possible to use GEGL for scaling images.

New in GIMP 2.8.0 RC1 (Apr 10, 2012)

  • 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

New in GIMP 2.7.4 (Mar 14, 2012)

  • UI:
  • Add a close button to image tabs in single-window mode
  • Improve the transform tools' undo strings to be more descriptive
  • Render the layer's "eye" icon in inconsistent state if the layer is visible, but one of its parents isn't
  • Add proper stacking for canvas items, so things don't hide each other
  • Make sure single-window-mode and multi-window-mode are always saved consistently in sessionrc
  • Core:
  • Fix "render_image_tile_fault: assertion `tile[4] != NULL' failed" warnings that occurred for some image sizes
  • Fix attachment of the floating selection when the gegl projection is enabled
  • Replace heal algorithm with a new one by Jean-Yves Couleaud that works much better
  • Make resource sub-folders show up in UI as tags, allowing users to easily locate resource collections they may have installed
  • Fix graphics tablet canvas interaction by moving from gdk_pointer_grab() to gtk_grab_add() for most grabs
  • Stop using motion hints, they are a concept from the dark ages
  • Libgimp:
  • Add a basic paint dynamics PDB interface
  • Plug-ins:
  • Make writing color space information to BMP files optional
  • PSD loader now reads and imports working paths
  • Script-Fu:
  • Lots and lots of undeprecations
  • Developer documentation:
  • Add devel-docs/gegl-porting-plan.txt
  • Source and build system:
  • Make git-version.h generation work in shallow git clones
  • Modernize use of autotools a bit, maintainer-mode and pdbgen are now enabled by default
  • General:
  • Make gimptool install scripts in the correct system-wide directory
  • Fix lots and lots of stuff found by static code analysis

New in GIMP 2.7.3 (Mar 14, 2012)

  • UI:
  • Use GimpSpinScales instead of scale entries in all dockable widgets
  • Allow the spin scale to control a range larger than its scale's range
  • Implement RTL mode in GimpSpinScale
  • Add lots of tooltips to tool options
  • Allow to drop more things to the empty image window, and simply create new images from them
  • Cage tool: allow to add handle to the cage when clicking on an edge
  • Cage tool: allow to remove selected handles from the cage by hitting delete
  • Remember column widths in multi-column dock windows
  • Support starting GIMP in single-window mode
  • When the brush is shared among paint tools, also share all brush-modifying paint options
  • Use ALT+number and ALT+Tab shortcuts to navigate between images in both single- and multi-window mode
  • Make 'Export to' always activatable and fall back to 'Export...' if no export target has been set yet
  • In single-window mode, add new dockable dialogs to the image window instead of in a new window
  • When switching on single-window mode, put docks in the image window depending on what side of the window they originally had
  • When switching off single-window mode, distribute dock windows better
  • Add a canvas item for the transform grid, fixing a major speed regression, and add the same guides options as in the rectangle tools
  • Don't unmaximize the single-window mode image window when closing images
  • Resurrect the "You can drop dockable dialogs here" help string below the toolbox
  • Make pick-and-move with the Move Tool work for layers in a layer group
  • Core:
  • Add GimpMotionBuffer which abstracts away stroke smoothing behind a simple API and takes it out of GimpDisplayShell
  • Add a GimpIdTable utility class
  • Add a GimpDockContainer interface
  • Add a GimpSessionManaged interface
  • Add GimpCanvasRectangleGuides which makes the rectangle tool's guides draw properly
  • Libgimp:
  • Make libgimp depend on GdkPixbuf
  • Add API to create layers from cairo surfaces
  • Make it impossible to include individual files from any GIMP library. This was always forbidden and designed so it most probably breaks, but now it reliably breaks using #error
  • Deprecate the "set_sensitive" logic and use g_object_bind_property()
  • Plug-ins:
  • Use poppler's cairo API to load PDFs, the pixbuf API is removed
  • Port screenshot from GdkPixbuf to cairo
  • Fix the annoying parser build warnings in imagemap
  • Add a check-for-deprecated-procedures-in-script-fu make target
  • Update libpng code to not use deprecated API (file-mng and file-png)
  • Add an Item class to pygimp
  • Correct/update some labels and defaults in the JPEG plug-in's save dialog UI
  • Fix "Bug 596410 - gimp-image-get-filename returns NULL for imported files"
  • Developer documentation:
  • Many updates
  • Source and build system:
  • Make cairo a global dependency, starting at libgimpcolor
  • Require poppler >= 0.12.4
  • Remove gimp-remote for good, it has been disabled for years
  • General:
  • Some more undeprecations now that we use GTK+ 2.24
  • Fix lots of warnings that are new in -Wall in GCC 4.6
  • Lots of bug fixes and cleanup
  • Lots of translation updates

New in GIMP 2.7.2 (Mar 14, 2012)

  • UI:
  • A lot of undeprecations due to GTK+ 2.22 and 2.24
  • Lots and lots of cairo porting, calls to gdk_draw_* are gone
  • Merge the cage transform tool from GSoC
  • Remove the old bitmap cursors completely and always use RGBA cursors also for compat cursors for old X servers
  • Add new GimpCanvasItem infrastructure with subclasses for everything that needs to be drawn on the canvas and port all tools to canvas items, this is a huge change that touches all tools and almost all display code, and which finally gets rid of XOR drawing altogether
  • Switch from purely idle-rendering the display to something that ensures a minimum framerate, so we don't fail to update under heavy load
  • Make the text tool handle RTL mode better
  • Change GimpColorMapEditor to use the newly added proxy GimpPalette
  • Replace the brush scale control in tool options by a brush size one that works in pixels, and does the right thing when the brush changes
  • Add new widget GimpSpinScale which is a scale with number entry, and use it in all tool options
  • Make the brush, pattern etc. selectors in tool options more compact and allow to directly jump to the editor dialogs
  • Make handle sizes in tools consistent
  • Add an on-canvas progress and use it for tool progress instead of the statusbar
  • Add a new GimpToolPalette class with lots of code that was in GimpToolBox
  • Allow to properly drop into and after a layer group
  • Refactor and clean up the dynamics editor widget, and add colors for the curves
  • Add support for F2 to rename items in lists
  • Clean up GimpDeviceStatus internally and visually
  • Allow to set GimpToolPreset's icon using the new GimpIconPicker widget
  • Make the text tool's style overlay show default values from the text object if there is no style active at the cursor position/selection
  • Show the the text size's unit in the text style overlay
  • Make tool dialogs transient to the image window again
  • Consistently add a "gimp-" prefix to all window roles
  • Make the preset buttons in tool options work on the global tool presets instead of the removed per-tool preset lists
  • Add GimpControllerMouse, which allows to bind extra mouse buttons to arbitrary actions
  • Core:
  • Add uniform API to turn any GimpItem's outline into a selection
  • Add support for color tags in text layers
  • Remove the selection_control() stuff from GimpImage and with it maybe last piece of UI code still not properly separated
  • Add more validation code for XCF loading
  • Add accessors to GimpPalette and use them globally
  • Keep a proxy GimpPalette around for the image's colormap
  • Don't scale SVGs when pasting or importing them
  • A lot of changes to the input device handling code, partly merged from the gtk3-port branch, add GimpDeviceManager class
  • Add smoothing of paint strokes
  • Fix display filters to work on a cairo surface
  • Fix and enhance GimpImage's URI/filename handling API
  • Unset "removed" flag on items when they get added back to the image from the undo stack
  • Change item creation to properly use GObject properties and remove item_configure() and drawable_configure()
  • Refactor tool event handling and move lots of stuff into utility functions
  • Clean up GimpViewRenderer API
  • Implement transforms on group layers
  • Clean up the transform tool a lot, and refactor away old junk
  • Tool and tool event cleanup: enforce tool activate/halt invariants, consistently shutdown all tools in control(HALT), and many other tool fixes
  • Remove GimpToolPresets object, this functionality got merged into the new GimpToolPreset system
  • Rename GimpFilteredContainer to GimpTaggedContainer and add a new GimpFilteredContainer parent class which is a generic filter
  • Remove the concept of an "offset" from TileManager and instead pass around the offsets explicitly when needed, like when transforming
  • Move GimpBezier desc from vectors/ to core/ and add API to create one from sorted BoundSegs
  • Change GimpBrush boundary API to return a GimpBezierDesc
  • Add GimpBrushCache object and use it to cache a brush's transformed pixels and its outline, remove the caching code from GimpBrushCore
  • Add GimpBezierDesc based API to GimpScanConvert and use it
  • GEGL:
  • Add operations and gegl infrastructure for the cage tool
  • Disable View -> Use GEGL as we will not have time to finish the GEGL projection code for GIMP 2.8
  • Libgimp:
  • Introduce an "item" type in the PDB and libgimp and deprecate lots of old API in favor of item API
  • Add procedures to create, traverse and manipulate layer trees
  • Add more state to the context API, and deprecate functions with too many parameters in favor of simpler ones that use context states, particularly the entire transform and selection API
  • Move GimpUnitStore and GimpUnitComboBox to libgimpwidgets, and use them in GimpSizeEntry, deprecate GimpUnitMenu.
  • Deprecate gimp_min_colors() and gimp_install_cmap()
  • Add API that enables GimpRuler to track motion events by itself
  • Add new selection API and deprecate all old selection functions
  • Move around and rename all parasite functions, deprecate the old ones
  • Add a generated PDB file in the "gimp" namespace and get rid of "gimpmisc"
  • Add unit conversion functions to libgimpbase
  • Add function to reset a plug-in's context to default values
  • Plug-ins:
  • Make script-fu server IPv6 aware
  • Follow libgimp deprecations in plug-ins and scripts
  • Add PDF export plugin
  • Lots of cairo porting here too
  • UTF-8 fixes in script-fu
  • Set the progress to 1.0 when done
  • Merge a lot of upstream fixes into script-fu's Tinyscheme
  • Add "New Layer" option to MapObject
  • Support loading of 16-bit raw PPM files
  • Add web-page, a new plug-in which renders images of web pages
  • Fix some more plug-ins to not warn if applied on an empty region
  • Data:
  • Remove "Untitled" from palette names entries
  • Developer documentation:
  • Move libgimp documentation from templates to inline comments
  • Generate standard deprecated sections
  • Source and build system:
  • Add more code documentation
  • Add more unit tests and refactor existing ones to use global test utility functions
  • Add a manifest to executables (app and plug-ins, Win32)
  • Depend on GLib 2.28, GTK+ 2.24, Cairo 1.10
  • Make WebKit available to all plug-ins, not just the help browser
  • Run UI tests on Xvfb if available
  • Check for GdkPixbuf separately because it's now a separate library
  • Allow tests to use uninstalled plug-ins from the build dir
  • Remove, comment out, or build for GIMP_UNSTABLE some stuff that should not be in a stable release
  • General:
  • Improve safety on Win32 by calling SetDllDirectory() and SetProcessDEPPolicy()
  • Switch from GtkObject::destroy() to GObject::dispose() all over the place
  • Various changes that make maintaining the gtk3-port branch easier, such as s/GtkAnchorType/GimpHandleAnchor/ and s/GtkObject/GtkAdjustment/
  • Don't use gtk_container_add() for adding to GtkBoxes
  • Inherit from GtkBox directly, not from GtkHBox/GtkVBox
  • Add namespace to the ink blob types and functions
  • Remove all useless calls to gtk_range_set_update_policy()
  • Use GObject::constructed() instead of GObject::constructor() all over the place
  • Move more members to private and add accessors for them
  • Stop using GdkNativeWindow, use guint32 instead
  • Plug memory leaks
  • Remove ps-menurc, we are not a PS clone
  • Use the new g_[s]list_free_full() instead of foreach() and free()
  • Don't use newly deprecated GTK+ API
  • Use the new GDK_KEY_foo key names
  • Lots of bug fixes and cleanup
  • Lots of translation updates

New in GIMP 2.7.1 (Mar 14, 2012)

  • UI:
  • Add "lock content" button to the layers, channels and paths dialogs, make the lock buttons more compact
  • Refuse to edit locked items
  • Add support for layer groups
  • Improve internals and GUI of the save/export functionality
  • Move the shortcut dialog's "clear" button into the entry
  • Clean up UI code by introducing GimpDockWindow and GimpImageWindow classes
  • Support multi-column dock windows
  • Get rid of docking bars, use highlights in existing widget hierarchy instead
  • Remove toolbox-window-hint gimprc setting and use dock-window-hint
  • for both toolbox and docks instead
  • Move GimpDock::default-height style property to GimpDockWindow
  • Polish save+export path-part precedence rules
  • Merge the GSoC 2009 Advanced GUI for Brush Dynamics project
  • Default to non-fixed-aspect in Canvas Size dialog
  • Add a still incomplete and Single-window mode
  • Have an Export button, not Save, in export dialogs
  • Improve Free Select Tool handle highlighting
  • Support changing user interface language from preferences
  • Update ps-menurc with PS CS4 keyboard shortcuts
  • Reduce spacing around canvas and use it for the canvas itself
  • Put name of active dockables in dock window titles
  • Don't have Toolbox in list of Recently Closed Docks, handle that directly in the Windows menu
  • Support selecting and tagging multiple objects in resource lists
  • Improve on-canvas text editing and text attribute setting
  • Add GimpContainerTreeStore and use it in all GtkTreeStore based views
  • Add a new default "automatic" tab style that makes sure dockable tabs always show as much detail as possible
  • Remove the dockable title bar and add the menu arrow button next to the notebook tabs
  • Add an icon for the desaturate tool
  • Add 'Rule of fifths' crop guide overlay
  • Make Alt+Click on layers not affect active layer
  • Core:
  • Make all GimpItems lockable so their contents can't be changed
  • Make more sense when naming imported layers
  • Make group layers work except for layer masks and save them in the XCF
  • Change GimpProjectable::update to GimpProjectable:invalidate
  • Make sure we don't mix font backends (and crash) by explicitly asking for FT/Fontconfig backends
  • Move members of GimpObject to a private struct
  • gimp_object_get_name() takes a gconstpointer now, remove casts from all callers
  • Let drawables connect to their floating selection's "update" signal instead of letting the image do this job
  • Fix brush rotation artifacts at even 90 degree rotation
  • Don't leak shared tile memory on Solaris
  • Add a PDB procedure to access a text layer's markup
  • Remove legacy cruft from pdbgen and make sure number ranges are correct
  • Move all image creation functions to a common file
  • Add translation context to all undo descriptions
  • GEGL:
  • Make sure all nodes are added to their resp. graphs
  • Use GEGL for layer scaling if use-gegl is TRUE
  • Plug-ins:
  • Updated script-fu's scheme to latest upstream fixes
  • Don't store image-specific print settings globally
  • Add fundamental OpenRaster (.ora) import and export support
  • Add RGB565 support to the csource plug-in
  • Data:
  • Add texture/grunge brushes made by Johannes Engelhardt
  • Developer documentation:
  • Explain GimpContext
  • Add SVG graphic with GIMP application core module dependencies
  • Add a schedule for 2.8 development
  • Source and build system:
  • Add more code documentation
  • Clean up subsystem linking dependencies in app/
  • Add unit testing framework in app/tests/ and some basic tests, including basic UI tests and XCF tests
  • Tentatively introduce usage of using Glade + GtkBuilder
  • Depend on GLib 2.24.0 and GTK+ 2.20.0
  • Add git commit hash in --verbose --version output
  • Don't version control gtk-doc.m4, get it from gtkdocize
  • Add GimpObject tracking code
  • Plug memory leaks
  • Lots of bug fixes and cleanup
  • Lots of translation updates

New in GIMP 2.7.0 (Mar 14, 2012)

  • UI:
  • Change the Text Tool to perform text editing on-canvas (GSoC 2008) and add the ability to mix different text styles in the same layer
  • Add support for tagging GIMP resources such as brushes and allow filtering based on these tags (GSoC 2008)
  • Separate the activities of saving an image and exporting it, there is now a 'File->Export...' for example
  • Port file plug-ins to new export API which gets rid of many annoying export dialogs
  • Add a simple parser to size entry widgets, images can be scaled to e.g. "50%" or "2 * 37px + 10in"
  • Arrange layer modes into more logical and useful groups
  • Added support for rotation of brushes
  • Make the Pointer dockable show information about selection position and size
  • Get rid of the Tools dockable and move toolbox configuration to Preferences
  • Allow closing the toolbox without closing the whole application
  • Add status bar feedback for keyboard changes to brush parameters
  • Add diagonal guides to the Crop Tool
  • New docks are created at the pointer position
  • Add support for printing crop marks for images
  • Move 'Text along path' from tool options to text context menu
  • Change default shortcuts for "Shrink Wrap" and "Fit in Window" to Ctrl+J and Ctrl+Shift+J respectively since the previous shortcuts are now used for the save+export feature
  • Make Alt+Click on layers in Layers dockable create a selection from the layer
  • Allow to specify written language in the Text Tool
  • Support custom mapping curves for input device properties like "Pressure"
  • New desktop launcher icon
  • Add 'Windows?Hide docks' menu item that does what 'Tab' does and also displays its state. Make the state persistent across sessions, too.
  • Make dock window title separators translatable
  • Plug-ins:
  • Map the 'Linear Dodge' layer mode in PSD files to the 'Addition' layer mode in GIMP
  • Add JPEG2000 load plug-in
  • Add X11 mouse cursor plug-in
  • Add support for loading 16bit (RGB565) raw data
  • Add palette exporter for CSS, PHP, Python, txt and Java, accessed through palette context menu
  • Add plug-in API for getting image URI, for manipulating size of text layers, for getting and setting text layer hint, and for unified export dialog appearance
  • Add an 'As Animation' toggle to the GIF export options
  • Add 'active_vectors' getsetter to Python 'gimp.Image'
  • Data:
  • Add large variants of round brushes and remove duplicate and useless brushes
  • Add "FG to BG (Hardedge)" gradient
  • GEGL:
  • Port the projection code, the code that composes a single image from a stack of layers, to GEGL
  • Port layer modes to GEGL
  • Port the floating selection code to GEGL
  • Refactor the layer stack code to prepare for layer groups later
  • Prepare better and more intuitive handling of the floating selection
  • Add File->Debug->Show Image Graph that show the GEGL graph of an image
  • Allow to benchmark projection performance with File->Debug->Benchmark Projection
  • When using GEGL for the projection, use CIELCH instead of HSV/HSL for color based layer modes
  • Core:
  • Make painting strokes Catmull-Rom Spline interpolated
  • Add support for arbitrary affine transforms of brushes
  • Add support for brush dynamics to depend on tilt
  • Add aspect ratio to brush dynamics
  • Add infrastructure to soon support vector layers (GSoC 2006)
  • Rearrange legacy layer mode code to increase maintainability
  • Drop support for the obsolete GnomeVFS file-uri backend
  • Allow to dump keyboard shortcuts with File->Debug->Dump Keyboard
  • Shortcuts
  • Prepare data structures for layer groups
  • Remove gimprc setting "menu-mnemonics", "GtkSettings:gtk-enable-mnemonics" shall be used instead
  • Remove "transient-docks" gimprc setting, the 'Utility window' hint and a sane window manager does a better job
  • Remove "web-browser" gimprc setting and use gtk_show_uri() instead
  • General:
  • Changed license to (L)GPLv3+
  • Use the automake 1.11 feature 'silent build rules' by default
  • Lots of bug fixes and cleanup

New in GIMP 2.6.12 (Feb 6, 2012)

  • Bugs fixed:
  • 627328 - GIMP 2.6.10 segfaults when CTRL-left click on a layer mask
  • 631885 - GIMP fails to import a path from SVG
  • 631728 - Crash or Gtk-CRITICAL on File->Open
  • 641259 - [abrt] gimp-2:2.6.11-1.fc14: py-slice.py:172:slice:TypeError: integer argument expected, got float
  • 640219 - gimp(1) manpage fixes
  • 640612 - Sample Colorize does not function non-interactively
  • 646947 - file-pdf-load: Don't use deprecated API
  • 639203 - file-psp: fix for bogus input data
  • 639203 - Fixes for some buffer overflow problems
  • 652280 - Guard against crash due to quitting while DND is processed
  • 660305 - fails to build with -Werror=format-security
  • 623045 - script-fu: make server IPv6 aware
  • Updated translations:
  • Asturian (ast)
  • Catalan (Valencian) (ca@valencia)
  • Danish (da)
  • Greek (el)
  • Esperanto (eo)
  • Spanish (es)
  • Italian (it)
  • Japanese (ja)
  • Kazakh (kk)
  • Latvian (la)
  • Norwegian Nynorsk (nn)
  • Polish (pl)
  • Portuguese (pt)
  • Brazilian Portuguese (pt_BR)
  • Russian (ru)
  • Turkish (tr)
  • Simplified Chinese (zh_CN)

New in GIMP 2.6.11 (Feb 6, 2012)

  • Bugs fixed:
  • 631199 - Printing and Print preview broken with cairo 1.10
  • 572865 - Parasite handling had problems and can cause crashing
  • 628893 - Error with string-append and gimp-drawable-get-name
  • 623850 - Colors -> Retinex creates halos
  • 624487 - Fix incorrect "wrap mode" documentation values in Edge plug-in
  • 557380 - Difference of Gaussians gives blank doc if "Invert" selected
  • 627009 - Image type filter doesn't include .rgba SGI files
  • 626020 - Console window opening on file-ps-load
  • 624698 - Wood 1 and Wood 2 have bad alpha value
  • 624275 - Image saved from google docs generates a 'gimp-image-set-resolution' error message
  • Updated translations:
  • German (de)
  • Spanish (es)
  • Italian (it)
  • Japanese (ja)
  • Romanian (ro)
  • Chinese (Hong Kong) (zh_HK)
  • Chinese (Taiwan) (zh_HK)

New in GIMP 2.7.4 Development (Dec 14, 2011)

  • UI:
  • Add a close button to image tabs in single-window mode
  • Improve the transform tools' undo strings to be more descriptive
  • Render the layer's "eye" icon in inconsistent state if the layer is visible, but one of its parents isn't
  • Add proper stacking for canvas items, so things don't hide each other
  • Make sure single-window-mode and multi-window-mode are always saved consistently in sessionrc
  • Core:
  • Fix "render_image_tile_fault: assertion `tile[4] != NULL' failed" warnings that occurred for some image sizes
  • Fix attachment of the floating selection when the gegl projection is enabled
  • Replace heal algorithm with a new one by Jean-Yves Couleaud that works much better
  • Make resource sub-folders show up in UI as tags, allowing users to easily locate resource collections they may have installed
  • Fix graphics tablet canvas interaction by moving from gdk_pointer_grab() to gtk_grab_add() for most grabs
  • Stop using motion hints, they are a concept from the dark ages
  • Libgimp:
  • Add a basic paint dynamics PDB interface
  • Plug-ins:
  • Make writing color space information to BMP files optional
  • PSD loader now reads and imports working paths
  • Script-Fu:
  • Lots and lots of undeprecations
  • Developer documentation:
  • Add devel-docs/gegl-porting-plan.txt
  • Source and build system:
  • Make git-version.h generation work in shallow git clones
  • Modernize use of autotools a bit, maintainer-mode and pdbgen are now enabled by default
  • General:
  • Make gimptool install scripts in the correct system-wide directory
  • Fix lots and lots of stuff found by static code analysis

New in GIMP 2.7.3 Development (Aug 31, 2011)

  • UI:
  • Use GimpSpinScales instead of scale entries in all dockable widgets
  • Allow the spin scale to control a range larger than its scale's range
  • Implement RTL mode in GimpSpinScale
  • Add lots of tooltips to tool options
  • Allow to drop more things to the empty image window, and simply
  • create new images from them
  • Cage tool: allow to add handle to the cage when clicking on an edge
  • Cage tool: allow to remove selected handles from the cage by hitting delete
  • Remember column widths in multi-column dock windows
  • Support starting GIMP in single-window mode
  • When the brush is shared among paint tools, also share all
  • brush-modifying paint options
  • Use ALT+number and ALT+Tab shortcuts to navigate between images
  • in both single- and multi-window mode
  • Make 'Export to' always activatable and fall back to 'Export...' if
  • no export target has been set yet
  • In single-window mode, add new dockable dialogs to the image window
  • instead of in a new window
  • When switching on single-window mode, put docks in the image window
  • depending on what side of the window they originally had
  • When switching off single-window mode, distribute dock windows
  • better
  • Add a canvas item for the transform grid, fixing a major speed
  • regression, and add the same guides options as in the rectangle tools
  • Don't unmaximize the single-window mode image window when closing
  • images
  • Resurrect the "You can drop dockable dialogs here" help string
  • below the toolbox
  • Make pick-and-move with the Move Tool work for layers in a layer
  • group
  • Core:
  • Add GimpMotionBuffer which abstracts away stroke smoothing behind
  • a simple API and takes it out of GimpDisplayShell
  • Add a GimpIdTable utility class
  • Add a GimpDockContainer interface
  • Add a GimpSessionManaged interface
  • Add GimpCanvasRectangleGuides which makes the rectangle tool's
  • guides draw properly
  • Libgimp:
  • Make libgimp depend on GdkPixbuf
  • Add API to create layers from cairo surfaces
  • Make it impossible to include individual files from any GIMP
  • library. This was always forbidden and designed so it most
  • probably breaks, but now it reliably breaks using #error
  • Deprecate the "set_sensitive" logic and use g_object_bind_property()
  • Plug-ins:
  • Use poppler's cairo API to load PDFs, the pixbuf API is removed
  • Port screenshot from GdkPixbuf to cairo
  • Fix the annoying parser build warnings in imagemap
  • Add a check-for-deprecated-procedures-in-script-fu make target
  • Update libpng code to not use deprecated API (file-mng and file-png)
  • Add an Item class to pygimp
  • Correct/update some labels and defaults in the JPEG plug-in's save dialog UI
  • Fix "Bug 596410 - gimp-image-get-filename returns NULL for imported files"
  • Developer documentation:
  • Many updates
  • Source and build system:
  • Make cairo a global dependency, starting at libgimpcolor
  • Require poppler >= 0.12.4
  • Remove gimp-remote for good, it has been disabled for years
  • General:
  • Some more undeprecations now that we use GTK+ 2.24
  • Fix lots of warnings that are new in -Wall in GCC 4.6
  • Lots of bug fixes and cleanup
  • Lots of translation updates

New in GIMP 2.7.2 (Aug 31, 2011)

  • UI:
  • A lot of undeprecations due to GTK+ 2.22 and 2.24
  • Lots and lots of cairo porting, calls to gdk_draw_* are gone
  • Merge the cage transform tool from GSoC
  • Remove the old bitmap cursors completely and always use RGBA cursors
  • also for compat cursors for old X servers
  • Add new GimpCanvasItem infrastructure with subclasses for everything
  • that needs to be drawn on the canvas and port all tools to canvas items,
  • this is a huge change that touches all tools and almost all display
  • code, and which finally gets rid of XOR drawing altogether
  • Switch from purely idle-rendering the display to something that ensures
  • a minimum framerate, so we don't fail to update under heavy load
  • Make the text tool handle RTL mode better
  • Change GimpColorMapEditor to use the newly added proxy GimpPalette
  • Replace the brush scale control in tool options by a brush size
  • one that works in pixels, and does the right thing when the brush
  • changes
  • Add new widget GimpSpinScale which is a scale with number entry,
  • and use it in all tool options
  • Make the brush, pattern etc. selectors in tool options more
  • compact and allow to directly jump to the editor dialogs
  • Make handle sizes in tools consistent
  • Add an on-canvas progress and use it for tool progress instead of
  • the statusbar
  • Add a new GimpToolPalette class with lots of code that was
  • in GimpToolBox
  • Allow to properly drop into and after a layer group
  • Refactor and clean up the dynamics editor widget, and add colors
  • for the curves
  • Add support for F2 to rename items in lists
  • Clean up GimpDeviceStatus internally and visually
  • Allow to set GimpToolPreset's icon using the new GimpIconPicker widget
  • Make the text tool's style overlay show default values from the
  • text object if there is no style active at the cursor position/selection
  • Show the the text size's unit in the text style overlay
  • Make tool dialogs transient to the image window again
  • Consistently add a "gimp-" prefix to all window roles
  • Make the preset buttons in tool options work on the global tool
  • presets instead of the removed per-tool preset lists
  • Add GimpControllerMouse, which allows to bind extra mouse buttons to
  • arbitrary actions
  • Core:
  • Add uniform API to turn any GimpItem's outline into a selection
  • Add support for color tags in text layers
  • Remove the selection_control() stuff from GimpImage and with it
  • maybe last piece of UI code still not properly separated
  • Add more validation code for XCF loading
  • Add accessors to GimpPalette and use them globally
  • Keep a proxy GimpPalette around for the image's colormap
  • Don't scale SVGs when pasting or importing them
  • A lot of changes to the input device handling code, partly
  • merged from the gtk3-port branch, add GimpDeviceManager class
  • Add smoothing of paint strokes
  • Fix display filters to work on a cairo surface
  • Fix and enhance GimpImage's URI/filename handling API
  • Unset "removed" flag on items when they get added back to
  • the image from the undo stack
  • Change item creation to properly use GObject properties and
  • remove item_configure() and drawable_configure()
  • Refactor tool event handling and move lots of stuff into
  • utility functions
  • Clean up GimpViewRenderer API
  • Implement transforms on group layers
  • Clean up the transform tool a lot, and refactor away old junk
  • Tool and tool event cleanup: enforce tool activate/halt invariants,
  • consistently shutdown all tools in control(HALT), and many other
  • tool fixes
  • Remove GimpToolPresets object, this functionality got merged into
  • the new GimpToolPreset system
  • Rename GimpFilteredContainer to GimpTaggedContainer and add a new
  • GimpFilteredContainer parent class which is a generic filter
  • Remove the concept of an "offset" from TileManager and instead
  • pass around the offsets explicitly when needed, like when
  • transforming
  • Move GimpBezier desc from vectors/ to core/ and add API to create
  • one from sorted BoundSegs
  • Change GimpBrush boundary API to return a GimpBezierDesc
  • Add GimpBrushCache object and use it to cache a brush's transformed
  • pixels and its outline, remove the caching code from GimpBrushCore
  • Add GimpBezierDesc based API to GimpScanConvert and use it
  • GEGL:
  • Add operations and gegl infrastructure for the cage tool
  • Disable View -> Use GEGL as we will not have time to finish the
  • GEGL projection code for GIMP 2.8
  • Libgimp:
  • Introduce an "item" type in the PDB and libgimp and deprecate
  • lots of old API in favor of item API
  • Add procedures to create, traverse and manipulate layer trees
  • Add more state to the context API, and deprecate functions with
  • too many parameters in favor of simpler ones that use context states,
  • particularly the entire transform and selection API
  • Move GimpUnitStore and GimpUnitComboBox to libgimpwidgets, and
  • use them in GimpSizeEntry, deprecate GimpUnitMenu.
  • Deprecate gimp_min_colors() and gimp_install_cmap()
  • Add API that enables GimpRuler to track motion events by itself
  • Add new selection API and deprecate all old selection functions
  • Move around and rename all parasite functions, deprecate the old ones
  • Add a generated PDB file in the "gimp" namespace and get rid
  • of "gimpmisc"
  • Add unit conversion functions to libgimpbase
  • Add function to reset a plug-in's context to default values
  • Plug-ins:
  • Make script-fu server IPv6 aware
  • Follow libgimp deprecations in plug-ins and scripts
  • Add PDF export plugin
  • Lots of cairo porting here too
  • UTF-8 fixes in script-fu
  • Set the progress to 1.0 when done
  • Merge a lot of upstream fixes into script-fu's Tinyscheme
  • Add "New Layer" option to MapObject
  • Support loading of 16-bit raw PPM files
  • Add web-page, a new plug-in which renders images of web pages
  • Fix some more plug-ins to not warn if applied on an empty region
  • Data:
  • Remove "Untitled" from palette names entries
  • Developer documentation:
  • Move libgimp documentation from templates to inline comments
  • Generate standard deprecated sections
  • Source and build system:
  • Add more code documentation
  • Add more unit tests and refactor existing ones to use global
  • test utility functions
  • Add a manifest to executables (app and plug-ins, Win32)
  • Depend on GLib 2.28, GTK+ 2.24, Cairo 1.10
  • Make WebKit available to all plug-ins, not just the help browser
  • Run UI tests on Xvfb if available
  • Check for GdkPixbuf separately because it's now a separate library
  • Allow tests to use uninstalled plug-ins from the build dir
  • Remove, comment out, or build for GIMP_UNSTABLE some stuff that
  • should not be in a stable release
  • General:
  • Improve safety on Win32 by calling SetDllDirectory() and
  • SetProcessDEPPolicy()
  • Switch from GtkObject::destroy() to GObject::dispose() all over
  • the place
  • Various changes that make maintaining the gtk3-port branch easier,
  • such as s/GtkAnchorType/GimpHandleAnchor/ and s/GtkObject/GtkAdjustment/
  • Don't use gtk_container_add() for adding to GtkBoxes
  • Inherit from GtkBox directly, not from GtkHBox/GtkVBox
  • Add namespace to the ink blob types and functions
  • Remove all useless calls to gtk_range_set_update_policy()
  • Use GObject::constructed() instead of GObject::constructor() all
  • over the place
  • Move more members to private and add accessors for them
  • Stop using GdkNativeWindow, use guint32 instead
  • Plug memory leaks
  • Remove ps-menurc, we are not a PS clone
  • Use the new g_[s]list_free_full() instead of foreach() and free()
  • Don't use newly deprecated GTK+ API
  • Use the new GDK_KEY_foo key names
  • Lots of bug fixes and cleanup
  • Lots of translation updates

New in GIMP 2.7.1 (Aug 31, 2011)

  • UI:
  • Add "lock content" button to the layers, channels and paths dialogs,
  • make the lock buttons more compact
  • Refuse to edit locked items
  • Add support for layer groups
  • Improve internals and GUI of the save/export functionality
  • Move the shortcut dialog's "clear" button into the entry
  • Clean up UI code by introducing GimpDockWindow and GimpImageWindow
  • classes
  • Support multi-column dock windows
  • Get rid of docking bars, use highlights in existing widget hierarchy instead
  • Remove toolbox-window-hint gimprc setting and use dock-window-hint
  • for both toolbox and docks instead
  • Move GimpDock::default-height style property to GimpDockWindow
  • Polish save+export path-part precedence rules
  • Merge the GSoC 2009 Advanced GUI for Brush Dynamics project
  • Default to non-fixed-aspect in Canvas Size dialog
  • Add a still incomplete and Single-window mode
  • Have an Export button, not Save, in export dialogs
  • Improve Free Select Tool handle highlighting
  • Support changing user interface language from preferences
  • Update ps-menurc with PS CS4 keyboard shortcuts
  • Reduce spacing around canvas and use it for the canvas itself
  • Put name of active dockables in dock window titles
  • Don't have Toolbox in list of Recently Closed Docks, handle that
  • directly in the Windows menu
  • Support selecting and tagging multiple objects in resource lists
  • Improve on-canvas text editing and text attribute setting
  • Add GimpContainerTreeStore and use it in all GtkTreeStore based views
  • Add a new default "automatic" tab style that makes sure dockable tabs
  • always show as much detail as possible
  • Remove the dockable title bar and add the menu arrow button next to the
  • notebook tabs
  • Add an icon for the desaturate tool
  • Add 'Rule of fifths' crop guide overlay
  • Make Alt+Click on layers not affect active layer
  • Core:
  • Make all GimpItems lockable so their contents can't be changed
  • Make more sense when naming imported layers
  • Make group layers work except for layer masks and save them in
  • the XCF
  • Change GimpProjectable::update to GimpProjectable:invalidate
  • Make sure we don't mix font backends (and crash) by explicitly
  • asking for FT/Fontconfig backends
  • Move members of GimpObject to a private struct
  • gimp_object_get_name() takes a gconstpointer now, remove casts
  • from all callers
  • Let drawables connect to their floating selection's "update" signal
  • instead of letting the image do this job
  • Fix brush rotation artifacts at even 90 degree rotation
  • Don't leak shared tile memory on Solaris
  • Add a PDB procedure to access a text layer's markup
  • Remove legacy cruft from pdbgen and make sure number ranges are correct
  • Move all image creation functions to a common file
  • Add translation context to all undo descriptions
  • GEGL:
  • Make sure all nodes are added to their resp. graphs
  • Use GEGL for layer scaling if use-gegl is TRUE
  • Plug-ins:
  • Updated script-fu's scheme to latest upstream fixes
  • Don't store image-specific print settings globally
  • Add fundamental OpenRaster (.ora) import and export support
  • Add RGB565 support to the csource plug-in
  • Data:
  • Add texture/grunge brushes made by Johannes Engelhardt
  • Developer documentation:
  • Explain GimpContext
  • Add SVG graphic with GIMP application core module dependencies
  • Add a schedule for 2.8 development
  • Source and build system:
  • Add more code documentation
  • Clean up subsystem linking dependencies in app/
  • Add unit testing framework in app/tests/ and some basic tests,
  • including basic UI tests and XCF tests
  • Tentatively introduce usage of using Glade + GtkBuilder
  • Depend on GLib 2.24.0 and GTK+ 2.20.0
  • Add git commit hash in --verbose --version output
  • Don't version control gtk-doc.m4, get it from gtkdocize
  • Add GimpObject tracking code
  • Plug memory leaks
  • Lots of bug fixes and cleanup
  • Lots of translation updates

New in GIMP 2.7.0 (Aug 31, 2011)

  • UI:
  • Change the Text Tool to perform text editing on-canvas (GSoC 2008)
  • and add the ability to mix different text styles in the same layer
  • Add support for tagging GIMP resources such as brushes and allow
  • filtering based on these tags (GSoC 2008)
  • Separate the activities of saving an image and exporting it, there is
  • now a 'File->Export...' for example
  • Port file plug-ins to new export API which gets rid of many
  • annoying export dialogs
  • Add a simple parser to size entry widgets, images can be scaled
  • to e.g. "50%" or "2 * 37px + 10in"
  • Arrange layer modes into more logical and useful groups
  • Added support for rotation of brushes
  • Make the Pointer dockable show information about selection position
  • and size
  • Get rid of the Tools dockable and move toolbox configuration to
  • Preferences
  • Allow closing the toolbox without closing the whole application
  • Add status bar feedback for keyboard changes to brush parameters
  • Add diagonal guides to the Crop Tool
  • New docks are created at the pointer position
  • Add support for printing crop marks for images
  • Move 'Text along path' from tool options to text context menu
  • Change default shortcuts for "Shrink Wrap" and "Fit in Window" to
  • Ctrl+J and Ctrl+Shift+J respectively since the previous shortcuts
  • are now used for the save+export feature
  • Make Alt+Click on layers in Layers dockable create a selection from
  • the layer
  • Allow to specify written language in the Text Tool
  • Support custom mapping curves for input device properties like "Pressure"
  • New desktop launcher icon
  • Add 'Windows?Hide docks' menu item that does what 'Tab' does and also displays
  • its state. Make the state persistent across sessions, too.
  • Make dock window title separators translatable
  • Plug-ins:
  • Map the 'Linear Dodge' layer mode in PSD files to the 'Addition'
  • layer mode in GIMP
  • Add JPEG2000 load plug-in
  • Add X11 mouse cursor plug-in
  • Add support for loading 16bit (RGB565) raw data
  • Add palette exporter for CSS, PHP, Python, txt and Java, accessed
  • through palette context menu
  • Add plug-in API for getting image URI, for manipulating size of
  • text layers, for getting and setting text layer hint, and for
  • unified export dialog appearance
  • Add an 'As Animation' toggle to the GIF export options
  • Add 'active_vectors' getsetter to Python 'gimp.Image'
  • Data:
  • Add large variants of round brushes and remove duplicate and
  • useless brushes
  • Add "FG to BG (Hardedge)" gradient
  • GEGL:
  • Port the projection code, the code that composes a single image
  • from a stack of layers, to GEGL
  • Port layer modes to GEGL
  • Port the floating selection code to GEGL
  • Refactor the layer stack code to prepare for layer groups later
  • Prepare better and more intuitive handling of the floating
  • selection
  • Add File->Debug->Show Image Graph that show the GEGL graph of an
  • image
  • Allow to benchmark projection performance with
  • File->Debug->Benchmark Projection
  • When using GEGL for the projection, use CIELCH instead of HSV/HSL
  • for color based layer modes
  • Core:
  • Make painting strokes Catmull-Rom Spline interpolated
  • Add support for arbitrary affine transforms of brushes
  • Add support for brush dynamics to depend on tilt
  • Add aspect ratio to brush dynamics
  • Add infrastructure to soon support vector layers (GSoC 2006)
  • Rearrange legacy layer mode code to increase maintainability
  • Drop support for the obsolete GnomeVFS file-uri backend
  • Allow to dump keyboard shortcuts with File->Debug->Dump Keyboard
  • Shortcuts
  • Prepare data structures for layer groups
  • Remove gimprc setting "menu-mnemonics",
  • "GtkSettings:gtk-enable-mnemonics" shall be used instead
  • Remove "transient-docks" gimprc setting, the 'Utility window' hint
  • and a sane window manager does a better job
  • Remove "web-browser" gimprc setting and use gtk_show_uri() instead
  • General:
  • Changed license to (L)GPLv3+
  • Use the automake 1.11 feature 'silent build rules' by default
  • Lots of bug fixes and cleanup

New in GIMP 2.6.10 (Jul 9, 2010)

  • Bugs fixed:
  • 613328 - TGA files saved with incorrect header yOrigin data
  • 623290 - Save As... does not save Windows Bitmap as default in dialog
  • 621363 - CMYK decompose broken
  • 595170 - brush - color from gradient works wrong in greyscale
  • 613838 - Error in gimp-hue-saturation PDB call
  • 622608 - GIMP crashes when clicking any scroll bar from combo boxes
  • 565459 - newly opened images are put into the background
  • Updated translations:
  • German (de)
  • Italian (it)
  • Romanian (ro)
  • Portuguese (pt)

New in GIMP 2.7.1 Development (Jul 9, 2010)

  • UI:
  • Add "lock content" button to the layers, channels and paths dialogs, make the lock buttons more compact
  • Refuse to edit locked items
  • Add support for layer groups
  • Improve internals and GUI of the save/export functionality
  • Move the shortcut dialog's "clear" button into the entry
  • Clean up UI code by introducing GimpDockWindow and GimpImageWindow classes
  • Support multi-column dock windows
  • Get rid of docking bars, use highlights in existing widget hierarchy instead
  • Remove toolbox-window-hint gimprc setting and use dock-window-hint for both toolbox and docks instead
  • Move GimpDock::default-height style property to GimpDockWindow
  • Polish save+export path-part precedence rules
  • Merge the GSoC 2009 Advanced GUI for Brush Dynamics project
  • Default to non-fixed-aspect in Canvas Size dialog
  • Add a still incomplete and Single-window mode
  • Have an Export button, not Save, in export dialogs
  • Improve Free Select Tool handle highlightning
  • Support changing user interface language from preferences
  • Update ps-menurc with PS CS4 keyboard shortcuts
  • Reduce spacing around canvas and use it for the canvas itself
  • Put name of active dockables in dock window titles
  • Don't have Toolbox in list of Recently Closed Docks, handle that directly in the Windows menu
  • Support selecting and tagging multiple objects in resource lists
  • Improve on-canvas text editing and text attribute setting
  • Add GimpContainerTreeStore and use it in all GtkTreeStore based views
  • Add a new default "automatic" tab style that makes sure dockable tabs always show as much detail as possible
  • Remove the dockable title bar and add the menu arrow button next to the notebook tabs
  • Add an icon for the desaturate tool
  • Add 'Rule of fifths' crop guide overlay
  • Make Alt+Click on layers not affecting active layer
  • Core:
  • Make all GimpItems lockable so their contents can't be changed
  • Make more sense when naming imported layers
  • Make group layers work except for layer masks and save them in the XCF
  • Change GimpProjectable::update to GimpProjectable:invalidate
  • Make sure we don't mix font backends (and crash) by explicitely asking for FT/Fontconfig backends
  • Move members of GimpObject to a private struct
  • gimp_object_get_name() takes a gconstpointer now, remove casts from all callers
  • Let drawables connect to their floating selection's "update" signal instead of letting the image do this job
  • Fix brush rotation artifacts at even 90 degree rotation
  • Don't leak shared tile memory on Solaris
  • Add a PDB procedure to access a text layer's markup
  • Remove legacy cruft from pdbgen and make sure number ranges are correct
  • Move all image creation functions to a common file
  • Add translation context to all undo descriptions
  • GEGL:
  • Make sure all nodes are added to their resp. graphs
  • Use GEGL for layer scaling if use-gegl is TRUE
  • Plug-ins:
  • Updated script-fu's scheme to latest upstream fixes
  • Don't store image-specific print settings globally
  • Add fundamental OpenRaster (.ora) import and export support
  • Add RGB565 support to the csource plug-in
  • Data:
  • Add texture/grunge brushes made by Johannes Engelhardt
  • Developer documentation:
  • Explain GimpContext
  • Add SVG graphic with GIMP application core module dependencies
  • Add a schedule for 2.8 development
  • Source and build system:
  • Add more code documentation
  • Clean up subsystem linking dependencies in app/
  • Add unit testing framework in app/tests/ and some basic tests, including basic UI tests and XCF tests
  • Tentatively introduce usage of using Glade + GtkBuilder
  • Depend on GLib 2.24.0 and GTK+ 2.20.0
  • Add git commit hash in --verbose --version output
  • Don't version control gtk-doc.m4, get it from gtkdocize
  • Add GimpObject tracking code
  • Plug memory leaks
  • Lots of bug fixes and cleanup
  • Lots of translation updates

New in GIMP 2.7.0 Rev 28070 (Jun 29, 2010)

  • UI:
  • Change the Text Tool to perform text editing on-canvas (GSoC 2008)
  • Add support for tagging GIMP resources such as brushes and allow filtering based on these tags (GSoC 2008)
  • Separate the activies of saving an image and exporting it, there is now an 'File->Export...' for example
  • Port file plug-ins to new export API which gets rid of many annoying export dialogs
  • Add a simple parser to size entry widgets, images can be scaled to e.g. "50%" or "2 * 37px + 10in"
  • Arrange layer modes into more logical and useful groups
  • Added support for rotation of brushes
  • Make the Pointer dockable show information about selection position and size
  • Get rid of the Tools dockable and move toolbox configuration to Preferences
  • Add status bar feedback for keyboard changes to brush parameters
  • Add diagonal guides to the Crop Tool
  • New docks are created at the pointer position
  • Add support for printing crop marks for images
  • Move 'Text along path' from tool options to text context menu
  • Change default shortcuts for "Shrink Wrap" and "Fit in Window" to Ctrl+R and Ctrl+Shift+R respectively since the previous shortcuts are now used for the save+export feature
  • Make Alt+Click on layers in Layers dockable create a selection from the layer
  • Allow to specify written language in the Text Tool
  • Plug-ins:
  • Map the 'Linear Dodge' layer mode in PSD files to the 'Addition' layer mode in GIMP
  • Add JPEG2000 load plug-in
  • Add X11 mouse cursor plug-in
  • Add support for loading 16bit (RGB565) raw data
  • Add palette exporter for CSS, PHP, Python, txt and Java, accessed through palette context menu
  • Add plug-in API for getting image URI, for manipulating size of text layers, for getting and setting text layer hint, and for unified export dialog appearance
  • Data:
  • Add large variants of round brushes and remove duplicate and useless brushes
  • Add "FG to BG (Hardedge)" gradient
  • GEGL:
  • Port the projection code, the code that composes a single image from a stack of layers, to GEGL
  • Port layer modes to GEGL
  • Port the floating selection code to GEGL
  • Refactor the layer stack code to prepare for layer groups later
  • Prepare better and more intuitive handling of the floating selection
  • Add File->Debug->Show Image Graph that show the GEGL graph of an image
  • Allow to benchmark projection performance with File->Debug->Benchmark Projection
  • When using GEGL for the projection, use CIELCH instead of HSV/HSL for color based layer modes
  • Core:
  • Make painting strokes Catmull-Rom Spline interpolated
  • Add support for arbitrary affine transforms of brushes
  • Add support for brush dynamics to depend on tilt
  • Add aspect ratio to brush dynamics
  • Add infrastructure to soon support vector layers (GSoC 2006)
  • Rearrange legacy layer mode code to increase maintainability
  • Drop support for the obsolete GnomeVFS file-uri backend
  • Allow to dump keyboard shortucts ith File->Debug->Dump Keyboard Shortcuts
  • Prepare data structures for layer groups
  • Remove gimprc setting "menu-mnemonics", "GtkSettings:gtk-enable-mnemonics" shall be used instead
  • Remove "transient-docks" gimprc setting, the 'Utility window' hint and a sane window manager does a better job
  • Remove "web-browser" gimprc setting and use gtk_show_uri() instead
  • General:
  • Changed licence to (L)GPLv3+
  • Use the automake 1.11 feature 'silent build rules' by default
  • Lots of bug fixes and cleanup

New in GIMP 2.6.9 (Jun 23, 2010)

  • Bugs fixed:
  • Font selection remains visible
  • gimp.desktop: image/x-psd in MimeTypes twice
  • Unportable test(1) construct in configure script
  • Description of "histogram" procedure is slightly inaccurate
  • Tool options not saved/loaded correctly?
  • Importing PDF files with long titles
  • blur-gauss-selective.exe crashes
  • Dialog of "Save as BMP" ignores changes which are not made with a mous
  • Text-Tool crashes when edit a 2.4.2 version xcf
  • Text-Tool crashes when edit a 2.4.2 version xcf
  • Layer preview suddenly stops getting updated
  • leaks shared memory
  • Exporting to Alias PIX format fails
  • a few strings in Save as... > Raw image data dialog are always in English
  • GEGL Operation "path" crashes GIMP
  • Crashes when using path tool
  • GIMP 2.7.0 fails to build against libpng 1.4.0
  • Saving to .ppm fails on indexed colorspace
  • the "Antialiasing..." message in the progress bar does not show translated
  • gimp-layer-new-from-visible should work from updated projection
  • Updated and new translations:
  • Asturian (ast)
  • Basque (eu)
  • Burmese (my)
  • Catalan (ca)
  • Chinese (Hong Kong) (zh_HK)
  • Chinese (Taiwan) (zh_HK)
  • German (de)
  • Italian (it)
  • Latvian (lv)
  • Low German (nds)
  • Romanian (ro)
  • Simplified Chinese (zh_CN)
  • Slovenian (sl)
  • Ukrainian (uk)
  • Valencian (ca@valencia)

New in GIMP 2.6.8 (Jun 23, 2010)

  • Bugs fixed:
  • MapObject cannot modify highlight
  • FG color changed to black when FG-BG Editor tab created
  • layer.scale() raises RuntimeError
  • Keyboard shortcuts does not work for first image when dock is focused
  • F1 key on gimp-tool-align in menu have wrong link and it open gimp-tool-move
  • Gimp BMP Integer Overflow Vulnerability
  • "read_channel_data()" Integer Overflow Vulnerability
  • gimp_image_get_selection returns None
  • plug-in-grid: Parameters Horizontal/Vertical Spacing and Horizontal/Vertical Offset are reversed.
  • PCX plugin doesn't sanitize input to avoid allocation overflows.
  • PCX: Calculating amount of memory to allocate may overflow.
  • SGI: sanitize input
  • SGI: Calculating amount of memory to allocate may overflow.
  • SGI: RLE encoded input data may write beyond allocated buffers
  • SGI: allocate memory consistently
  • GBR, PAT: sanitize input data
  • Crash when pressing Backspace with Free Select Tool
  • Updated and new translations:
  • Basque (eu)
  • British English (en_GB)
  • Czech (cs)
  • French (fr)
  • Greek (el)
  • Italian (it)
  • Japanese (ja)
  • Norwegian Nynorsk (nn)
  • Polish (pl)
  • Romanian (ro)
  • Russian (ru)
  • Simplified Chinese (zh_CN)

New in GIMP 2.6.7 (Jun 23, 2010)

  • Bugs fixed:
  • Tablet pan is not working as fast as it should
  • Crashes when using any colors tool/function on Windows
  • GIMP crashes when clicking GEGL Operation on Windows
  • file-jpeg-save erroneous with small quality values
  • Changing palettes from list to grid view loses "locked to dock" status
  • "Send by Email" does not update "Filename"
  • Transparent BMP files fail to load
  • help-browser uses deprecated (and sometimes broken) webkit call
  • 'Sphere Designer' does not reset correctly...
  • first time open of .svg file ignores the requested units
  • Export to MNG animation fails
  • Dithering with transparency is broken for "positioned" method
  • metadata plug-in crashes on some images
  • PNG comment not found if more than 1 tEXt chunks
  • Exporting to PSD with a blank text layer creates a corrupt file
  • Levels tool does not adjust output levels correctly if input levels are changed
  • Import from PDF throws errors when entering resolution in pixels per millimetre
  • Black pixels appear in "Spread" filter preview
  • Path Dialog: Path preview pics not to see constantly
  • gimp_gradient_get_color_at() may return out-of-bounds values
  • Rectangle select tool size shrinks to 0 if size is larger than the image and the up or down arrow is pressed
  • crash when invoking certain actions by keyboard shortcut
  • Closing maximized image doesn't restore document window size
  • Perspective transformation on a layer with a mask causes crash
  • GIMP crashes when right-click canceling a drawing action initiated outside layer boundaries
  • when printing, the number of copies should be reset to 1
  • Alpha to Logo
  • Rotate with clipping crops the whole layer
  • transform tool fills underlying extracted area wrongly
  • Image display is wrong after undoing canvas size
  • help-browser plugin crashes when used with webkit 1.1.3
  • Action GEGL box widgets weirdness
  • Updated and new translations:
  • Czech (cs)
  • Danish (da)
  • German (de)
  • Spanish (es)
  • Basque (eu)
  • Finnish (fi)
  • Hungarian (hu)
  • Italian (it)
  • Gujarati (gu)
  • Japanese (ja)
  • Kannada (kn)
  • Marathi (mr)
  • Norwegian bokmål (nb)
  • Oriya (or)
  • Portuguese (pt)
  • Romanian (ro)
  • Sinhala (si)
  • Swedish (sv)
  • Simplified Chinese (zh_CN)
  • Traditional Chinese - Hong Kong (zh_HK)
  • Traditional Chinese - Taiwan (zh_TW)

New in GIMP 2.6.6 (Jun 23, 2010)

  • Bugs fixed:
  • lcms plug-in crashes on broken profile
  • changing the help browser preference may not work
  • blur plugin: bug in the first line
  • gimp-2.6 crashed with SIGSEGV in IA__g_object_get()
  • 1-bit white background saved as PBM becomes all black
  • Small bug in Filter>Distorts>Ripple
  • top left pixel position/coordinate is not 0,0 but 1,1
  • Rotate with clipping crops the whole layer
  • Updated translations:
  • German (de)
  • Spanish (es)
  • Estonian (et)
  • Basque (eu)
  • French (fr)
  • Italian (it)
  • Portuguese (pt)
  • Simplified Chinese (zh_CN)

New in GIMP 2.6.5 (Jun 23, 2010)

  • Bugs fixed:
  • Scaling image to 25% turn background from white to grey
  • GIMP's GtkScaleButton conflicts with GTK's
  • GEGL tool - missing Operation Settings for all sub-tools
  • don't rely on GtkAction implementation details
  • wrong RGB values for color names in libgimpcolor/gimprgb-parse.c
  • wrong hex RGB value for the color names slategrey and slategray
  • Brushes dragged to the image window look strange
  • Rectangle Select Tool does not allow 1:1 fixed ratio
  • Black pullout parameter of plug-in-newsprint has no effect
  • First image opened in GIMP offset
  • Align Tool doesn't work properly if it is the active tool at startup
  • Updated translations:
  • Spanish (es)
  • Estonian (et)
  • Hindi (hi)
  • Italian (it)
  • Brazilian Portuguese (pt_BR)
  • Romanian (ro)
  • Russian (ru)
  • Serbian (sr)
  • Tamil (ta)
  • Simplified Chinese (zh_CN)

New in GIMP 2.64 (Jun 23, 2010)

  • Bugs fixed:
  • Perspective transformation jagged edges / comb effect
  • jpg save dialog: "cancel" is treated like "commit" for settings
  • Using clone tool on a layer with a part out of canvas causes crashes
  • crash when the drawable is changed while a color tool is active
  • GIMP crashes on selecting Tools->GEGL operation
  • python-fu-foggify does not check if image is in rgb mode
  • Hue selection mode does not cross the 0-360 degrees line
  • Scrollbars not resized when we extend the canvas size
  • PF_PALETTE: 'TypeError' when used in a plugin that is registered in
  • Compilation with --as-needed
  • PF_SLIDER and PF_SPINNER 'Step' values do not change consistently...
  • Default image dimensions are not correctly transferred in the file/new dialog box
  • GIMP can't save to mounted filesystem if file exists
  • Updated translations:
  • Greek (el)
  • Hindi (hi)
  • Hungarian (hu)
  • Italian (it)
  • Japanese (ja)
  • Korean (ko)
  • Slovenian (sl)
  • Swedish (sv)
  • Tamil (ta)
  • Simplified Chinese (zh_CN)

New in GIMP 2.63 (Jun 23, 2010)

  • Bugs fixed:
  • Plugin Map Color Range disappears from GIMP
  • Error while loading psd-data
  • Explicit zooming with e.g. '1' should handle zoom-focus better
  • Zoom selection always centered in the Navigation tab
  • Wrong lang tags for 'no'
  • SOTA Chrome cannot accept different textures
  • Clearing an already empty document history crashes GIMP
  • Image windows need better default locations
  • "Scale image..." causes distortion around edges
  • Changing crop size in Crop Tool Options can make UI unresponsive
  • Stroking a single-point path with a paint tool crashes GIMP
  • Move tool gives bad information about px moved
  • help behavior for locales without manual translation
  • Updated translations:
  • Belarusian (be)
  • Dutch (nl)
  • German (de)
  • Japanese (ja)
  • Lithuanian (lt)
  • Norwegian Bokmål (nb)
  • Norwegian Nynorsk (nn)
  • Polish (pl)
  • Romanian (ro)

New in GIMP 2.6.2 (Nov 1, 2008)

  • Fixed – Scaling in Gimp 2.6 is much slower than in Gimp 2.4
  • Fixed – unit and zoom entries in Statusbar not visible
  • Fixed – Cannot build GIMP using Sun CC on Solaris 2.8
  • Fixed – projection incorrect with alpha-less layers
  • Fixed – Zoom region always zooms in center of image
  • Fixed – "Qmask" message popping up here and there
  • Fixed – compatibility with GEGL > 0.0.20
  • Fixed – Scaling gives 'jagged' edges
  • Fixed – Zoom drop down doesn't update
  • Fixed – Print not to scale
  • Fixed – gimp crashes when a file is opened while a preview is generating
  • Fixed – Alpha layer automatically added (in psd format)
  • Fixed – Could you please explain a few strings [I18N]
  • Fixed – build fails if configured with --without-libjpeg
  • Fixed – Curves tool doesn't save free curves
  • Updated translations.

New in GIMP 2.4.0 RC1 / 2.2.16 Stable (Aug 17, 2007)

  • Further improvement to the Print plug-in
  • Completed the color management functionality for 2.4
  • Store JPEG setting with the image and use them when saving as JPEG
  • Further improved the rectangle tools, in particular handling of the fixed aspect ratio
  • Added color profile selector widget
  • Further improved the display quality for zoomed-out views

New in GIMP 2.2.15 Stable (Jun 3, 2007)

  • fixed parsing of GFig files with CRLF line endings (bug #346988)
  • guard against a possible stack overflow in the Sunras loader (bug #433902)
  • fixed definition of datarootdir in gimptool-2.0 (bug #436386)
  • fixed Perspective tool crash on Mac OS X (bug #349483)
  • fixed area resizing in the Image Map plug-in (bug #439222)
  • added missing library in gimptool-2.0 --libs output
  • added new localizations: Occitan and Persian

New in GIMP 2.3.10 (Jul 6, 2006)

  • - added support for a registration color in the Decompose plug-in
  • - the Align tool now also aligns to guides
  • - allow use CSS color notation in Script-Fu
  • - more work on the new selection tools
  • - let Fractal Explorer work on grayscale and give it a larger preview
  • - speed up Value Invert plug-in
  • - added strong undo/redo functions bound to Shift-Ctrl-[ZY]
  • - use radio items for the image mode menu
  • - applied Tango style on the default iconset
  • - added plug-in for colormap manipulation
  • - allow plug-ins to register in Layers, Channels, Vectors and Colormap dialog
  • - added load plug-in to open desktop links
  • - removed print plug-ins and started work on a replacement using the
  • new GTK Print API
  • - added replacements for gimp_foo_select widgets, akin to GimpFontSelectButton
  • - introduced translation context to a number of colliding strings
  • - bug fixes and code cleanup