gif2png - convert GIFs to PNGs
[-bdfghinprsvwO] [ file.[gif]...]
program converts files in the obsolescent Graphic Interchange
Format (GIF) to Portable Network Graphics (PNG) format, an open W3C standard.
converts each file named on the command line, leaving
the original in place. If a name does not have a .gif extension, the
unmodified name will be tried first, followed by the name with .gif appended.
For each file named foo.gif, a foo.png will be created.
When a multi-image GIF file named foo.gif is converted, gif2png creates multiple
PNG files, each containing one frame; their names will be foo.png, foo.p01,
If no source files are specified and stdin is a terminal, gif2png
usage summary and version information, then exits.
If no source files are specified, and stdin is a device or pipe, stdin is
converted to noname.png. (The program can't be a normal stdin-to-stdout filter
because of the possibility that the input GIF might have multiple images).
However, if filter mode is forced (with -f) stdin will be converted to stdout,
returning an error code if the GIF is multi-image.
The program will preserve the information contained in a GIF file as closely as
possible, including GIF comment and application-data extension blocks. All
graphics data (pixels, RGB color tables) will be converted without loss of
information. Transparency is also preserved. There is one exception; GIF
plain-text extensions are skipped.
The program automatically converts interlaced GIFs to interlaced PNGs. It
detects images in which all colors are gray (equal R, G, and B values) and
converts such images to PNG grayscale. Other images are converted to use the
PNG palette type. Duplicate color entries are silently preserved. Unused
color-table entries cause an error message.
The action of the program can be modified with the following command-line
Background. Replace transparent pixels with
given RGB value, six hexadecimal digits interpreted as two hexits each of red,
green, and blue value. The value may optionally be led with a #,
Delete source GIF files after successful
Filter mode. Convert GIF on stdin to PNG on
stdout, return error if the GIF is multi-image.
Preserve file modification time. the PNG
output gets the mod time of the input file, not the time it was
Write gamma=1/2.2 and sRGB chunks in the
Generate PNG color-frequency histogram chunks
into converted color files.
Force conversion to interlaced PNG
Force conversion to non-interlaced PNG
Display progress of PNG writing.
Try to recover data from corrupted GIF
Do not translate the GIF Software chunk to a
Verbose mode; show summary line, -vv enables
conversion-statistics and debugging messages.
Web-probe switch; list GIFs that do not have
multiple images to stdout. GIFs that fail this filter cause error messages to
Optimize; remove unused color-table entries.
Normally these trigger an error message and disable -d (but conversion
is completed anyway). Also, use zlib compression level 9 (best compression)
instead of the default level. The recovery algorithm enabled by -r is
as follows: Unused color table entries will not trigger an error message as
they normally do, but will still be preserved unless -O is also on, in
which case they will be discarded. Missing color tables will be patched with a
default that puts black at index 0, white at index 1, and supplies red, green,
blue, yellow, purple and cyan as the remaining color values. Missing image
pixels will be set to 0. Unrecognized or corrupted extensions will be
Naively converting all your GIFs at one go with gif2png
is not likely to
give you the results you want. Animated GIFs cannot be translated to PNG,
which is a single-image format.
The web-probe switch is intended to be used with scripts for converting web
sites. In versions of this tool up to 2.5.2 it filtered out GIFs with
transparency as well as GIFs with animations, but support for PNG transparency
has been universal in browsers since about 2006.
Copies of the GIF89 specification are widely available on the Web; search for
"GRAPHICS INTERCHANGE FORMAT". The Graphics Interchange Format(c) is
the Copyright property of CompuServe Incorporated. GIF(sm) is a Service Mark
property of CompuServe Incorporated. The GIF format was formerly covered by a
blocking patent on LZW compression, but it expired in June 2003.
The PNG home site at < http://www.libpng.org/pub/png/
> has very
complete information on the PNG standard, PNG libraries, and PNG tools.
Code by Alexander Lehmann <firstname.lastname@example.org>, 1995. Auto-interlace
conversion and tRNS optimization by Greg Roelofs <email@example.com>, 1999.
Man page, -O, -w, and production packaging by Eric S. Raymond
<firstname.lastname@example.org>, 1999. -m option by Steve Ward, 2012.