* Force bit_depth to 1, 2, or 4 when -plte_len is <=2, <=4, or <=16 and
the -bit_depth option is not present, to avoid writing invalid palette
indexes.
* Built with libpng-1.5.1beta06 and zlib-1.2.5
* Removed WIN32_WCE support (libpng has dropped it already)
* Include zlib.h and define png_memcpy, etc., and revise the
png_get_iCCP() and png_set_iCCP() calls to be able to build
with bundled libpng-1.5.x. Pngcrush cannot be built yet with
a system libpng-1.5.x.
* Added missing "(...)" in png_get_uint_32().
* Only compile png_get_uint_32(), etc., when PNG_LIBPNG_VER < 1.2.9
* Revised help info for "-zitxt".
Changes 1.7.9:
* Defined TOO_FAR == 32767 in pngcrush.h (instead of in deflate.c)
* Revised the "nolib" Makefiles to remove reference to gzio.c and pnggccrd.c
Changes 1.7.8:
* Removed gzio.c
Changes 1.7.7:
* Updated bundled libpng to version 1.4.0.
* Check the "-plte_len n" option for out-of-range value of n.
* Changed local variable "write" to "z_write" in inffast.c (zlib-1.2.3.4)
to avoid shadowed declaration warning.
Changes 1.7.6:
* Change some "if defined(X)" to "ifdef X" according to libpng coding style.
* Added some defines to suppress pedantic warnings from libpng-1.2.41beta15
and later. A warning about deprecated access to png_ptr->zstream is
otherwise unavoidable. When building the embedded libpng, a warning
about png_default_error() returning is also otherwise unavoidable.
* Write premultiplied alpha if output extension is .ppng and
PNG_READ_PREMULTIPLIED_ALPHA_SUPPORTED is set (needs libpng-1.5.0).
* Check the "-m method" option for out-of-range method value.
Changes 1.7.4:
* Use unmodified pngconf.h from libpng-1.2.41beta05 or later.
* Revised some prototypes to eliminate "Shadowed Declaration" warnings.
* Moved warning about discarding APNG chunks to the end.
* Replaced *.tar.lzma with *.tar.xz in the distribution.
* Save (but do not recompress) APNG chunks if the output file has the
".apng" extension and the color_type and bit_depth are not changed.
Changes 1.6.20:
* Changed local variable "write" to "wwrite" in inffast.c (zlib) to avoid
shadowed declaration warning.
* 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.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
* 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)