|Stable release||10.40 / September 26, 2007|
|Written in||C, Perl, Unix Shell|
|License||various, believed to be DFSG free|
Netpbm is an open source package of graphics programs and a programming library, used mainly in the Unix world. It is a highly portable package, working under many Unix platforms, Windows, Mac OS X, VMS, Amiga OS and others and is included in all major open source Unix-like operating system distributions.
File formats and programs
Netpbm defines a set of graphics formats called the netpbm formats:
- The Portable PixMap/GreyMap/BitMap formats PPM, PGM, PBM. They are collectively referred to as PNM (Portable aNy Map).
- The more sophisticated PAM format.
Netpbm contains over 220 separate programs in the package, most of which have "pbm", "pgm", "ppm", "pam", or "pnm" in their names. For example, you might use pamscale to shrink an image by 10%, pamcomp to overlay one image on top of another, pbmtext to create an image of text or reduce the number of colors in an image with pnmquant.
The Netpbm package can, for example, use two successive conversion programs to turn a picture in the PBM format into a .bmp file:
pgmtoppm "#FFFFFF" somepic.pbm > somepic.ppm ppmtobmp somepic.ppm > somepic.bmp
This is more commonly done as a pipeline, to save execution time and to avoid leaving a temporary somepic.ppm file around:
pgmtoppm "#FFFFFF" somepic.pbm | ppmtobmp > somepic.bmp
The Netpbm programs are frequently used as intermediates to convert between obscure formats. For instance, there may be no tool to convert an X11 window dump (XWD format) directly to a Macintosh PICT file, but one can do this by running xwdtopnm, then ppmtopict. (Tools which say that they output PNM may output PPM, PGM or PBM. Tools importing PNM will read any of the three formats.)
The PBM (black and white) format was invented by Jef Poskanzer in the mid-1980s. At the time, there was no standard, reliable way to send binary files in email, and attempting to send anything other than 7-bit ASCII in email often resulted in data corruption. PBM was designed to allow images to be sent via email without being corrupted. Poskanzer released the forerunner of Netpbm, called Pbmplus in 1988. By the end of 1988, Poskanzer had developed the PGM (greyscale) and PPM (color) formats and released them with Pbmplus.
The last release of Pbmplus was on December 10, 1991. Poskanzer never released any further updates, and in 1993 Netpbm was developed to replace it. At first it was nothing more than a renamed release of Pbmplus, but updates continued to occur until 1995 when the package again became abandoned. In 1999 the Netpbm package was picked up by its present maintainer, Bryan Henderson.
In 2000, PAM was added to the file formats of the NetPBM library allowing an alpha channel.