Fundamentals of Computer Science I (CS151.02 2007S)

The GNU Image Manipulation Program

This reading is also available in PDF.

Summary: In this reading, you will learn a bit about the GNU Image Manipulation Program (GIMP), an open-source alternative to Photoshop.



The GNU Image Manipulation Program (GIMP, for short) is an open-source, freely-distributed graphics editing program that can serve as a reasonable alternative to Adobe Photoshop. Like Photoshop, GIMP provides tools for both making new images and for manipulating existing images.

GIMP distinguishes itself from Photoshop in three key ways: First, it is an open source application, which means that you can get it for free and (if you have enough talent) can even modify the source code. Second, it is available on all three major operating system platforms (Mac, Windows, and Unix/Linux). Third, and perhaps most importantly for this course, GIMP is scriptable. In particular, you can interact with GIMP using a Scheme-like language. You can use this language to give simple commands or to write complex scripts.

We will explore these applications over the coming weeks.

Open Source Software and the GNU Project

As you probably know, the face of computing has changed significantly in the past twenty or so years. Until the advent of reasonably priced personal computers, most computing was done on large, shared, computer systems. To simplify matters, we'll say that there were two basic kinds of computing that happened then: business computing and academic/scientific computing. (Yes, that's a significant simplification.) In the business world, dominated by computers from IBM and its associated operating systems, there was an assumption that software either came with your computer or was purchased at a relatively high price. In the academic world, most people who needed custom software wrote it themselves and then shared it with their colleagues elsewhere (just as scientists regularly share research results, at least in an ideal world).

With the advent of the personal computer, the realms mixed somewhat (and, as importantly, expanded significantly). To many, this suggested that the business model could be more widely adopted. That is, your computer would come with a small, core, set of software and you'd buy anything else you wanted or needed. (It took some time for this model to develop; the first Macs shipped with free word-processing and drawing programs.)

Many long-time computer programmers were upset at this commercialization. In response, they began a number of endeavors to provide non-commercial alternatives to the commercial software. Foremost among these endeavors was the GNU (GNU's Not Unix) project, which evolved into the Free Software Foundation (FSF). Richard Stallman, the driving force behind GNU/FSF believed (and continues to believe) that software should be free (as in freedom). That is, if you own software, you should be free to use it as you wish, to modify it to make it do other things, and to share it with others. Stallman also believes strongly in community development, so a requirement of his free software is that you share any useful changes you make with the community.

The GNU project led to the development of Linux, one of the first free, widely-used operating systems for personal computers. It also led to the more general Open Source movement, which follows many of the tenets of the FSF (particularly the distribution of the source code of software, so that you can modify it), but permits a bit more of a commercial spin on those tenets.

While Linux is clearly one of the great successes of the open source movement, there have been many others. For example, the Apache Web Server is an open source project that provides the most popular Web Server and the MySQL project provides an open-source database management system. Grinnell's spam filtering system is also open source software.

The Free Software Foundation continues to take the lead in many projects. Many of the compilers (the programs that programmers use to build programmers) used today are FSF products. The Gnome graphical user interface that you've used all semester (the thing that provides windows and icons on our Linux boxes) is an FSF product. The FSF also produces alternatives to many commercial applications.

From your perspective, the most important aspect of open source software is probably that it's free (as in free beer): You can get a copy from the Web without paying for it and you can legally use it. Eventually, it may become important that it's modifiable (if it doesn't do something you want it to do, you can change it yourself, hire someone else to change it for your, or rely on the community to change it). And, depending upon your perspective, it may become important that it's unrestricted (or free as in freedom). Some of you may already have a political perspective that supports such freedom. Others of you are likely to find it necessary. As commercial software increasingly makes decisions as to what you can and cannot do, you will find unrestricted software more convenient.

As the introduction suggested, one of the more notable recent efforts of the FSF is GIMP. GIMP is a full-featured alternative to Photoshop, with some features that Photoshop lacks.

Obtaining GIMP

While the point of this reading (and this course) is not to teach you about open source software, it is important that you be able to get your own copy of GIMP so that, if you wish, you can explore the interaction between Scheme and graphics on your own computer. (You can also use it for your normal graphics editing tasks.)

You can obtain your own copy of GIMP from

Mac users also need to install the X server, which should come on your install disks.

Using GIMP

This portion of the reading is forthcoming.




Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Thu Sep 13 20:55:04 2007.
The source to the document was last modified on Thu Jan 18 12:30:56 2007.
This document may be found at

You may wish to validate this document's HTML ; Valid CSS! ; Creative Commons License

Samuel A. Rebelsky,

Copyright © 2007 Samuel A. Rebelsky. This work is licensed under a Creative Commons Attribution-NonCommercial 2.5 License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.