This is the home page for Netpbm.

About Netpbm

Netpbm is a toolkit for manipulation of graphic images, including conversion of images between a variety of different formats. There are over 300 separate tools in the package including converters for about 100 graphics formats. Examples of the sort of image manipulation we're talking about are: Shrinking an image by 10%; Cutting the top half off of an image; Making a mirror image; Creating a sequence of images that fade from one image to another.

For details, look at the user manual.

The package is intended to be portable to many platforms. It has, at least at one time, been tested under various Unix-based systems, Windows, Mac OS X, VMS and Amiga OS. The maintainer uses and builds it on a platform that consists (in relevant part) mainly of GNU software (you probably know this kind of system by the name "Linux").

The goal of Netpbm is to be a single source for all the primitive graphics utilities, especially converters, one might need. So if you know of some freely redistributable software in this vein which is not in the package yet, you should bring it to the attention of the Netpbm maintainer so it can be included in the next release.

Netpbm does not contain interactive tools and doesn't have a graphical interface.

Getting Netpbm

Netpbm Source Package

The most basic way to get Netpbm is to get the source package from the Netpbm Sourceforge project and build it for the particular system on which you want to run it.

Netpbm has a sophisticated, rather novel system of releasing source code (see Release System), but you probably don't need to know any more than the following to download Netpbm.

No matter how you get the Netpbm source code, you have to build it, following instructions and using tools in the package, before you can install and use it.

The source code packages do not contain documentation. The documentation is online, and if you want a local copy, you can either download it from that webserver or get the identical files from the the documentation area of the Subversion repository. Instructions for doing that download, and installing the documentation on your system, are in the source code package in the doc/USERDOC file.

At any particular time, there are 3 Netpbm releases from which to choose:
Series name Bugs Features How to download
Super Stable Very few two or more years old Conventional source code tarball from Sourceforge
Stable Few up to a year old Subversion
Advanced Many up to 1/4 year old Subversion

Note that none of these releases we're talking about have any known bugs. The bugs are those that haven't been reported yet.

Downloading A Tarball

Get the tarball for the Super Stable release from Sourceforge.

This is a highly conventional Unix source code package. Use the conventional Unix program tar to unpack it. It is Gzipped.

Downloading From Subversion

Downloading from Subversion is not a common way to get a release of software, but it is very easy. You need a Subversion client program to do it, but even that is not hard to get, and you may well find other uses for a Subversion client later.

If you don't even know what Subversion is: It's a replacement for CVS. If you don't know what CVS is: It's a system designed for tracking changes to code as people develop it. Subversion is primarily intended to be used by developers, but works well as a release tool as well.

If you need a tarball of a Netpbm release, it is easy to make one once you've downloaded the code from Subversion. Easy enough that a simple program could do the download and create it.

The reason Netpbm uses this nontraditional method of distributing code is that it saves work for the Netpbm maintainer. In some cases, it shifts work from the maintainer to the user. In others, it actually eliminates work.

If you don't have Subversion installed on your system (type svn at a shell prompt to find out), see Getting Subversion for information on getting it.

The URL of the Netpbm Subversion repository is http://netpbm.svn.sourceforge.net/svnroot/netpbm. So to download the current Advanced release:


    svn checkout http://netpbm.svn.sourceforge.net/svnroot/netpbm/advanced netpbm

That puts the source tree in a directory called netpbm in your current directory.

To download the current Stable release, replace "advanced" with "stable" in the above command.

Browsing

You can browse the source code one file at a time with Sourceforge's Subversion web access.

Pre-Built Distributions

There are a few distributions of Netpbm pre-built for particular kinds of systems. These are often called "binary" distributions. The "Netpbm maintainer" is the maintainer only of the source package, though. The pre-built packages are distributed independently from the Netpbm source package. They are typically based on a fairly downlevel Netpbm source package.

If you have built Netpbm for a common platform, consider making it available to others; Contact the Netpbm maintainer to get it listed here or to add it to the Netpbm Sourceforge project.

Here are pre-built distributions the Netpbm maintainer knows about:

Building and Installing

Instructions for building and installing Netpbm are in the Netpbm source tree in file doc/INSTALL.

Support

There is no mailing list or tracking system for bug reports and requests for help. Just send an email to the maintainer, Bryan Henderson, at bryanh@giraffe-data.com. Bryan responds fairly quickly and reliably.

Please check the change history for your release series first to see if the bug has already been fixed. The --version option on most Netpbm programs tells you which release you are using.

There is no bug tracking system because there aren't enough bug reports to make it worthwhile. The maintainer responds to each emailed bug report immediately.

Note that there is generally no such thing as a bug that has been reported but does not have a fix listed in the change history. That's because when a bug is reported, there is a new release within a few days to fix it (or a documentation change making it not a bug).

Development

Netpbm is maintained and distributed via a Sourceforge project.

SourceForge.net Logo

Prerequisites

If you have trouble getting, building, or installing the prerequisites, the Netpbm maintainer wants to know. Since he uses them himself, he can help you. And if there is a problem with a prerequisite package that its own maintainer cannot fix, it may be possible to ship a fix with Netpbm.

To build and install Netpbm, you need GNU Make and a Perl interpreter. You can get GNU Make from The GNU Project and Perl from CPAN. It's possible to get around the Perl requirement by running some of the steps on a different machine that has Perl and doing others manually. There is no practical substitute for GNU Make.

The Netpbm package as a whole uses over half a dozen external libraries, but you don't necessarily need to install them all in order to build Netpbm. Each library is used by a few Netpbm programs, and if you don't have the library, the Netpbm build will automatically skip building those parts. See the Prerequisite List.

pstopnm (the Postscript to PNM image converter) requires Ghostscript (installed with the name gs in your command search path). And it requires in particular that Ghostscript be built with the relevant PNM device drivers.

Pretty much any C compiler works except Gcc 2.96.

Netpbm requires about 6 MiB of disk space, not including documentation. The documentation is 2 MiB, but you don't necessarily have to install it; you can just access the public copy.

Using Netpbm In A Website

Many people use Netpbm to perform graphics functions in a web site. They have CGI scripts that invoke Netpbm programs to process images for display on a web page. Gallery and 4Images are two web site software packages that rely on Netpbm for graphics manipulation.

Installing Netpbm requires different skills and system access than installing most other web site software. You must be able to compile C code for the web server machine and have a basic understanding of how files are organized and programs run on the web server. Diagnosing inevitable problems usually requires shell access to the web server.

Netpbm is basic graphics software that ought to be supplied by any web hosting service. If it isn't on your web server already, you should request that the system administrator add it.

The Gallery project provides an easy install package for the parts of Netpbm that Gallery needs, and provides technical support via its public forum.

History

Netpbm's history stretches back to 1988. Briefly: Netpbm replaces the widely spread Pbmplus package (last released December 10, 1991). Myriad improvements and additions have been made. After the latest release of Pbmplus, a lot of additional filters began circulating on the net, which was a fairly novel state of affairs at the time. The aim of Netpbm was to collect these and to turn them into a package, hence the name "Netpbm." This work has been performed by programmers all over the world.

For detailed code change history, see change.html. From here, you can tell if a certain bug has been fixed since the release in which you see it, and what new features are in newer releases than what you have.


By Bryan Henderson, San Jose, CA; bryanh@giraffe-data.com last checked 2008.08.01.