Difference between revisions of "Release:2.10 changelog"

From GIMP Developer Wiki
Jump to: navigation, search
(File Access)
(UI changes)
Line 247: Line 247:
=== UI changes ===
=== UI changes ===
* Add a '''Save As''' button to the “Quit GIMP” dialog
* Add '''Save As''' buttons to the “Quit GIMP” dialog for every opened image
* Allow zooming to the selection
* Allow zooming to the selection
* Make the image tab position configurable in single window mode
* Make the image tab position configurable in single window mode
Line 269: Line 269:
* Allow to toggle the histogram dialog between gamma and linear
* Allow to toggle the histogram dialog between gamma and linear
* New '''Colors -> Linear Invert''' command to provide radiometrically correct color inversion
* New '''Colors -> Linear Invert''' command to provide radiometrically correct color inversion
* Optimal digit precision for length display in physical units in various widgets
== Batch processing ==
== Batch processing ==

Revision as of 08:24, 12 May 2017

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.

  • 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)
  • Pre-initialize some babl-based pixel format conversion routines at the start-up to decrease the initial lazy intialization 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 http://ninedegreesbelow.com/photography/gimp-lch-blend-modes.html for details
  • New Linear Burn, Vivid Light, Linear Light, Pin Light 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 (experimental)

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: Blend

The tool is now more interactive. After drawing with the tool to define the beginning and the end of the gradient fill, you can adjust start/end positions and change colors.

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: 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: 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: 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: 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: 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


  • 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)
  • Allow plug-ins to access image data at full bit depth
  • 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 plugin to load raw files by having them developed in Darktable (only on platforms supported by Darktable, i.e. Unix/Linux/BSD/OSX).
  • 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).

Color Management

  • 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)
  • 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,
    • DND widget,
    • painting tools,
    • copying layers/paste buffer between images

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 -> Image Metadata dialog for viewing Exif, IPTC, and XMP info
  • 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
  • Add LZMA2 compressed file support (.xcf.xz/.xcfxz)
  • Internal tile compression for XCF is now zlib (instead of RLE)
  • Writing linear gamma TIFF images
  • 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

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

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.