The Artists' Guide to the Gimp
Author: Michael J. Hammel
Price: $40 US
Reviewer: Syd Logan
The GNU Image Manipulation Program (GIMP) is a freely distributed program suitable for tasks such as photo retouching, image composition and image authoring. The GIMP is very closely related to Adobe Photoshop in terms of purpose and functionality, and some would say it is superior (one can't argue this in terms of its cost). The GIMP represents a significant contribution to Linux in its quest to become a viable desktop platform, because for many desktop users, an image editing program such as the GIMP is considered a “must have” application. A book such as The Artists' Guide to the GIMP is needed for programs like the GIMP to reach the widest possible audience, and so Michael J. Hammel, the book's author, and SSC have contributed to the success of the GIMP, and indirectly, to Linux as a platform by bringing this book to publication. I hope this is the first of many such books to follow.
The first impression I had upon receiving the book was its extensive use of color artwork and the quality of paper upon which it was printed. Having written a book on image processing, I know how expensive it can be to print books in this manner. Often, to reduce printing costs, a publisher will opt to print the color images together as a series of color plates bound somewhere near the center of the book. The difficulty with such an approach is it forces readers to skip back and forth between the text being read and the supporting illustrations, which isn't always convenient. SSC did readers of this book a favor by opting not to take the cost-saving approach; as a result, the book is full of color images, each located within a page of the relevant text.
The book begins with an introduction that discusses in detail issues such as minimum hardware and software requirements of systems running the GIMP. Much of the information could probably have been summarized neatly by a table or two that divulged the minimum and recommended amounts of memory, disk space and so on needed to run it. In the video requirements section, I sensed some minor confusion with regard to X11. I believe the graphics primitives used by Xt/Motif and Gtk+/Gdk are essentially the same (contrary to the author's claim), as both reside above, and make use of, Xlib. As a result, the graphics performance should be nearly identical, regardless of the toolkit used. The whole point is somewhat moot anyway, since the GIMP is not and never will be a Motif program.
Another source of minor confusion was the discussion of the X Shared Memory Extension. This extension can be taken advantage of by the GIMP only when both the X server and the GIMP are executing as processes on the same machine. This is the true reason an X terminal (for example, the NCD model that was mentioned in the book) could never take advantage of the extension—if an X terminal is involved, the server and the GIMP client are separated by a network connection, effectively executing on separate hosts. Also, if users are running the client on a UNIX/Linux host connected to an X server running locally on a desktop UNIX/Linux host which supports the shared memory extension, the GIMP still cannot take advantage of the extension, because a network connection separates the client and the server from each other.
Somewhere in Chapter 1, the author mentions how to start the GIMP from the command line by typing gimp. The --display argument is mentioned, but none of the other command-line arguments (-h, -v, -b, -n and so forth) are mentioned and neither is the fact that you can type gimp -? to obtain a usage report. I think a detailed book on any program that can be run from a command-line should cover each of the supported command line arguments in detail.
Most Linux users can skip the software requirements section, since the GIMP will be provided in a ready-to-run configuration with their Linux installation. For users of other systems (such as Solaris) or those of you wanting to get the sources and build the GIMP yourselves, helpful information is provided near the end of Chapter 1 to get you started.
Chapter 2, “GIMP Basics”, was misnamed. A better title might have been “Image Basics”. The chapter is short and provides a variety of information, including a basic discussion of raster graphics, color spaces, image and pixel organization, file formats and brief introductions to the GIMP's selection tools and layers. The discussion of image file formats was okay; the discussion of color spaces and pixel organization less so, but still adequate. Since the rest of the chapter dealt mainly with image and color space issues, the discussion of scanners seemed out of context. The same can be said regarding the discussion of layers and selection tools.
Chapter 3 is essentially a tour of significant portions of the GIMP user interface. It starts by listing various menu items available. Readers will want to skim this section in order to get an idea of how the menu items are organized, but plan to refer back to it later as a reference. I strongly suggest you launch a copy of the GIMP, open an existing image or create a new one, and play along as you read this chapter, trying out each menu item as it is discussed. The chapter continues with a discussion of some of the GIMP's dialogs, providing screen shots to illustrate each dialog. Even so, it is a good idea to practice bringing each dialog up; this will help you get savvy with the user interface much quicker. The chapter ends with a tutorial, which you can probably skip if you followed my suggestion and experimented with the GIMP as you read.
Chapter 4 covers the tool box, which is the main application dialog of the GIMP. Each button in the tool box is introduced and explained. I think this chapter, like Chapter 3, is a good one to skim and then return to later after the book has been read more completely. It has a reference-like organization and some of the terms introduced in the chapter may not be entirely clear until more detail provided later in the book has been read. This is especially true for those readers new to the GIMP and inexperienced with Photoshop or image manipulation programs in general. Chapter 4 ends with a “tutorial”, which to me seemed more like a quiz and an invitation to play with certain features than a tutorial.
Chapter 5, “Selections”, does a great job of describing the various selection tools available in the GIMP and presents many tips and tricks regarding their use. The tutorial at the end of the chapter was well-designed, far better than the one at the end of Chapter 4, I felt. Chapter 6 presents a similarly detailed treatment of GIMP layers and channels. Another well-designed tutorial follows the material presented in Chapter 6. I think much of the power and overall coolness of the GIMP derives from features described in these two chapters, so you will want to study them carefully.
Chapter 7, “Colors and Text”, discusses tools that can be used to perform image enhancements such as color balance changes, contrast enhancements, brightness modifications and histogram stretching. A concise description of the text tool dialog is presented, and the chapter finishes up with a look at Script-Fu logos. After a short description, each of the 21 logos supplied with the GIMP is illustrated. These logos look very cool, and I was compelled to try them out. I ran into font problems with most of the logos; this problem should have been anticipated by the author and help provided. I went to the index to see if there was an entry for “font” or “fonts” (a topic discussed a few pages earlier in the section entitled “Text Tool Dialog”). None was found. Scanning the table of contents, I found Appendix C, “Adding Fonts to the System”, but no information to help me with my problem was provided.
By the way, a button in the Script-Fu logos dialog that could be used to bring up a simplified font selection dialog similar to the text tool would be a great addition. Having to type in the name of the font and the font size seems like a rather crude way of doing things.
Chapter 8 covers drawing tools including pens, brushes, pencils and airbrush tools. The discussion seemed complete; however, the explanation of airbrush tool controls would have been a bit clearer with some example illustrations. Palettes (both indexed and RGB) and the tools that support them are discussed, and the chapter ends with a look at GFig, a plug-in intended to enhance the drawing capabilities of the GIMP.
Since I am running out of space for this review, I'll just take a quick look at the remaining chapters. Chapter 9 is a short chapter that covers transformations such as cropping, rotation and the like. Chapter 10 covers gradients and ends with a good tutorial on the subject. Chapter 11, “Scanning, Printing and Print Media”, ends Part 1 of the book. I don't have a scanner, and my printer was already configured for use with my Linux system, so the chapter did not hold much interest for me (at least not yet—someday I will want to hook up a scanner, and this chapter is where I will start).
Following Chapter 11 is Part 2 of the book, which covers various Script-Fu effects. Each of the 12 chapters in this section is short, on the order of a few pages, and covers a specific Script-Fu effect. The chapters are more to be looked at than read; most of the content is provided by a series of before/after screenshots which show the discussed effect being applied to an image. I suggest using these chapters as a catalog of the effects that are available, and when you find one you like, use the example provided in the book as a starting point for your own creations.
If you are serious about learning the GIMP, you will find a way to put this book on your bookshelf. If you are looking for something to teach you the GIMP via a series of examples or tutorials that build upon each other, you may need to look elsewhere. The book goes further than the typical “Learn XYZ in 21 Days” book and is a comprehensive reference to the GIMP and its operation that will prove itself useful to many readers. However, in the next edition I would like to see a chapter or two that takes readers through a detailed sample project, such as the creation of a complex image similar to the Linux Journal cover art Michael has produced in the past. This would help solidify the concepts presented throughout the book and give many readers a springboard for creating works of their own.