5.  Paths

Revision History
Revision $Revision: 1757 $ 2006-03-21 j.h

Figure 7.8.  Four examples of GIMP paths

Four examples of GIMP paths

Four examples of GIMP paths: one closed and polygonal; one open and polygonal; one closed and curved; one with a mixture of straight and curved segments.


A path is a one-dimensional curve. Paths are used for two main purposes:

Paths can be created and manipulated using the Path tool. Paths, like layers and channels, are components of an image. When an image is saved in GIMP's native XCF file format, any paths it has are saved along with it. The list of paths in an image can be viewed and operated on using the Paths dialog. If you want to move a path from one image to another, you can do so by copying and pasting using the popup menu in the Paths dialog, or by dragging an icon from the Paths dialog into the destination image's window.

Figure 7.9.  Appearance of a path while it is being manipulated using the Path tool.

Appearance of a path while it is being manipulated using the Path tool.

Black squares are anchor points, the open circle is the selected anchor, and the two open squares are its handles. Note that this path has two components.


GIMP paths belong to a mathematical type called “Bezier paths”. What this means in practical terms is that they are defined by anchors and handles. “Anchors” are points the path goes through. “Handles” define the direction of a path when it enters or leaves an anchor point: each anchor point has two handles attached to it.

Paths can be very complex. If you create them by hand using the Path tool, unless you are obsessive they probably won't contain more than a few dozen anchor points (often many fewer); but if you create them by transforming a selection into a path, or by transforming text into a path, the result can easily contain hundreds of anchor points, or even thousands.

A path may contain multiple components. A “component” is a part of a path whose anchor points are all connected to each other by path segments. The ability to have multiple components in paths allows you to convert them into selections having multiple disconnected parts.

Each component of a path can be either open or closed: “closed” means that the last anchor point is connected to the first anchor point. If you transform a path into a selection, any open components are automatically converted into closed components by connecting the last anchor point to the first anchor point with a straight line.

Path segments can be either straight or curved. A path all of whose segments are straight is called “polygonal”. When you create a path segment, it starts out straight, because the handles for the anchor points are initially placed directly on top of the anchor points, yielding handles of zero length, which produce straight-line segments. You can make a segment curved by dragging a handle away from one of the anchor points.

One nice thing about paths is that they are very light in terms of resource consumption, especially in comparison with images. Representing a path in RAM only requires storing the coordinates of its anchors and handles: 1K of memory is enough to hold quite a complex path, but not enough to hold even a 20x20 pixel RGB layer. Therefore, it is quite possible to have literally hundreds of paths in an image without putting any significant stress of your system. (How much stress managing them would put on you is, of course, another question.) Even a path with thousands of segments consumes minimal resources in comparison to a typical layer or channel.

5.1.  Paths and Selections

GIMP lets you transform the selection for an image into a path; it also lets you transform paths into selections. For information about the selection and how it works, see the Selection section.

When you transform a selection into a path, the path closely follows the “marching ants”. Now, the selection is a two-dimensional entity, but a path is a one-dimensional entity, so there is no way to transform the selection into a path without losing information. In fact, any information about partially selected areas (i.e., feathering) will be lost when the selection is turned into a path. If the path is transformed back into a selection, the result is an all-or-none selection, similar to what would be obtained by executing "Sharpen" from the Select menu.