Version 1.8.12 (built with libpng-1.6.31 and zlib-1.2.11)
Changed default verbosity from 1 (normal) to 0 (quiet). Use "-v" to get
the previous default behavior and "-v -v" to get the previous "verbose"
behavior. The "-s" (silent) and "-q" (quiet) options behave as before.
Added POWERPC-VSX support.
Report whether using optimizations, when operating verbosely.
Added filter_method 6 (same as filter 5 with -speed).
Added "methods" 149-176 (that use filter_method 6).
Only issue a warning when the "build" and "runtime" libpng versions
differ in the first 4 symbols, indicating incompatible versions.
Fixed a bug with new ADLER32-skipping feature; it broke the handling of erroneous iCCP chunks.
pngcush-1.8.9 adds a "-warn" option and is built with libpng-1.6.26
Pngcrush-1.8.7 is a little faster than version 1.8.6; it skips evaluating ADLER32 checksums while reading and while writing trial compressions.
pngcrush-1.8.6 adds support for MIPS and ARM platforms. The new high-resolution timing is disabled by default but can be enabled in the Makefile.
Version 1.8.5 adds the "-bench" option
pngcrush-1.8.4 adds high resolution timing, Intel-sse2 support, and "unified libpng". It is built with libpng version 1.6.24.
pngcrush-1.8.2 avoids extra trials when the user specifies a single method, and fixes the filesize reduction report when "-ow" option is used.
pngcrush-1.8.1 adds a new "-speed" option. It causes pngcrush to avoid using the AVG and PAETH filters, which are slower to decode.
pngcrush-1.8.0, built with libpng-1.6.21, changes some of the default parameter values. The "-reduce" option and the "-force" option are now on by default. The non-functional options "-bit_depth", "-double_gamma", and "-plte_len" have been eliminated.
pngcrush-1.7.92 fixes a crash bug when the "-loco" option is used. This bug has existed since version 1.7.34 ("-loco" is an experimental feature used while writing MNG files).
The Makefiles were missing from the earlier 1.7.92 tar and zip releases; I uploaded new ones about 11:25EST 3 Jan.
pngcrush-1.7.87 fixes a double-free bug in the sPLT chunk handling
Improved reporting of invalid chunk names. Does not try to put
non-printable characters in STDERR; displays hex numbers instead.
Fixed include path for utime.h on MSVC (Louis McLaughlin).
Eliminated "FAR" memory support (it was removed from libpng at version
Disabled the "-already_crushed" option which does not really work well.
pngcrush-1.7.84 fixes more Coverity-scan defects (none are reported now), so it should be more resistant to crashes due to malformed input files, such as the one presented in CVE-2015-2158.
pngcrush version 1.7.83 fixes some Coverity-scan warnings. It was built with libpng-1.6.16.
pngcrush-1.7.81 fixes an off-by-one error in the -reduce_palette operation. The resulting PLTE chunk was one entry (3 bytes) too short.
pngcrush-1.7.80 implements the "-reduce_palette" option.
pngcrush-1.7.79 fixes some old bugs with palette truncation. Use the "-reduce_palette" option to remove any unused palette entries at the top end of the PLTE chunk.
pngcrush-1.7.77 has been released. It was built with libpng-1.6.13.
pngcrush-1.7.76 is released. It was built with libpng-1.6.12.
Fixed a bug with reducing 16-bit images to 8-bit using "-reduce" option
Restored calls to png_set_crc_action() which had been removed from
version 1.7.72 for some testing and inadvertently not restored.
Changed "fix" internal variable name to "salvage" (still set with "-fix")
Added code to fix/salvage PNG with "bad adaptive filter value" error.
Avoid calculating CRC during compression trials except for the last trial,
when the output is actually written.
pngcrush-1.7.71 is built with libpng-1.6.9. The Windows binaries are now built with TOO_FAR=32767 instead of the default 4096 which results in some files becoming slightly more compressed.
pngcrush-1.7.70 is built with libpng-1.6.8 and zlib-1.2.8. The "-bit_depth N" option has been removed because it did not always work.
pngcrush-1.7.67 fixes a bug in the textual chunk insertion, introduced around version 1.7.62.
pngcrush-1.7.66 is available. It fixes a bug in recent versions (1.7.60 through 65) that handled the "-reduce" option improperly, such that the alpha channel was stripped even when it was not opaque.