PNG and MNG tools / News: Recent posts

pngcrush-1.8.12 released

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.

Posted by Glenn Randers-Pehrson 2017-07-30

pngcrush-1.8.10 released

Fixed a bug with new ADLER32-skipping feature; it broke the handling of erroneous iCCP chunks.

Posted by Glenn Randers-Pehrson 2016-10-28

pngcrush-1.8.9 released

pngcush-1.8.9 adds a "-warn" option and is built with libpng-1.6.26

Posted by Glenn Randers-Pehrson 2016-10-23

pngcrush-1.8.7 released

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.

Posted by Glenn Randers-Pehrson 2016-09-25

pngcrush-1.8.6 released

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.

Posted by Glenn Randers-Pehrson 2016-09-04

pngcrush-1.8.5 released

Version 1.8.5 adds the "-bench" option

Posted by Glenn Randers-Pehrson 2016-08-22

pngcrush-1.8.4 released

pngcrush-1.8.4 adds high resolution timing, Intel-sse2 support, and "unified libpng". It is built with libpng version 1.6.24.

Posted by Glenn Randers-Pehrson 2016-08-09

pngcrush-1.8.2 released

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.

Posted by Glenn Randers-Pehrson 2016-07-11

pngcrush-1.8.1 released

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.

Posted by Glenn Randers-Pehrson 2016-04-11

pngcrush-1.8.0 released

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.

Posted by Glenn Randers-Pehrson 2016-01-16 Labels: features

pngcrush-1.7.92 released twice

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.

Posted by Glenn Randers-Pehrson 2016-01-01 Labels: bugfix

pngcrush-1.7.87 released

pngcrush-1.7.87 fixes a double-free bug in the sPLT chunk handling

Posted by Glenn Randers-Pehrson 2015-10-10 Labels: security

pngcrush-1.7.85 released

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
1.6.0).
Disabled the "-already_crushed" option which does not really work well.

Posted by Glenn Randers-Pehrson 2015-03-09 Labels: cleanup

pngcrush-1.7.84 released

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.

Posted by Glenn Randers-Pehrson 2015-02-28 Labels: security

pngcrush-1.7.83 released

pngcrush version 1.7.83 fixes some Coverity-scan warnings. It was built with libpng-1.6.16.

Posted by Glenn Randers-Pehrson 2015-01-28 Labels: cleanup

pngcrush-1.7.81 released

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.

Posted by Glenn Randers-Pehrson 2014-11-22

pngcrush-1.7.80 released

pngcrush-1.7.80 implements the "-reduce_palette" option.

Posted by Glenn Randers-Pehrson 2014-11-04

pngcrush-1.7.79 released

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.

Posted by Glenn Randers-Pehrson 2014-11-02

pngcrush-1.7.77 released

pngcrush-1.7.77 has been released. It was built with libpng-1.6.13.

Posted by Glenn Randers-Pehrson 2014-08-23

pngcrush-1.7.76 released

pngcrush-1.7.76 is released. It was built with libpng-1.6.12.

Posted by Glenn Randers-Pehrson 2014-06-13

pngcrush-1.7.73 released

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.

Posted by Glenn Randers-Pehrson 2014-03-16

pngcrush-1.7.71 released

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.

Posted by Glenn Randers-Pehrson 2014-02-07

pngcrush-1.7.70 released

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.

Posted by Glenn Randers-Pehrson 2013-12-22

pngcrush-1.7.67 released

pngcrush-1.7.67 fixes a bug in the textual chunk insertion, introduced around version 1.7.62.

Posted by Glenn Randers-Pehrson 2013-08-02

pngcrush-1.7.66 released

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.

Posted by Glenn Randers-Pehrson 2013-07-17