Current File : //usr/share/doc/optipng/history.txt |
OptiPNG - Revision history
==========================
Legend
------
++ Added or improved performance-related feature
(might improve compression ratio or processing speed).
+ Added or improved feature.
- Removed feature.
! Fixed bug.
!! Fixed critical bug
(crash, data/metadata loss or security hazard).
* Other modification (e.g. architectural improvement).
Version 0.7.7 2017-dec-27
-------------
* Upgraded libpng to version 1.6.34.
* Upgraded zlib to version 1.2.11-optipng.
* Upgraded minitiff to version 0.2.
!! Fixed a buffer overflow vulnerability in the GIF decoder.
[Reported by Joonun Jang]
!! Fixed an integer overflow vulnerability in the TIFF decoder.
[Reported by Jaeseung Choi]
! Fixed the build on macOS High Sierra.
[Reported by various users]
[Fixed by Yuen Ho Wong and Friedrich Preuss]
! Fixed the build on DJGPP.
* Disallowed out-of-bounds values in rangeset options.
Version 0.7.6 2016-apr-03 [Released by Ramona C. Truta]
-------------
* Upgraded libpng to version 1.6.21.
! Fixed an assertion failure in the image reduction code.
[Fixed by upgrading libpng]
!! Fixed various security-sensitive defects in the BMP decoder.
[Reported by Henri Salo and Hans Jerry Illikainen]
[Fixed by Ramona C. Truta]
! Fixed a benign uninitialized memory read in the GIF decoder.
[Reported by Gustavo Grieco]
! Fixed a build failure occurring under the Estonian (et_EE) locale.
[Reported by Sebastian Pipping]
[Fixed by Priit Laes]
! Fixed a build failure occurring on Mac OS X, FreeBSD, and possibly
other systems that lack POSIX-compliant high-resolution timestamps.
[Reported by Ryan Schmidt and Dmitry Egorov]
[Contributed by Sebastian Pipping]
! Fixed a typo causing build failures in 32-bit ANSI C compilation.
[Reported by various users]
Version 0.7.5 2014-mar-24
-------------
* Upgraded libpng to version 1.6.10-optipng.
* Upgraded zlib to version 1.2.8-optipng.
! Fixed various build issues with libpng-1.5 and libpng-1.6.
[Fixed by Oliver Schneider]
* Allowed the handling of huge image files (> millions of pixels
per row or column) to be independent of the libpng version.
+ Allowed the option -preserve to save the file ownership (UID/GID)
on Unix.
[Requested by Otto Kekäläinen]
! Fixed a build issue with Clang.
+ Added various enhancements to the configure script.
Version 0.7.4 2012-oct-21
-------------
!! Fixed the previous fix, which failed to fix the option -fix.
[Reported by Gynvael Coldwind and Mateusz Jurczyk]
Version 0.7.3 2012-sep-16
-------------
!! Fixed a use-after-free vulnerability in the palette reduction code.
This vulnerability was accidentally introduced in version 0.7.
Version 0.7.2 2012-aug-24
-------------
* Upgraded libpng to version 1.4.12.
* Upgraded zlib to version 1.2.7-optipng.
! Fixed the display of huge (4GB+) file/IDAT sizes on 32-bit platforms.
! Issued a proper error message if the output IDAT can't fit in 2GB.
Acknowledged this limitation in the user manual.
[Reported by John Sauter]
! Fixed the output file cleanup that should occur after a write error.
* Added the option -debug and various undocumented debug features.
* Moved the PNG reduction module (opngreduc) to a separate sub-project.
Version 0.7.1 2012-mar-19 [Released by Ramona C. Truta]
-------------
!! Fixed a regression in the reduction of palette-encoded grayscale
images. (This regression was introduced in version 0.7.)
[Fixed by Adam Ciarcinski]
Version 0.7 2012-feb-29 [Released by Cosmin & Ramona C. Truta]
-----------
* Upgraded libpng to version 1.4.9.
* Upgraded zlib to version 1.2.6-optipng.
!! Fixed a rarely-occurring out-of-bounds memory access error in
the Z_RLE strategy in zlib.
[Reported by Christopher Wichura]
[Fixed by upgrading zlib]
+ Added the popularly-requested option -strip.
The only suboption currently supported is "-strip all".
+ Added the option -clobber.
[Contributed by Maciej Pilichowski]
+ Added the option -backup, as an alias of -keep.
[Contributed by Ramona C. Truta]
+ Added the option -silent, as an alias of -quiet.
[Contributed by Ramona C. Truta]
- Deprecated the option -log.
[Contributed by Ramona C. Truta]
* Changed the activity display output from STDOUT to STDERR.
+ Allowed the option -preserve to save high-resolution timestamps
on Unix, if the POSIX-1.2008 API is available.
(This feature was previously available on Windows only.)
! Fixed a minor precision error in the display of file size percents.
! Fixed a memory leak that occurred when reading broken GIF images.
! Fixed various build issues.
[Fixed by Sebastian Pipping and Ville Skyttä]
* Resolved all remaining compatibility issues with libpng-1.5.
[Contributed by Adam Ciarcinski]
* Added build support for clang.
* Reorganized the source directory structure.
Version 0.6.5 2011-jan-24
-------------
* Upgraded libpng to version 1.4.5-optipng.
* Upgraded zlib to version 1.2.5-optipng.
!! Fixed the I/O states (in libpng 1.4.5);
they caused incorrect file reads in some rare cases.
[Reported by Dmitry Marakasov]
!! Fixed processing of PNG files with chunks of size 0.
[Reported by Matthew Fearnley]
! Fixed a display error in the TIFF import.
[Fixed by Piotr Bandurski]
+ Improved checking of the arguments of -f, -zc, -zm and -zs.
- Removed quirks from the rangeset option argument syntax.
! Fixed a build issue under the system-supplied libpng-1.4.
[Fixed by Petr Gajdos]
* Resolved forward-compatibility issues regarding libpng-1.5;
however, the system-supplied libpng-1.5 is not yet supported.
* Added various enhancements to the configure+make build system.
[Contributed by Elias Pipping and Dmitri Zubko]
Version 0.6.4 2010-mar-14
-------------
* Upgraded libpng to version 1.4.1-optipng.
* Upgraded zlib to version 1.2.4-optipng.
+ Added the option -nx.
* Clarified the behavior of the option -nz and the relationship between
the options -nz and -o0.
+ Added a filesystem check (resolving normalized paths, symlinks, etc.)
to better detect when the output overwrites the input.
+ Enabled automatic wildcard expansion (i.e. globbing) on Win64.
! Fixed a Unicode build issue on Windows.
[Fixed by Fabien Barbier]
Version 0.6.3 2009-may-18
-------------
* Upgraded libpng to version 1.2.36-optipng.
!! Fixed a use-after-free error in the GIF reader.
[Reported by Roy Tam]
[Fixed by Bryan McQuade]
! Flushed the output log to display the current trial in real time.
This only worked on Windows in the previous version.
[Fixed by Vincent Lefèvre]
! Fixed an error in reporting unrecognized file formats.
- Removed the requirement to "fix" TIFF files that contain unrecognized
metadata.
[Requested by Piotr Bandurski]
* Simplified the option abbreviation rules. Option names can now be
abbreviated to their shortest unique prefix, as in X11 applications.
Version 0.6.2 2008-nov-09
-------------
* Upgraded libpng to version 1.2.33-optipng.
++ Put back a speed optimization, accidentally removed in version 0.6,
allowing singleton trials (-o1) to be bypassed in certain conditions.
!! Fixed an array overflow in the BMP reader.
!! Fixed the loss of private chunks under the option -snip.
+ Produced a more concise on-screen output in the non-verbose mode.
[Contributed by Vincent Lefèvre]
* Added a programming interface to the optimization engine, in order
to facilitate the development of PNG-optimizing GUI apps and plugins.
Version 0.6.1 2008-jul-20
-------------
* Upgraded cexcept to version 2.0.1.
+ Added a configure script, to be used instead of unix-secure.mak.
! Fixed a build issue that occurred when using libpng from the system.
[Reported by Nelson A. de Oliveira]
! Fixed the processing when the image reduction yields an output larger
than the original.
[Reported by Michael Krishtopa]
! Fixed the behavior of the option -preserve.
[Reported by Bill Koch]
- Removed displaying of partial progress when abandoning IDATs under
the option -v. (The percentages displayed were not very accurate.)
Version 0.6 2008-jun-15
-----------
* Upgraded libpng to version 1.2.29-optipng.
++ Implemented grayscale(alpha)-to-palette reductions.
++ Improved conversion of bKGD info during RGB-to-palette reductions.
[Contributed by Matthew Fearnley]
!! Fixed conversion of bKGD and tRNS during 16-to-8-bit reductions.
[Reported by Matthew Fearnley]
+ Added support for compressed BMP (incl. PNG-compressed BMP, you bet!)
+ Improved the speed of reading raw PNM files.
+ Recognized PNG digital signatures (dSIG) and disabled optimization
in their presence, to preserve their integrity.
+ Allowed the user to enforce the optimization of dSIG'ed files.
+ Recognized APNG animation files and disabled reductions to preserve
their integrity.
+ Added the option -snip, to allow the user to snip one image out of
a multi-image file, such as animated GIF, multi-page TIFF, or APNG.
+ Improved recovery of PNG files with incomplete IDAT.
!! Fixed a crash triggered by the use of -log on some platforms.
[Fixed by Stefan Brüns]
! Fixed the behavior of the options -out and -dir when the input is
already optimized.
[Reported by Christian Davideck]
* Provided more detailed image information at the start of processing.
* Provided a more detailed summary at the end of processing, under the
presence of the option -v and/or the occurrence of exceptional events.
Version 0.5.5 2007-jan-28
-------------
* Upgraded libpng to version 1.2.15-optipng.
++ Used a previously-missed RGB-to-palette reduction opportunity
for images containing 256 distinct colors.
[Reported by Joachim Kluge]
!! Fixed conversion of bKGD info during RGB-to-palette reductions.
[Reported by Matthew Fearnley]
! Fixed pre-computation of iterations.
[Reported by Matthew Fearnley]
! Eliminated a false alarm when processing RGB images with tRNS
in Unix-secure mode.
[Reported by Till Maas]
[Fixed by Nelson A. de Oliveira]
! Fixed the behavior of the options -out and -dir when changing
interlacing.
[Reported by Martin Packman]
! Fixed the behavior of "-dir [DRIVE]:" on Windows.
Version 0.5.4 2006-aug-11
-------------
+ Added the options -out and -dir, to specify the name of the
output file or directory.
[Requested by Alexander Lucas]
* Added support for builds based on the system-supplied libpng.
[Contributed by Nelson A. de Oliveira]
Version 0.5.3 2006-jul-23
-------------
* Upgraded libpng to version 1.2.12-optipng.
+ Implemented basic support for TIFF (grayscale, RGB and RGBA,
uncompressed).
++ Avoided the redundant trial when the search space is singular
(e.g. when running "optipng -o1 example.tif").
+ Prevented accidental file corruption when using the option -log.
! Fixed (again) a small typo in the online help.
Version 0.5.2 2006-may-07
-------------
+ Improved handling of inexact PNM-to-PNG conversions.
! Fixed a typo that was breaking the build on some Unix platforms.
[Reported by Aaron Reitz]
Version 0.5.1 2006-apr-30
-------------
++ Implemented bit depth reduction for palette images.
* Upgraded libpng to version 1.2.10-optipng.
+ Improved the BMP support.
+ Added a Unix man page.
[Contributed by Nelson A. de Oliveira]
+ Allowed abbreviation of command-line options.
+ Changed the option -log to accept a file name as an argument.
* Renamed the option -no to -simulate.
! Fixed an error in handling .bak files on Unix.
[Reported by Adam Szojda and Nelson A. de Oliveira]
! Fixed a small typo in the help screen.
[Reported by A. Costa and Nelson A. de Oliveira]
Version 0.5 2006-jan-14
-----------
++ Added pngxtern, a libpng add-on for external image format
support: BMP (uncompressed), GIF, PNM.
++ Implemented RGB(A)-to-palette reductions.
* Upgraded zlib to version 1.2.3-optipng.
* Upgraded libpng to version 1.2.8-optipng.
+ If trials are ended prematurely, detailed progression is only
reported under the option -v.
- Removed reporting of some IDAT sizes that exceeded the optimum.
(This was NOT a bug, but a "feature" that confused some users.)
! Fixed an RGB-to-gray reduction problem that occurred under some
specific background colors.
* Added support for builds based on the system-supplied zlib.
[Requested by Nelson A. de Oliveira]
* Modified LICENSE. It is now a verbatim spell of the zlib license.
Version 0.4.8 2005-may-10
-------------
* Upgraded libpng to version 1.0.18-optipng.
!! Fixed a palette-to-gray reduction problem that occurred when an
RGB triple had both an alpha below max, and an alpha equal to max.
[Reported by Nicolas Le Gland]
+ Packed the Windows executable using UPX.
Version 0.4.7 2004-oct-30
-------------
!! Fixed a palette-to-gray reduction problem that occurred when
having more than one alpha value per RGB triple.
[Reported by Larry Hastings]
! Fixed the progress display, when processing very large images.
+ Displayed the image info at the beginning of processing.
++ Reduced the IDAT buffer size, allowing abandoned trials to
terminate earlier in some circumstances.
+ Implemented error recovery, when PLTE is too small, and/or
tRNS is too large.
Version 0.4.6 2004-oct-25
-------------
* Upgraded zlib to version 1.2.2-optipng.
* Upgraded libpng to version 1.0.17-optipng.
This provides safe handling of some ill-formed PNG images.
+ Rewrote makefiles.
+ Added project workspace to build under Visual C++ 6.0,
integrated with memory leak detection.
++ Implemented a premature termination of trials, in the moment
when IDAT grows beyond the smallest size previously achieved.
[Requested by Larry Hastings]
+ Changed the order of trials, to perform the trials that are
more likely to yield a smaller IDAT, at the beginning.
+ Added the option -full to avoid the premature termination of
trials; useful for debugging.
Version 0.4.5 2004-may-31
-------------
* Upgraded zlib to version 1.2.1.f-cos2.
* Upgraded libpng to version 1.0.15-cos2.
* Renamed the option -nx to -nz.
+ Added the option -preserve to preserve file attributes
(file mode, time stamp, etc.) where applicable.
[Requested by Nehal Mistry]
! Fixed an incorrect initialization of zlib window bits.
! Displayed an error message when the search space was invalid.
!! Fixed a palette reduction problem for bit depths below 8.
! Eliminated memory leaks.
[Contributed by Niels de Koning]
Version 0.4.4 2003-nov-20
-------------
* Upgraded zlib to version 1.2.1.
++ Added support for the Z_RLE strategy.
Version 0.4.3 2003-aug-12
-------------
! Fixed a reduction problem that caused an assertion failure.
[Reported by Dimitri Papadopoulos]
Version 0.4.2 2003-jun-30
-------------
++ Enhanced the support for palette size reductions:
trailing sterile palette entries are removed even when
the bit depth is below 8.
! Enforced recompression when the new IDAT has the same size,
but other chunks have been reduced.
+ Displayed the IDAT size difference as a percentage.
[Requested by Nehal Mistry]
Version 0.4.1 2003-may-19
-------------
! Fixed the removal of trailing sterile palette entries.
Version 0.4 2003-may-12
-----------
++ Added support for palette-to-gray reductions.
++ Added partial support for palette size reductions.
! Fixed the reporting of invalid command-line options.
! Eliminated a spurious warning when the zlib window size
is set to 256.
Version 0.3.2 2003-mar-11
-------------
+ Added support for updating sBIT during reductions.
! Fixed the reduction of the alpha channel.
Version 0.3.1 2003-feb-25
-------------
! Fixed the encoding of interlaced images when they become
larger than the input.
[Reported by James H. Cloos, Jr.]
+ Added the HISTORY document (this file).
Version 0.3 2003-feb-24
-----------
* Announced the first public release of OptiPNG.
++ Added support for iterating through zlib memory levels.
++ Added support for collapsing IDAT, avoiding calls to
png_set_compression_buffer_size().
This reduces the memory requirements.
++ Added support for lossless reduction of the image type:
RGB[A] -> G[A], RGBA -> RGB, GA -> G
+ Added many user options.
+ Added documentation.
Version 0.2 2001-dec-27
-----------
+ Added support for optimization level presets.
+ Added a user option for changing the interlacing.
Version 0.1 2001-dec-17
-----------
+ Added support for chunk I/O status annotation.
This improves the speed of OptiPNG significantly.
* Added structured exception handling via cexcept.
Version 0.0.1 2001-dec-10
-------------
* Introduced OptiPNG.
++ Compressed PNG IDAT data repeatedly, iterating through zlib
compression and strategy levels, as well as PNG delta filters.