Working with the Image
Text and images Copyright (C) 2002 Kevin Turner and may not be used without permission of the author.
A plug-in is of limited use if it has nothing to do with the image. In this section, we explore the exciting world of GIMP image hierarchy, and learn how to manipulate it.
In the beginning, there was Wilber, Wilber the gimp. The graphic was without form and void, and darkness was upon the face of the desktop,
and the Spirit of Wilber was moving over the face of the bitstream.
And Wilber said, "<Toolbox>File->New," and there was an image. And Wilber saw that the image was good, and Wilber separated the image into drawables. And Wilber looked down at what he had wrought, and Wilber said, "Oh golly." For Wilber had made the drawables of the layer according to their kinds, and the drawables of the channel according to their kinds, and the drawables of the mask according to their kinds ...
... or you could look at it the other way around. We have all sorts of silly things like masks, channels, and layers, but they're all just a bunch of pixels that can be drawn on, so we treat them much the same and lump them all in to the category of "drawables". And an image, then, is just what you get when you put some drawables together.
Most plug-ins care suprisingly little about these images. After all, it's the bunch of pixels on the drawable most of them are playing with. In any case, the most complex data structure a plug-in uses for an image is an integer (gint32), a simple ID by which GIMP knows that image.
Drawables make life much more exciting. <snip>
The original document can be found here.