Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


PNG and MNG tools / News: Recent posts

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
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

pngcrush-1.7.62 released

A bug was introduced in libpng-1.7.61, released yesterday, that caused pngcrush to handle single-character options like "-v" incorrectly. This bug is fixed in 1.7.62.

Posted by Glenn Randers-Pehrson 2013-06-12

pngcrush-1.7.58 released

The palette-truncation wasn't always working correctly so it's no longer automatically enabled by the "-reduce" or "-new" options.

Posted by Glenn Randers-Pehrson 2013-04-10

pngcrush-1.7.56 released

pngcrush-1.7.56 has been released to fix a bug with reading sub-8-bit files when built with the system libpng (the "-nolib" distribution). There was no problem when previous versions were built with the bundled libpng and zlib.

Posted by Glenn Randers-Pehrson 2013-04-04

pngcrush-1.7.54 released

pngcrush-1.7.54 is built with libpng-1.6.1rc01 and zlib-; nothing within pngcrush itself was changed.

Posted by Glenn Randers-Pehrson 2013-03-25

pngcrush-1.7.52 released

pngcrush-1.7.52 fixes some initialization problems that were introduced in versions 1.7.50 and 1.7.51. The new "-reduce" options appears to be working properly now.
This version is built with libpng-1.6.1beta06 and zlib-1.2.7.

Posted by Glenn Randers-Pehrson 2013-03-05

pngcrush-1.7.47 released

pngcrush-1.7.47 has been released. This fixes a bug in versions 1.7.45 and 46 that caused them to fail to write an output file.

Posted by Glenn Randers-Pehrson 2013-02-02

pngcrush-1.7.41 released

pngcrush-1.7.41 has been released. It fixes a bug, introduced in version 1.7.39, which causes pngcrush to fail to open an output file.

Posted by Glenn Randers-Pehrson 2012-10-24

pngcrush-1.7.12 released

pngcrush-1.7.12 is built with libpng-1.4.4beta05 and zlib-1.2.5

Posted by Glenn Randers-Pehrson 2010-08-06

pngcrush-1.7.11 released

pngcrush-1.7.11 is built with libpng-1.4.2 and zlib-1.2.5

Posted by Glenn Randers-Pehrson 2010-05-11

pngcrush-1.7.3 released

The contents of text chunks following IDAT are now displayed when the "-n" option is used. Previously they were only shown when a crushed output file was written.

Posted by Glenn Randers-Pehrson 2009-10-09

pngcrush-1.7.2 released

This version is built with libpng-1.2.40. Some additional checks for "version" have been added, to make the "-s" option a little more silent.

Posted by Glenn Randers-Pehrson 2009-09-11

pngcrush-1.7.1 released

The bundled libpng files are updated to version 1.2.39.

Posted by Glenn Randers-Pehrson 2009-08-19