Giftopnm User Manual

Section: Misc. Reference Manual Pages (0)
Updated: 6 August 2006
Index Return to Main Contents

giftopnm - convert a GIF file into a PNM image



giftopnm [--alphaout={alpha-filename,-}] [-verbose] [-comments] [-image={N,all}] [-quitearly] [GIFfile]

Minimum unique abbreviation of option is acceptable. You may use double hyphens instead of single hyphen to denote options. You may use white space in place of the equals sign to separate an option name from its value.



This program is part of Netpbm(1).

This is a graphics format converter from the GIF format to the PNM (i.e. PBM, PGM, or PPM) format.

If the image contains only black and maximally bright white, the output is PBM. If the image contains more than those two colors, but only grays, the output is PGM. If the image contains other colors, the output is PPM.

 A GIF image contains rectangular pixels.  They all have the same aspect ratio, but may not be square (it's actually quite unusual for them not to be square, but it could happen). The pixels of a Netpbm image are always square. Because of the engineering complexity to do otherwise, giftopnm converts a GIF image to a Netpbm image pixel-for-pixel. This means if the GIF pixels are not square, the Netpbm output image has the wrong aspect ratio. In this case, giftopnm issues an informational message telling you to run pamscale to correct the output.



giftopnm creates a PGM (portable graymap) file containing the alpha channel values in the input image. If the input image doesn't contain an alpha channel, the alpha-filename file contains all zero (transparent) alpha values. If you don't specify --alphaout, giftopnm does not generate an alpha file, and if the input image has an alpha channel, giftopnm simply discards it.

If you specify - as the filename, giftopnm writes the alpha output to Standard Output and discards the image.

See pamcomp(1)foronewaytouse the alpha output file.

Produce verbose output about the GIF file input.

Only output GIF89 comment fields.

This option identifies which image from the GIF stream you want. You can select either one image or all the images. Select al the images with all. Select one image by specifying its sequence number in the stream: 1, 2, 3, etc.

The default is just Image 1.

A GIF stream normally contains only one image, so you don't need this option. But some streams, including animated GIFs, have multiple images.

When you select multiple GIF images, the output is a PNM stream with multiple images.

If you specify a single image, giftopnm must read and partially validate the images before that in the stream. It may or may not do the same for the images after it; see -quitearly.

The all value was added in Netpbm 10.16 (June 2003). Earlier giftopnm can extract only one image.

This options makes giftopnm stop reading its input file as soon as it has converted and output the images from the input that you requested. By default, giftopnm reads until the end of the GIF stream, ignoring any data after the images you requested.

Two reasons not to use this option:

The input file is a pipe and the process that is filling that pipe expects the pipe to take the entire stream and will fail or get stuck if it doesn't.

You want to validate the entire GIF stream.

Two reasons to use this option:

It saves the time and other resources to read the end of the stream.
There are errors in the end of the stream that make giftopnm fail.

This option has no effect if you also specify -image=all

This option was new in Netpbm 10.35 (August 2006). Before that, giftopnm always reads the entire stream.



This does not correctly handle the Plain Text Extension of the GIF89 standard, since I did not have any example input files containing them.



ppmtogif(1), ppmcolormask(1), pamcomp(1), , ppm(1).



Copyright (c) 1993 by David Koblas (



As a historical note, for a long time if you used giftopnm, you were using a patent on the LZW compression method which was owned by Unisys, and in all probability you did not have a license from Unisys to do so. Unisys typically asked $5000 for a license for trivial use of the patent. Unisys never enforced the patent against trivial users, and made statements that it is much less concerned about people using the patent for decompression (which is what giftopnm does than for compression. The patent expired in 2003.

Rumor has it that IBM also owns a patent covering giftopnm.

A replacement for the GIF format that has never required any patent license to use is the PNG format.



LICENSE manual pages