ZopfliPNG is a command line program to optimize the Portable Network Graphics
(PNG) images. This version has the following features:
- uses Zopfli compression for the Deflate compression,
- compares several strategies for choosing scanline filter codes,
- chooses a suitable color type to losslessly encode the image,
- removes all chunks that are unimportant for the typical web use (metadata,
  text, etc...),
- optionally alters the hidden colors of fully transparent pixels for more
  compression, and,
- optionally converts 16-bit color channels to 8-bit.

This is an alpha-release for testing while improvements, particularly to add
palette selection, are still being made. Feedback and bug reports are welcome.

Important:

This PNG optimizer removes ancillary chunks (pieces of metadata) from the
PNG image that normally do not affect rendering. However in special
circumstances you may wish to keep some. For example for a design using
custom gamma correction, keeping it may be desired. Visually check in the
target renderer after using ZopfliPNG. Use --keepchunks to keep chunks, e.g.
--keepchunks=gAMA,pHYs to keep gamma and DPI information. This will increase
file size. The following page contains a list of ancillary PNG chunks:
http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html

Build instructions:

To build ZopfliPNG, compile all .c, .cc and .cpp files from src/zopfli,
src/zopflipng and src/zopflipng/lodepng, except src/zopfli/zopfli_bin.c, to a
single binary with C++, e.g.:
g++ src/zopfli/{blocksplitter,cache,deflate,gzip_container,hash,katajainen,lz77,squeeze,tree,util,zlib_container,zopfli_lib}.c src/zopflipng/*.cc src/zopflipng/lodepng/*.cpp -O2 -W -Wall -Wextra -Wno-unused-function -ansi -pedantic -o zopflipng

A makefile is provided as well, but only for linux: use "make zopflipng" with
the Zopfli makefile. For other platforms, please use the build instructions
above instead.

The main compression algorithm in ZopfliPNG is ported from WebP lossless, but
naturally cannot give as much compression gain for PNGs as it does for a more
modern compression codec like WebP
https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification.

Compared to libpng -- an often used PNG encoder implementation -- ZopfliPNG uses
2-3 orders of magnitude more CPU time for compression. Initial testing using a
corpus of 1000 PNGs with translucency, randomly selected from the internet,
gives a compression improvement of 12% compared to convert -q 95, but only 0.5%
compared to pngout (from better of /f0 and /f5 runs).

By releasing this software we hope to make images on the web load faster without
a new image format, but the opportunities for optimization within PNG are
limited. When targeting Android, Chrome, Opera, and Yandex browsers, or by using
suitable plugins for other browsers, it is good to note that WebP lossless
images are still 26 % smaller than images recompressed with ZopfliPNG.

2013-05-07, Lode Vandevenne and Jyrki Alakuijala
