* Defined TOO_FAR == 32767 in deflate.c (again). The definition
has continually been inadvertently omitted during zlib updates
since pngcrush version 1.6.4.
* Revised handling of xcode files so at least we can get printout
of IHDR values with "pngcrush -fix -n -v xcode.png"
Changes 1.6.16:
* Added -newtimestamp and -oldtimestamp options and changed
default condition to timestamping the output file with
the current time (i.e., -newtimestamp is default)
* If the -oldtimestamp option is used then the output file
has the same timestamp as the input file.
* Added CgBI chunk detection.
Changes 1.6.15:
* Fixes some missing typecasts on png_malloc() calls, patch from
an anonymous reporter to the SourceForge bug tracker.
* Added -time_stamp option to change time stamping from default
condition.
* Added "-time_stamp" directive, to cause pngcrush to write a new timestamp
on the output file instead of replicating the timestame from the input file.
Moved PNG_UINT_CHNK and some other defines from pngcrush.h to pngcrush.c
Reject invalid color_type or bit_depth.
Changes 1.6.6:
Added dSIG support. Pngcrush will not rewrite an image containing
a dSIG chunk immediately following the IHDR chunk, unless the
dSIG is explicitly removed with "-rem dSIG" or explicitly kept
with "-keep dSIG". In the latter case the saved dSIG chunks will
become invalid if any changes are made to the datastream.
Fixed bug in writing unknown chunks from the end_info_ptr.
Changes 1.6.5:
Discontinued adding a new gAMA chunk when writing sRGB chunk.
Version 1.6.3 (built with libpng-1.2.9beta11 and zlib-1.2.3)
Fixed documentation of iTXt input (Shlomi Tal).
Removed #define PNG_INTERNAL and provided prototypes for some
internal libpng functions that are duplicated in pngcrush.c
* Fixed bug with "PNG_ROWBYTES" usage, introduced in version 1.6.1.
The bug could cause a crash and only affects the "nolib" builds.
* Converted C++ style (// ...) comments to C style (/* ... */).
* Defined TOO_FAR == 32767 in deflate.c (again). The definition was omitted
from version 1.6.0 when zlib was upgraded to version 1.2.3.
Changes 1.6.1:
* Copied non-exported libpng functions from libpng into pngcrush, to make
pngcrush play more nicely with shared libpng. These are ifdef'ed out when
a static library is being built with the bundled libpng and pngcrush.h is
included.
Changes 1.6.0:
* Moved ChangeLog out of pngcrush.c comments and into a separate file.
* Filtered pngcrush.c through "indent -kr" and "expand" for readability.
* Moved 550 lines of usage/help/copyright/license/version info to separate
function(s) and cleaned up significantly.
* Added some comments for ease of navigation and readability.
* Stripped out a bunch of ancient-libpng compatibility stuff.
* Defined PNG_UINT_* macros (pngcrush.h for now).
* Fixed unknown-chunk handling ("-rem alla" and "-rem gifx" now work).
* Created modified version of makefile that supports external zlib.
* Added support for methods using Z_RLE zlib strategy (zlib 1.2.x only).
* Documented -huffman option in usage screen.
* Added IDAT statistics to final per-file summary.
* Added utime() support to give output files same timestamps as input files.
* Fixed bug, introduced in 1.5.9, that caused defaults for method 0 to be
used instead of copying the original image, when the original was already
smallest.
* Work around CPU timer wraparound at 2G microseconds.
* Upgraded zlib from 1.1.3 to 1.1.4. Pngcrush is believed not to be
vulnerable to the zlib-1.1.3 buffer-overflow bug.
* Choose the first instance of smallest IDAT instead of the last, for
faster final recompression, suggested by TSamuel.
* Added -trns_a option for entering a tRNS array.
* Version 1.5.7 (built with libpng-1.2.0)
* Added setargv.obj to Makefile.msc to expand wildcards, e.g., *.png
* Use constant string "pngcrush" instead of argv[0] when appropriate.
* Only check stats for infile==outfile once per input file, or not at
all if "-nofilecheck" option is present or if a directory was
created.
* Fixed bugs with changing bit_depth of grayscale images.
* Version 1.5.6 (built with libpng-1.0.12)
* Eliminated extra "Removed the cHNK chunk" messages generated by
version 1.5.5 when "-rem alla" or "-rem allb" is used.
* All unknown chunks including safe-to-copy chunks are now removed in
response to the "-rem alla" or "-rem allb" options.
* Issue a warning if the user tries "-cc" option when it is not
supported.
Reset reduce_to_gray and it_is_opaque flags prior to processing each image.
Enable removal of safe-to-copy chunks that are being handled as unknown
Added 262 to the length of uncompressed data when calculating
required_window_size, to account for zlib/deflate implementation.
Added "-bit_depth n" to the help screen.
Call png_set_packing() when increasing bit_depth to 2 or 4.
Added warning about not overwriting an existing tRNS chunk.
Reduced the memory usage
Write 500K IDAT chunks even when system libpng is being used.
Ignore all-zero gAMA and cHRM chunks, with a warning.
Added "-loco" option (writes MNG files with filter_method 64)
"-dir" and "-ext" options are no longer mutually exclusive, e.g.:
pngcrush -loco -dir Crushed -ext .mng *.png
Added "-iccp" option
Increased the zlib memory level to 9, which improves compression
Enabled the "-max max_idat_size" option, even when max_idat_size
exceeds the default 1/2 megabyte size.
Added missing "png_ptr" argument to png_error() call
Revised the "-help" output slightly and improved the "-version" output.
The "-already[_crushed]" option is now ignored if the "-force" option
is present or if chunks are being added, deleted, or modified.
Improved "things_have_changed" behavior (now, when set in a particular file, it is not set for all remaining files)