Newer Older
Elliot Lee's avatar
Elliot Lee committed
1 2 3
The GIMP: the GNU Image Manipulation Program

This is version 0.99.20 of the GIMP. For the most part it contains all
Elliot Lee's avatar
Elliot Lee committed
5 6 7 8
of the features that will be in version 1.0 of the GIMP. It does,
however, lack a) documentation, b) robustness and c) some of the
plug-ins found in the 0.54 version.

The main difference between v0.99.20 and much earlier versions is the
Elliot Lee's avatar
Elliot Lee committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
use of a tile based memory management for images. This allows the GIMP
to work with images much larger than physical memory in a usable
fashion. Before such memory management, the GIMP was nearly unusable
for large images. (Large being something on the order of
4000x3000). With the tile memory management, image size is effectively
limited by disk space. It is due to the switch to a tile based memory
management system that old plug-ins will not work with this version of
the GIMP.

The GIMP uses GNU libtool in order to build shared libraries on a
variety of systems. While this is very nice for making usable
binaries, it can be a pain when trying to debug a program. For that
reason, compilation of shared libraries can be turned off by
specifying the "--disable-shared" option to "configure". Similarly,
compiling with "-O2" instead of "-g" can be specified by using the
"--disable-debug" option to "configure". We strongly recommend
compiling with the debugging flag as the GIMP appears to be much more
buggy when compiled with optimization turned on.  Your mileage may vary.

The plug-in API has changed drastically from previous versions. The
result is that it is now possible to access much of the GIMP's
internals through a database of procedures aptly named the procedure
database. Plug-ins fit into the procedure database by inserting
themselves into it. The result is that plug-ins can call GIMP internal
procedures and other plug-ins. Most plug-ins now fully support the
procedural database, so that you can call them from scripts and other
places as well.

The procedure database is self-documenting. To add a procedure to the
procedure database the programmer must specify a help string and help
strings for the arguments and return values. This allows us to
automatically create documentation for the procedures in the procedure
database. The documentation resides in "docs" and is provided in
texinfo format.

A new type of plug-in called an extension has been created. Extensions
are similar to plug-ins in that they are external program, but they
differ in when and how they are run. The essential difference is that
plug-ins are associated with a particular image/drawable, while
extensions are not.

A good example of a complex extension is Script-fu, which resides in
the "plug-ins/script-fu" directory.  Script-fu is a simple Scheme
interpreter that provides bindings to the GIMP's procedural database.
This way you can write useful scripts that call the GIMP's functions
and plug-ins, thus allowing automatization of repetitive tasks.  Many
scripts are included for your enjoyment in the
"plug-ins/script-fu/scripts" directory.

Another extension is the "dbbrowser" utility, which lets you
interactively browse through the procedures installed in the
procedural database.  This will mainly be of use to Script-fu
programmers.  Dbbrowser is also nicely integrated in the interactive
Script-fu console.

Lastly, there is new file format (xcf) designed specifically for
saving GIMP images. It handles layers, channels and tiles as well as
saving all of the state information about the image, such as the
active channel, the selection, etc. The format needs testing to make
sure that it really is portable (we think we did it right) as well as
robust. It also will probably change sometime in (near) the future to
implement some form of compression for the tiles.

The GIMP's new home page is at

Please be sure to visit this site for information, documentation,
tutorials, news, etc.  All things GIMP-ish are available from there.

The automated plug-in registry is located at

There you can get the latest versions of plug-ins using a convenient
forms-based interface.

We have several mailing lists dedicated to GIMP user and development
discussion.  To subscribe, send mail to

and in the body of the message put

	subscribe <list-name> your@email.address

substituting <list-name> for "gimp-user" or "gimp-developer" (without
the quotes, of course) depending on the list you want to subscribe
to.  The mailing list archives can be found at

Manish Singh's avatar
Manish Singh committed
100 101
Elliot Lee's avatar
Elliot Lee committed
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

Gimp-user is a mailing list dedicated to user problems, hints and
tips, discussion of cool effects, etc.  Gimp-developer is oriented to
GIMP core and plug-in developers.  Most people will only want to be
subscribed to gimp-user.

And finally, for the real junkies, there are two IRC channels devoted
to the GIMP :-) On EFNET there is a small #gimp channel.  On Byxnet (a
private mostly-GIMP network) there is #gimp, too.  Some of the Byxnet
servers are:

More information about Byxnet can be found at

Manish Singh's avatar
Manish Singh committed
122 123 124
Manish Singh ( has contributed a set of keybindings similar
to those in Adobe Photoshop (tm).  You can find them in the ps-menurc file.
To use them, copy this file to ~/.gimp/menurc
Elliot Lee's avatar
Elliot Lee committed
125 126 127 128 129 130 131 132 133 134 135

We sincerely hope you enjoy the program.  Please report problems to  Before reporting a problem, you
may want to see if someone else has already did (check the mailing
list archives for this).

Have fun,

  Spencer Kimball <>
  Peter Mattis <>
  Federico Mena <>
  Manish Singh <>