blob: 9955b908524d660edaba92a947c71fa7c3361645 [file] [log] [blame]
/*
This is the pngzop branch of the "pmt" tree.
Code for supporting the "zopfli" compression method
in PNG files will appear here.
Eventually this collection of scripts might be incorporated
into pngcrush.
Copyright 2013 by Glenn Randers-Pehrson
Released under the pngcrush license (which is equivalent to the zlib
license plus UCITA disclaimers). See DISCLAIMERS and LICENSE below.
Usage:
pngzop [-b|--blacken] [-d|--directory dir] [-e|--extension ext] *.png
Input: *.png
Output (default): *_pngzop.png (to overwrite the input, use "-e .png")
Pngzop does the following:
1. Preprocesses the input file(s) with pngcrush -reduce
(and optionally -blacken to clean up "dirty" transparent pixels)
2. Uses pngcrush to write 6 test files, with 5 PNG filters and adaptive
filtering.
3. Extracts the IDAT contents from each of the 6 files.
4. Recompresses the IDAT contents with zopfli (25 iterations).
5. Reassembles the PNG file using the smallest of the zopfli-compressed
results.
6. Postprocesses the PNG file with "pngfix" to optimize the windowBits
field, to minimize memory use during later decompression.
Pngzop requires zopfli, pngcrush (version 1.7.65 or later), zpipe (from
the "examples" directory of the zlib-1.2.7 or later distribution),
pngfix (from the libpng-1.6.3 or later distribution), and "mkdir -p",
along with these programs that should have been installed from their "C"
sources along with this "pngzop" script:
pngzop_get_ihdr.exe
pngzop_get_idat.exe
pngzop_get_iend.exe
pngzop_zlib_to_idat.exe
DISCLAIMERS:
The pngzop software is supplied "AS IS". The Author disclaims all
warranties, expressed or implied, including, without limitation, the
warranties of merchantability and of fitness for any purpose. The
Author assumes no liability for direct, indirect, incidental, special,
exemplary, or consequential damages, which may result from the use of
the pngzop software, even if advised of the possibility of such damage.
There is no warranty against interference with your enjoyment of the
computer software or against infringement. There is no warranty that
the Author's efforts or the computer software will fulfill any of your
particular purposes or needs. This computer software is provided with
all faults, and the entire risk of satisfactory quality, performance,
accuracy, and effort is with the user.
LICENSE:
Permission is hereby irrevocably granted to everyone to use, copy,
modify, and distribute this source code, or portions hereof, or
executable programs compiled from it, for any purpose, without payment
of any fee, subject to the following restrictions:
1. The origin of this source code must not be misrepresented.
2. Altered versions must be plainly marked as such and must not be
misrepresented as being the original source.
3. This Copyright notice, disclaimer, and license may not be removed
or altered from any source or altered source distribution.
*/