first commit
This commit is contained in:
54
build/node_modules/node-zopfli/zopfli/README.zopflipng
generated
vendored
Normal file
54
build/node_modules/node-zopfli/zopfli/README.zopflipng
generated
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
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
|
||||
Reference in New Issue
Block a user