GIMP 2.7 Release Notes
This is an unstable development version of the GNU Image Manipulation Program. Please realize that this is just a snapshot of the development tree. We are working hard towards GIMP 2.8, the next stable release. GIMP 2.7 is in no way a final product. A lot of new features are incomplete and some things may even be completely broken. If you need to get work done, please use the stable version, GIMP 2.6.
Introduction
GIMP 2.7 is the result of three years of hard work and collaborative development. This version of GIMP is equipped with a wealth of new features, including some highly requested ones. Keep reading to find out exactly what GIMP 2.7 has to offer you in areas such as the user interface, tools, and plug-ins.
User Interface
Single-Window Mode
GIMP 2.7 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 liberates the user from the burden to manage windows. Developers: Martin Nordholts, Michael Natterer Interaction Architect: Peter Sikking
Layer Groups
For complex compositions, a flat layer structure is very limiting. GIMP 2.7 enables users to better organize their compositions through the introduction of layer groups. Layer groups allow layers to be organized in tree-like structures. Layer groups are fully scriptable through the GIMP plug-in API. Developer: Michael Natterer Interaction Architect: Peter Sikking
Multi-Column Dock Windows
GIMP 2.7 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 on screen can have a big dock window with the all dialogs and the tools, while all images are on other displays. Developer: Martin Nordholts Interaction Architect: Peter Sikking
Tools drawn with cairo
All tools rendering on canvas has 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. Developer: Michael Natterer
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 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. 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 color tags in text layers Developers: Daniel Eddeland, Michael Natterer
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. To export into other formats File->Export... needs to be used. 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. Developer: Martin Nordholts
Keyboard Shortcut Changes
Since the keyboard shortcuts Ctrl+E and Ctrl+Shift+E has been taken over by 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. Developer: Martin Nordholts
Simple math in size entries
Enhancements have also been made to the size entry widget, the widgets that are used for most of the x, y, width, height input. 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" works too. Developer: Fredrik Alströmer
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. Developer: Martin Nordholts
Minor Changes
- Add 'Windows→Hide docks' menu item that does what 'Tab' does and also displays its state. Make the state persistent across sessions, too.
- An infrastructure has been added that allows 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 makes the composite lighter are in one group, layer modes that makes the composite darker in another group, and so on.
- It has been made possible to 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 works 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
- Make all GimpItems lockable so their contents can't be changed
- Don't have Toolbox in list of Recently Closed Docks, handle that directly in the Windows menu
- Allow closing the toolbox without closing the whole application
- Put name of active dockables in dock window titles
- Add new widget GimpSpinScale which is a scale with number entry, and use it in all tool options
- Default to non-fixed-aspect in Canvas Size dialog
- In the Preferences, only have one setting for the window hint for both the toolbox and the docks.
- Add support for arbitrary affine transforms of brushes
- Get 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 language in Preferences.
- Add "lock content" button to the layers, channels and paths dialogs, make the lock buttons more compact.
- Add a new compact number entry widget for tool options that combines a scale with numeric input in one control.
- Allow to rename list items with F2.
- Allow to bind arbitrary actions to extra mouse buttons.
Developers: TODO
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. Developers: Alexia Death, Michael Natterer, Zhenfeng Zhao
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 could 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. A python script for converting old tool presets to new ones will be provided with the next development release. Developers: Michael Natterer, Alexia Death
Cage Transform Tool
A completely new Cage transform tool has been added thanks to 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. Developers: Michael Muré
File Plug-Ins
A plug-in for loading JPEG2000 images have been added, and also a plug-in for X11 Mouse Cursor files. Also add fundamental OpenRaster (.ora) import and export support. Add 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 final PDF file, and attempts to convert all flat filled areas to vector objects. Developer: Barat 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 requirements of graphic tablets users. The widget combines a slider, a label and a numeric value control which both simplifies adjusting value using a stylus, better visualizes the current value and provides more compact UI. It is now used in the Tools Options dockable dialog for opacity control and most options of brush based tools. Developer: Michael Natterer
Another useful feature for users of advanced input devices such as graphic tablets is a completely new dialog for input device configuration that allows to configure per-device pressure curves to compensate for hardware differences and personal per-pen preferences. Developer: Michael Natterer
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. Developer: Alexia Death
Resource tagging
It is now possible to tag GIMP resources such as brushes and patterns. 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. This feature finally enables grouping of resources and the plan is to add a bigger set of default resources for GIMP 2.8. It is possible to tag multiple resources simultaneously in the UI. There are still work that needs to be done here, for example providing a set of default brushes. This feature was developed during Google Summer of Code 2008. Developer: Aurimas Juška Interaction Architect: Peter Sikking
Resources
We have started to overhaul the default set of resources and in this version there have been some changes to the default set of brushes. The silly "Untitled" has been removed from unnamed palette entries. Developer: Martin Nordholts Artist: Johannes Engelhardt
Minor Changes
- Allow to specify written language in the Text Tool
- Move 'Text along path' from tool options to text context menu
- Add diagonal guides to the Crop Tool
- Added support for rotation of brushes
- The Smooth Stroke feature from GIMP Painter was ported to GIMP.
- Add fundamental OpenRaster (.ora) import and export support
- Use GEGL for layer scaling if use-gegl is TRUE
- Add 'Rule of fifths' crop guide overlay
- Add an icon for the Desaturate tool
- Add support for loading 16bit (RGB565) raw data
- Add palette exporter for CSS, PHP, Python, txt and Java, accessed through palette context menu
- Add support for printing crop marks for images
- Make the Pointer dockable show information about selection position and size
- 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
- Improve Free Select Tool on-canvas feedback.
- Make it possible to use GEGL for Image Scale.
Developers: Alexia Death, gcpatch, Mikael Magnusson, Jon Nordby, Martin Nordholts, Jakub Steiner, Massimo Valentini, TODO
Miscellaneous
Plug-in Development
GIMP 2.6 also further enhances its scripting abilities. For example, API changes to support layer groups have been made. Here is a list of new symbols in GIMP 2.8.
API changes
A lot of GIMP's APIs have been refactored to simplify developing new scripts.
Licence
The GIMP license has been changed to (L)GPLv3+.
GEGL
The projection code, the code that composes a single image from layers, have been ported to GEGL. This includes the layer modes, as well as support for nested layers aka layer groups. Also, preparations have been made for better and more intuitive handling of the floating selection. Developers: Michael Natterer, Martin Nordholts
Roadmap
The GIMP developers now maintain a roadmap for GIMP development found here: http://wiki.gimp.org/index.php/Roadmap
GIMP 2.7 Screenshots (Todo, these are from 2.6)
First startup of GIMP 2.6 on a 1280x800 GNOME desktop.
UI layout example: Tool Options moved out of the toolbox.
UI layout example: Using the image window as a background window.
Demonstrating the kind of effects the new Brush Dynamics can create.
Full screenshot of on-canvas preview of Gaussian Blur using the experimental GEGL Operation tool.
Known Regressions
GIMP 2.8 relies on a newer version of GTK+2 that unfortunately has partially broken support for graphics tablets such as Wacom. If your graphic tablet doesn't work in GIMP 2.8 as it should, we recommend downgrading to 2.6 until we release GIMP 3.0 that relies on GTK+3 which has fully functional support for advanced input devices.
To address the needs to migrate from the old tools presets system to the new one we provide a script in Python. However, the old tools presets are not 100% convertible to the new tool presets. For instance, brush scale from 2.6 can't be converted to brush size in 2.8.
Download
The development snapshots of GIMP can be downloaded as source code from ftp.gimp.org or from one of the mirrors listed in the Downloads section.
Distribution of binary packages of the development version is discouraged unless it is made clear that this is an early development snapshot. Users should be referred to these release notes or similar information.
Installation
GIMP 2.7 must not be installed in the same prefix as other GIMP 2.x versions. If you want to keep your GIMP 2.6 installation in parallel to GIMP 2.7, you have to choose a separate installation prefix at compile-time and ensure that you use different library search paths for each version. If you do not set up your environment differently for each version, you will experience conflicts with the libraries and at least one version is likely to fail.
Also, do not install GIMP 2.7 to /usr/local because on most systems, its libraries would override the libraries of a stable GIMP 2.6 installed into /usr, breaking your distribution-installed GIMP from slightly to completely. The same applies to any prefix your system uses for the purpose or overriding things in /usr/lib.
You install the new version into a separate prefix, say /opt/gimp-2.7 by passing --prefix=/opt/gimp-2.7 to the configure script. Then, in order to run the binary installed there, you change your environment to look for executables in /opt/gimp-2.7/bin by setting PATH=/opt/gimp-2.7/bin and you tell your linker to pick up libraries from /opt/gimp-2.7/lib by setting LD_LIBRARY_PATH=/opt/gimp-2.7/lib. Do not forget to export both variables.
You can use a tiny wrapper script called gimp-2.7 and place it into /usr/local/bin or elsewhere in your PATH. The script would look something like this:
#!/bin/sh PATH=/opt/gimp-2.7/bin:$PATH export PATH LD_LIBRARY_PATH=/opt/gimp-2.7/lib export LD_LIBRARY_PATH /opt/gimp-2.7/bin/gimp-2.7 "$@"
Bugs
If you think you found a bug in a development version, please make sure that it hasn't been already reported. Search Bugzilla before filing a new bug-report. Here are some interesting Bugzilla queries:
Contributing
We need your help to make GIMP 2.8 a success. If you want to join us hacking, show up in #gimp or introduce yourself on the gimp-developer mailing-list. We are also looking for people to look after the web-site and update the tutorials. Or you might want to join the documentation team.