Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Chapter 3. First Steps with Wilber

1. Basic Concepts

Figure 3.1. Wilber, the GIMP mascot

Wilber, the GIMP mascot

The Wilber_Construction_Kit (in src/images/) allows you to give the mascot a different appearence. It is the work of Tuomas Kuosmanen (

This section is intended to give you a brief introduction to the basic concepts and terminology you will need to understand in order to make sense of the rest of the documentation. Everything here is explained in much greater depth elsewhere. With a few exceptions, we have avoided cluttering this section with a lot of links and cross-references: everything mentioned here is so high-level that you should easily be able to locate it in the index.


Images are the basic entities that GIMP works with. Roughly speaking, an “image” corresponds to a single file, such as a TIFF or JPEG file. You can also think of an image as corresponding to a single display window, but this is not quite correct: it is possible to have multiple windows all displaying the same image. It is not possible to have a single window display more than one image, though, or for an image to have no window displaying it.

A GIMP image may be quite a complicated thing. Instead of thinking of it as something like a sheet of paper with a picture on it, you should think of it as more like a book, whose pages are called “layers” In addition to a stack of layers, a GIMP image may contain a selection mask, a set of channels, and a set of paths. In fact, GIMP provides a mechanism for attaching arbitrary pieces of data, called “parasites”, to an image.

In GIMP, it is possible to have many images open at the same time. If they are large, each image may use many megabytes of memory, but GIMP uses a sophisticated tile-based memory management system that allows it to handle even very large images gracefully. There are, however, limits, and having more memory available can help to improve the performance of the system.


If an image is like a book, then a layer is like a page within the book. The simplest images only contain a single layer, and can be treated like single sheets of paper, but sophisticated GIMP users often deal with images containing many layers, even dozens of them. Layers need not be opaque, and they need not cover the entire extent of an image, so when you look at an image's display, you may see more than just the top layer: you may see elements of many layers.


In GIMP, Channels are the smallest units of subdivision in the stack of layers from which the image is constructed. Every Channel in a layer has exactly the same size as the layer it belongs to and consequently consists of the same pixels. Every pixel can be regarded as a container which can be filled with a value ranging from 0 to 255. The exact meaning of this value depends on the type of channel, e.g. in the RGB color model the value in the R-channel means the amount of red which is added to the colour of the different pixels, in the selection channel the value denotes how strongly the pixels are selected and in the alpha channel the values denote how transparent the corresponding pixels are.


Often when you do something to an image, you only want a part of it to be affected. The “selection” mechanism makes this possible. Each image has its own selection, which you normally see as a moving dashed line separating the selected parts from the unselected parts (the so-called “marching ants” ). Actually this is a bit misleading: selection in GIMP is really graded, not all-or-nothing, and really the selection is represented by a full-fledged grayscale channel. The dashed line that you normally see is simply a contour line at the 50%-selected level. At any time, though, you can visualize the selection channel in all its glorious detail by toggling the QuickMask button.

A large component of learning how to use GIMP effectively is acquiring the art of making good selections—selections that contain exactly what you need and nothing more. Because selection-handling is so centrally important, GIMP gives you a large number of tools for doing it: an assortment of selection-making tools, a menu of selection operations, and the ability to switch to Quick Mask mode, in which you can treat the selection channel as though it were a color channel, thereby “painting the selection”.


When you make mistakes, you can undo them. Nearly everything you can do to an image is undoable. In fact, you can usually undo a substantial number of the most recent things you did, if you decide that they were misguided. GIMP makes this possible by keeping a history of your actions. This history consumes memory, though, so undoability is not infinite. Some actions use very little undo memory, so that you can do dozens of them before the earliest ones are deleted from this history; other types of actions require massive amounts of undo memory. You can configure the amount of memory GIMP allows for the undo history of each image, but in any situation, you should always be able to undo at least your 2-3 most recent actions. (The most important action that is not undoable is closing an image. For this reason, GIMP asks you to confirm that you really want to close the image if you have made any changes to it.)


Many, probably most, of the things you do to an image in GIMP are done by the GIMP application itself. However, GIMP also makes extensive use of “plug-ins”, which are external programs that interact very closely with GIMP, and are capable of manipulating images and other GIMP objects in very sophisticated ways. Many important plug-ins come packaged together with GIMP, but there are also many available by other means. In fact, writing plug-ins (and scripts) is the easiest way for people not on the GIMP development team to add new capabilities to GIMP.

All of the commands in the Filters menu, and a substantial number of commands in other menus, are actually implemented as plug-ins.


In addition to plug-ins, which are programs written in the C language, GIMP can also make use of scripts. The largest number of existing scripts are written in a language called Script-Fu, which is unique to GIMP (for those who care, it is a dialect of the Lisp-like language called Scheme). It is also possible to write GIMP scripts in Python or Perl. These languages are more flexible and powerful than Script-Fu; their disadvantage is that they depend on software that does not automatically come packaged with GIMP, so they are not guaranteed to work correctly in every GIMP installation.

  Published under the terms of the GNU General Public License Design by Interspire