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)
Changes include:
Version 1.4.8
* Detect and remove all-opaque alpha channel.
* Detect and reduce all-gray truecolor images to grayscale.
Version 1.4.7
* Restored the "-ext" option that was inadvertently overridden
with a new "-exit" option in version 1.4.6 ("-exit" is used to
force an "exit" instead of a "return" from the main program).
Version 1.4.6
* Fixed bug in color-counting of noninterlaced images.
* Added capability of processing multiple rows at a time
(disabled by default because it turns out to be no faster).
* Replaced "return" statements in main() with "exit" statements.
User can force exit instead of return with "-exit" argument.
* Added the UCITA disclaimers to the help output.
Changes are:
* Added color-counting and palette-building capability
* Added "-fix" option, for fixing bad CRC's and other correctable
conditions.
* Write sBIT.alpha=1 when adding an opaque alpha channel and sBIT is
present.
* Identify the erroneous 2615-byte sRGB monitor profile being written by
Photoshop 5.5, which causes many apps to crash, and replace it
with an sRGB chunk.
* Added a check for input and output on different devices before
rejecting the output file as being the same as the input file
based on inode.
* Added some UCITA language to the disclaimer.
* Reduced scope of Try/Catch blocks to avoid nesting them, and removed
returns from within the Try blocks, where they are not allowed.
* Removed direct access to the png structure when possible
* Removes extra IDAT chunks (such as found in some POV-ray PNGs) with a
warning instead of bailing out.
* Removed the old setjmp interface entirely.
* RGB to Grayscale conversion is more accurate (15-bit instead of 8-bit)
and now uses only integer arithmetic.
* Changed "Compressed" to "Uncompressed" in help for -itxt.
* Stifled some compiler warnings
* Add test on stat_buf.st_size to verify fpin==fpout, because stat in
MSVC++6.0 standard version returns stat_buf.st_ino=0 for all files
* Revised pngcrush.h to make it easier to control PNG_ZBUF_SIZE and
PNG_NO_FLOATING_POINT_SUPPORTED from a makefile.
* Restored ability to enter "replace_gamma" value as a float even when
floating point arithmetic is not enabled.
* Enabled removing tEXt, zTXt, or iTXt chunks by chunk type
* Removed definition of TOO_FAR from pngcrush.h
* Uses new libpng error handler; if a file has errors, pngcrush now will
continue on and compress the remaining files instead of bailing
out.
Version 1.3.3:
- Restored ability to enter gamma as a float even when floating point
arithmetic is not enabled.
Version 1.3.2:
- Fixed "PNG_NO_FLOAING_POINT" typo in pngcrush.h
- Renamed "dirname" to "directory_name" to avoid conflict with "dirname"
that appears in string.h on some platforms.
- #ifdef'ed out parts of the help screen for options that are unsupported.