---
name: "gif2png"
section: "1"
platform: "linux"
package: "gif2png"
version: "3.0.3-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gif2png"
---

# gif2png(1)

convert GIFs to PNGs

## NAME

gif2png - convert GIFs to PNGs

## SYNOPSIS

**gif2png** \[-bdfmvwO\] \[*file.\[gif\]*...\]

## DESCRIPTION

The **gif2png** program converts files in the obsolescent Graphic Interchange Format (GIF) to Portable Network Graphics (PNG) format, an open W3C standard.

Normally **gif2png** 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, foo.p02 etc.

If no source files are specified and stdin is a terminal, **gif2png** lists a 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, with **gif2png** returning an error code if the GIF is multi-image.

All graphics data (pixels, RGB color tables) will be converted without loss of information. Transparency is also preserved. The GIF aspect-ratio field, offset fireld, and extensions are dropped.

The program automatically 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. Interlacing is removed.

The action of the program can be modified with the following command-line switches:

- **-b** {#}RRGGBB

  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 #, HTML-style.

- **-d**

  Delete source GIF files after successful conversion.

- **-f**

  Filter mode. Convert GIF on stdin to PNG on stdout, return error if the GIF is multi-image.

- **-m**

  Preserve file modification time. The PNG output gets the mod time of the input file, not the time it was converted.

- **-v**

  Verbose mode; show summary line, -vv enables conversion-statistics and debugging messages.

- **-w**

  Web-probe switch; list GIFs that do not have multiple images to stdout. GIFs that fail this filter cause error messages to stderr.

- **-O**

  Use zlib compression level 9 (best compression) instead of the default level.

## LIMITATIONS

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.

## RETURN VALUES

Normally returns 0 for successful comp\[letion. A return of 1 is a recoverable error (batch processing continues).

## STANDARDS AND SPECIFICATIONS

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.

## SEE ALSO

[web2png(1)](/web2png/1.md)

## AUTHORS

Code by Alexander Lehmann \<alex@hal.rhein-main.de\>, 1995. Auto-interlace conversion and tRNS optimization by Greg Roelofs \<newt@pobox.com\>, 1999. Man page, -O, -w, and production packaging by Eric S. Raymond \<esr@thyrsus.com\>, 1999. -m option by Steve Ward, 2012.
