| 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. |
| |
| To build ZopfliPNG, use "make zopflipng", or compile all the sources except |
| zopfli_bin.c. |
| |
| 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 |