Release:2.10 changelog

From GIMP Developer Wiki
Revision as of 23:23, 13 October 2017 by Prokoudine (Talk | contribs)

Jump to: navigation, search

This page should aid documentation authors in updating the user manual for the upcoming 2.10 release.

The changes listed here are being filed as bug reports. We encourage you to contribute new docs and updates. For the list of reports please visit the bugzilla.


GIMP 2.10 uses GEGL image processing library for all operations.

  • Processing with 8-bit, 16-bit, and 32-bit per color channel precision, accessible via new Image -> Precision submenu
  • 'Precision' option in the 'New Image' dialog
  • A switch between perceptual gamma and linear light for already opened images
  • Layer modes available in gamma-corrected and linear light versions now (where applicable), legacy rendering preserved for older XCF files
  • Gamma, precision, and color profile selector for newly created images (GimpTemplate)
  • Optional dithering during conversions between precision modes, never dither when converting to a higher bit depth, or to anything more than 16 bits
  • Optional experimental hardware-accelerated rendering and processing via OpenCL (see Edit -> Preferences -> System Resources)
  • Optional multi-threading available again, the default value is set to the amount of automatically discovered CPU cores, max is 64
  • Pre-initialize some babl-based pixel format conversion routines at the start-up to decrease the initial lazy initialization cost for some interactions

Layers, Masks, Paths, Channels

  • Substantial rewrite of layer modes and how they are stored in XCF
  • Simplistic widget for switching between legacy modes (2.8 and earlier), linear modes, gamma-corrected modes
  • New LCH layer modes: Hue, Chroma, Color, and Lightness. See for details
  • New Pass Through mode for layer groups
  • New Linear Burn, Vivid Light, Linear Light, Pin Light, Hard Mix, and Exclusion layer modes (as described on
  • Overlay mode is not identical to Soft Light mode anymore and finally relies on a widely used formula from both PDF specification, as well as W3C’s “Compositing and Blending Level 1” spec
  • Configurable compositing of layers with the following modes: Auto, Source over, Source atop, Source in, Destination atop
  • Add content locking to items to prevent them from being edited
  • Add position locking to items to prevent them from being translated
  • Enhance the Layer Attributes dialog to provide the single UI for:
    • setting layer's name
    • changing blending mode and opacity
    • setting offset in X/Y
    • toggling visibility, link status, various locks
  • Add color tags to layers for better layers management (can be set via Layers menu, Layer Attributes dialog, and accessible via shortcuts), also available for channels and paths
  • Add new clipboard implementation for entire images to copy/paste layers and layer groups
  • Always paste layers as new layers, not floating selections; always paste new layers on top of the active layer
  • Add/Remove layer masks by clicking the layer preview
  • Remember the added mask's type and the invert boolean
  • Add a button to the layers dialog which supports add, add with last values, delete, apply masks
  • Add modifier-click shortcuts on the layer preview with the same modifiers as on the button


New Tool: Unified Transform

Combines rotation, scaling, skewing, and adjusting perspective in a single tool.

New Tool: Warp Transform

Replaces the old iWarp plugin and provides its features in a tool that works directly on images, without a preview window.

New Tool: Handle Transform

Apply scaling, rotating, and perspective correction using handles placed on the canvas.

New Tool: N-Point Deformation (experimental)

A new way to bend objects while preserving a natural look.

New Tool: Seamless Clone (experimental)

Simplifies merging one image into another by adjusting brightness and colors of the pasted image to match the look of the image it is pasted to.

New Tool: MyPaint Brush

Use MyPaint brushes for painting.

Updated Tool: all paint tools

All paint tools now display the angle (relatively to the horizontal line, centered on previously drawn position) alongside distance in status bar when straight line constraining (holding Shift when painting).

Updated Tool: Smudge

  • New No erase effect option to prevent the tool from changing alpha of pixels
  • FG color can now be blended into smudged pixels, controlled by new Flow slider. With 0, there is no blending.

Detailed information:

Updated Tool: Flip

  • Add support for reflecting across guides to the Flip tool. When clicking on a guide while using the flip tool, reflect the active item across the guide, rather than around its center.
  • Add "clipping" option to the Flip tool. This option behaves similarly to the other transform tool, however it's limited to "adjust" and "clip" only. Now that the flip tool can reflect across guides, this option is meaningful.

Updated Tool: Blend

The Blend tool now features on-canvas gradient editing: adding, shifting, removing color stops, shifting midpoints and converting them to color stops, assigning colors to color stops, changing blending type for midpoints.

New options:

  • 'Instant mode' (active before you start blending), enables support of the old workflow where you can't edit color stops before applying the gradient fill
  • 'Modify active gradient', allows changing user-writable gradients directly rather than creating copies of them

Updated Tool: Align

Now features:

  • vertical and horizontal fill modes;
  • vertical offset.

Updated Tool: Move

Now features:

  • Show relative coordinates when moving guides and sample points.

Updated Tool: Text

  • Port text rendering to GEGL
  • Use HarfBuzz to inspect fonts for creating an example string
  • Improved support for languages using Input Method Engines (IME).

Updated Tool: Foreground Select

Can finally make subpixel selections in complex cases such as strays of hair on textured background. Two new masking methods for that were added, and the user interface was updated accordingly.

Updated Tool: Select by Color

  • New Draw mask option to display future selection area with a magenta fill

Updated Tool: Fuzzy Select

  • New Draw mask option to display future selection area with a magenta fill
  • New Diagonal neighbors option to select diagonally neighboring pixels

Updated Tool: Free Select

  • Closing a polygonal/free selection now doesn't confirm the selection automatically. Instead you still can tweak positions of nodes (where applicable), then press Enter or switch to another tool to confirm the selection.

Updated Tool: Intelligent Scissors

  • allow to remove the last added IScissors segment with backspace
  • GIMP now checks, whether the first and the last isegments are distinct before closing the curve

Updated Tool: Bucket Fill

  • new Diagonal neighbours option to fill diagonally neighboring pixels

Updated Tool: Desaturate

  • Turn the Desaturate tool into a normal GEGL filter
  • Move "Desaturate" to Colors -> Desaturate

Updated Tool: Posterize

  • Turn the posterize tool into an ordinary GEGL filter
  • Remove posterize from Tools -> Colors

Updated Tool: Colorize

  • Remove the Colorize tool and replace it by a generic filter action.

Updated Tool: Color Balance

  • Replace the color balance tool by a generic filter action

Updated Tool: Hue-Saturation

  • Remove the Hue-Saturation tool and replace it by a generic filter action.

Updated Tool: Color Picker

  • Don't snap to anything when picking colors
  • Color picker tools now always draw the outline of the averaged region, not only while the mouse is being pressed
  • Support arbitrary range of values regardless of the actual image color precision
  • Add LAB and LCH readout to Info window

Removed menu: Color Tools

'Image -> Tools -> Color Tools' is gone now that all color tools are basically GEGL operations with custom UI.


Move on-canvas interaction code of some tools to new GimpToolWidget class and make it available to GEGL-based filters.


  • Allow plug-ins to access image data at full bit depth.
  • On-canvas preview for all filters that use a GEGL operation.
  • On-canvas preview can be split to see part of the image before and part after the filter (preview curtain).
  • On-canvas controls for Spiral (experimental) and Supernova GEGL-based filters.
  • Add a compat mode so unported plug-ins always get 8-bit data.
  • New plugins/filters: Mono Mixer, Color to Gray, Sepia, Color Temperature, Exposure, Extract Component, Dither, RGB Clip, Waterpixels, Image Gradient, Symmetric Nearest Neighbor, Wavelet Decompose, Simple Linear Interactive Clustering, Fattal, Mantiuk, Reinhard, Stress (FIXME: CHECK the full list).
  • New Hue-Chroma operation/tool.
  • New file-darktable and file-rawtherapee plug-ins to load raw (digital negative) files by having them developed in darktable or RawTherapee.
  • Removed plugins: Maximum RGB, iWarp (FIXME: CHECK the full list).
  • Decompose plugin supports LCH now (FIXME: CHECK the full list of supported color models).
  • 'File -> Send' plugin for emailing images is available again on platforms with `xdg-email` (Linux only?). The original sendmail implementation is still available if built with --with-sendmail option (since this requires less common configuration, usually only done on servers).
  • Add interpreter for the GUM (GEGL UI Metadata) language. GUM is a small DSL, used in some property keys of GEGL operations to dynamically control UI attributes based on context.
  • Allow plug-in inside first-level directories of plug-ins folders. GIMP doesn't search recursively, but only at the first level. If a plug-in is in its own subdirectory, the entry point has to be named the same (minus extension) as the directory. For instance my-plugin/my-plugin for a binary, or my-plugin/my-plugin.(py|exe|…).
  • Allow filter actions to have hardcoded default operation settings by encoding them directly in the string attached to all filter actions. The code now supports both "gegl:some-operation" and "gegl:some-operation\n<serialized config>".

Color Management and Color Spaces

  • Implement all color management in the core (not as a plugin)
  • Depends on LCMS2.7+, because earlier LCMS2 releases caused problems with certain GIMP blend modes
  • Support ICC v4 color profiles
  • Make both RGB and Greyscale images color managed
  • Reimplement assigning, converting, and discarding ICC profiles
  • Display ICC profiles metadata in various parts of UI (color space conversion, selection of a profile from the disk etc.)
  • Add preferred RGB and GREY color profiles settings to the Preferences dialog to make them quickly accessible in profile selection combo boxes
  • New 'Image -> Color Management -> Save Color Profile to File...' command
  • New 'View -> Color Management' submenu to enable softproofing, change rendering intent etc.
  • 'New Image' dialog allows selecting an ICC profile for a new image
  • New Prefs options to toggle color transforms optimization, disabling optimization may improve quality at the cost of speed
  • Ask user for intent and bpc settings in the profile import dialog (FIXME: FACTCHECK)
  • Mark out-of-gamut colors also in the RGB and HSV color areas
  • Make the screenshot plug-in color-managed
  • Now color-managed:
    • layer/image/color palette/gradient/pattern previews,
    • Color Picker tool,
    • GimpColorHistory,
    • GimpFgBgEditor,
    • GimpColorFrame (Mouse Pointer dialog),
    • color selectors,
    • script-fu color buttons,
    • DND widget,
    • painting tools,
    • copying layers/paste buffer between images
  • Add LCH channels to color selector dialog (FG/BG etc.)
  • Allow decomposing/composing to/from LCH
  • New Extract Channel command to extract channels in various color spaces

File Access

  • File access ported to GIO allowing to access remote files seamlessly, file-uri plugin therefore removed
  • SSL/TLS support is now a mandatory dependency (HTTPS being now the web standard, and HTTP being more and more deprecated by browsers everyday)
  • Improved automatic file formats recognition


  • Implement metadata handling in the core
  • Add Image -> Metadata -> View Metadata dialog for viewing Exif, IPTC, and XMP info (DICOM metadata is displayed in the XMP tab)
  • Add Image -> Metadata -> Edit Metadata dialog for editing IPTC (plus extensions), GPS and DICOM metadata
  • PNG, JPEG, and TIFF exporters now have Save Exif, Save IPTC, and Save XMP options in the Advanced group of settings

File Format Support

  • 16-bit per color channel support for PNG
  • 16/32-bit per color channel support for TIFF and PSD
  • 16/32/64-bit per color channel support for FITS
  • OpenEXR loading and exporting
  • WebP loading and exporting, includes support for loading/saving, icc profiles, exif, and xmp data
  • PSD plug-in now supports more blend modes (import/export), reads Pass Through mode for layer groups
  • Add LZMA2 compressed file support (.xcf.xz/.xcfxz)
  • Internal tile compression for XCF is now zlib (instead of RLE)
  • Writing linear gamma TIFF images
  • Allow exporting layers as PDF pages
  • Improve the raw (not the digital negative) files plugin:
    • Add "data" - which is already a load extension - as save extension and adds "raw" as load and save extension as it is also a common suffix for such files
    • Export the image before saving, to get layers merged and so on. Currently only the top layer is saved (similar to PNG plugin)
    • Use GtkBuilder to construct the export dialog (similar to PNG plugin)
    • Make the plugin remember last used export settings (similar to PNG plugin)
    • Introduce some export defaults that can also be modified by the user (similar to PNG plugin)
    • Make the plugin able to be invoked non-interactively and with last used values [Ctrl+E] (similar to PNG plugin)


  • Print resolution can now be reset to defaults, new values for the same image is actually used now without reloading the image.

Color Palettes

  • Selecting multiple palettes and merging them into one is possible now (Palette > Merge Palettes...)
  • Add an automatic palette of recently used colors

Dockable Dialogs

  • The FG/BG Color dock features the 12 most recent colors at the bottom
  • Add MyPaint Brushes dialog
  • Add LAB and LCH readout to Pointer and Sample Points dialogs

Digital Painting

  • Canvas rotation and flipping have been added to facilitate users who need to paint from a different angle or check composition for errors (View -> Flip and Rotate submenu, Shift (+ Ctrl) + middle mouse button drag).
  • Symmetry painting for all painting tools (Paintbrush, MyPaint Brush, Eraser etc.). Available through likewise named dockable dialog, enabled on per-image basis. Modes: Mirror, Tiling, Mandala (Kaleidoscope).
  • Optional locking of brush size to zoom (bottom of every painting tool's options).
  • All tools that use GIMP’s brush engine have Hardness and Force sliders now.
  • For bitmap brushes, GIMP now caches hardness and disables dynamic change of hardness to improve painting performance. Botmap brushes also don't get clipped anymore, when hardness is less than 100.


  • Icon Themes can be added, selected, and removed now (Edit -> Preferences -> Interface -> Icon Theme)
  • Pages in the Preferences dialog regrouped
  • Vertical scrollbar added to keep the height of the Preferences dialog sensible
  • New Image Import page in the Preferences dialog to define image importing policies (promoting to 32-bit float and dithering)
  • New Image Windows -> Snapping page in the Preferences dialog allows choosing default snapping settings for both normal and fullscreen modes
  • New Interface -> Dialog Defaults page in the Preferences dialog to control defaults values of various dialogs
  • Settings on individual pages of the Preferences dialog can be reset
  • Snapping distance setting has move to the Image Windows -> Snapping page
  • Selection of visible tools in the toolbox has moved to the Interface -> Toolbox page
  • Existing settings on the Color Management page got reorganized, new settings got added
  • Undo preview size is now configurable via UI (on the Interface page of the 'Preferences' dialog)
  • Allow mouse to optionally configure tablet devices
  • Allow creating shortcuts containing the Cmd key + mouse wheel events
  • Default to 300ppi and 1920x1080px for new documents.
  • Do not allow Alt+[0-9] shortcuts, they are typically used for display switching
  • Configuration directory now follow OS-specific standards:
- UNIX platforms (except OSX) follow FreeDesktop's XDG standards: $XDG_CONFIG_HOME/GIMP/{GIMP_APP_VERSION}
- OSX: NSApplicationSupportDirectory/GIMP/{GIMP_APP_VERSION}

General Changes

Internal Changes

  • Add undo/redo to many tools using the normal shortcuts (FIXME: provide a more detailed explanation)

UI changes

  • Add Save As buttons to the “Quit GIMP” dialog for every opened image
  • Allow zooming to the selection
  • Make the image tab position configurable in single window mode
  • Add more format string options for the image title ('%e' for offsets, '%r' for rotation, '%o' for current ICC profile)
  • Simplify and reduce the actions that modify paint tool behavior (FIXME: provide a more detailed explanation)
  • Allow selecting colors from an image's colormap
  • New symbolic icon themes (light and dark)
  • New color icon theme (previous color theme is still here under the name "Legacy")
  • 5 new themes (lighter, light, gray, dark, darker).
  • The new theming defaults are: "Dark" theme and "Symbolic" icon theme. Note: old themes will likely be broken and won't be migrated when updating to GIMP 2.10.
  • New "Action Search" dialog
  • New "Select -> Remove holes" command to clean up selection with small unselected areas inside (see bug 761060)
  • Turn invert-perceptual, -linear and -value into normal filter actions, so they show up in recent filters, and don't need their own callbacks.
  • Allow tool dialogs to be embedded on the canvas generically
  • Follows "Maximized" hint on Windows ("run" property on a shortcut or `start /max gimp-2.9.exe` from command line).
  • Allow to choose fill color when resizing layers and images
  • Allow to zoom with middle mouse button + control + drag up/down
  • Check and clean out duplicate accelerators on startup
  • Toolbox buttons do not grab focus anymore, which used to break usage of the Tab key and other canvas-related shortcuts after changing tools with a pointing device click
  • Delete Layer/Channel/Path are consistently the last option in respective dialogs now
  • Extend the text along the tangent of the last path stroke, when the length of the path along which the text layer content is warped is shorter than the width of the text
  • Allow to toggle the histogram dialog between gamma and linear
  • New Colors -> Linear Invert command to provide radiometrically correct color inversion
  • Optimal digit precision for length display in physical units in various widgets


  • Modernize default list of document templates.
  • Add 4x3 Landscape/Portrait, 3x2 Landscape/Portrait, 16x10, 16x9, and Square presets for the Crop tool.
  • Add a basic "Pressure Size" dynamics. This is a common dynamics, for instance when you do colorization bases. This allows to control the size of the brush with pressure and always keep unified color without opacity changes.

Batch processing

  • Batch commands can now be run on an existing GIMP instance.
  • A new 'with-files' macro is available to run commands on several files at once. For instance, if you want to invert colors of all png files in a directory, and save them as jpg, you could run:
gimp -i -b '(with-files "*.png" (gimp-invert layer) \
             (gimp-file-save 1 image layer \
             (string-append basename ".jpg") \
             (string-append basename ".jpg") ))'

API Changes

  • Add gimp_pdb_image_get_guide()
  • Add PDB sample point API similar to how the guide API works.
  • Add core API similar to the core guide API to make guide and sample point APIs as similar as possible.
  • Add PDB API to configure/query all aspects of line stroking.
  • Add gimp_context_set/get_mypaint_brush()
  • Add gimp_image_convert_color_profile_from_file()
  • Add gimp_image_set_color_profile_from_file()
  • Remove "set" and "set-rgb" from the lcms plug-in
  • Remove the lcms plug-in and add PDB compat procedures
  • Add gimp_image_convert_color_profile() PDB wrapper
  • Add gimp_image_get_effective_color_profile()
  • Add gimp_image_get_color_profile() and gimp_image_set_color_profile()
  • Rename the "guides" PDB group to "imageguides"
  • Rename the "grid" PDB group to "imagegrid"
  • Rename the "convert" PDB group to "imageconvert"
  • Rename the "undo" PDB group to "imageundo"
  • Change range of brush-spacing to 0.01..5.0
  • Add gimp_context_get_brush_hardness and gimp_context_set_brush_hardness
  • Add gimp_context_get_brush_force and gimp_context_set_brush_force
  • Add gimp_context_get_brush_spacing and gimp_context_set_brush_spacing
  • Remove enum GimpConvolutionType from the public API
  • Add gimp_paint_options_set_default_brush_size()
  • Deprecate gimp-brightness-contrast, add gimp-drawable-brightness-contrast
  • Deprecate gimp-levels, add gimp-drawable-levels
  • Deprecate gimp-levels-auto, add gimp-drawable-levels-stretch
  • Deprecate gimp-levels-stretch, add gimp-drawable-levels-stretch
  • Deprecate gimp-posterize, add gimp-drawable-posterize
  • Deprecate gimp-desaturate, add gimp-drawable-desaturate
  • Deprecate gimp-desaturate-full, add gimp-drawable-desaturate
  • Deprecate gimp-equalize, add gimp-drawable-equalize
  • Deprecate gimp-equalize, add gimp-drawable-colorize-hsl
  • Deprecate gimp-hue-saturation, add gimp-drawable-hue-saturation
  • Remove all traces of the supersampling recursion level from all transform APIs
  • Add gimp_image_get_precision
  • Add gimp_image_new_with_precision
  • Add gimp_image_convert_precision
  • Port drawable pixel access API to GEGL
  • Add support for omitting the "gimp-" prefix from the procedure name
  • Add gimp-selection-flood PDB op to clean up selection with small unselected areas inside


  • GIMP can be built with crash logs support on Windows thanks to Dr. MinGW.