version 3.0 ----------- - replaced C libimagequant library with a Rust imagequant crate - switched build system from make to Cargo version 2.17 ------------ - fixed Unicode filenames on Windows - builds for ARM - small quality improvements version 2.16 ------------ - reduced stack usage, prevenitng stack overlfow in pathological cases version 2.13-2.15 ------------ - speed and quality improvements version 2.12 ------------ - improved speed on large images - OpenMP fixes/workarounds version 2.11 ------------ - fixed wildcard support on Windows - fixed argument parsing on Windows version 2.10 ------------ - supports building with Rust/Cargo - supports dynamic linking with system-wide libimagequant version 2.9 ----------- - added support for `-o -` - windows/JNI build fixes version 2.8 ----------- - libimagequant is a separate project - --strip option to disable copying of PNG metadata version 2.7 ----------- - improved dithering of saturated and semitransparent colors - fixed order of log output when using openmp - improved quality sanity check in --skip-if-larger option - disabled palette post-processing on colors from --map option to preserve them exactly version 2.6 ----------- - when source image has no color profile information, the output won't have either version 2.5 ----------- - replaced color search algorithm with vantage point tree, which is much faster and more reliable - deprecated IE6 workaround - warn when compiled without color profile support - Rust API for libimagequant version 2.4 ----------- - fixed remapping of bright colors when dithering version 2.3 ----------- - added ./configure script for better support of Intel C compiler and dependencies [thanks to pdknsk] - tweaked quality metric to better estimate quality of images with large solid backgrounds [thanks to Rolf Timmermans] - atomic file saves and fixed --skip-if-larger - avoid applying quality setting to images that use palette already - preserving standard PNG chunks (requires libpng 1.6) - deprecated libpng 1.2 support version 2.2 ----------- - preserving of unknown PNG chunks (enables optimized Android 9-patch images) - improved color profile support: cHRM & gAMA as alternative to ICC profiles, OpenMP acceleration - improved support for Intel C Compiler, speedup in 32-bit GCC, and some workarounds for Visual Studio's incomplete C support version 2.1 ----------- - option to save files only if they're compressed better than the original - option to generate posterized output (for use with 16-bit textures) - support for ICC profiles via Little CMS library version 2.0 ----------- - refactored codebase into pngquant and standalone libimagequant - reduced memory usage by further 30% (and more for very large images) - less precise remapping improving speed by 25% in higher speed settings - --output option for writing converted file under the given path - light dithering with --floyd=0.5 - fixed regression in dithering of alpha channel version 1.8 ----------- - min/max quality option (number of colors is automatically adjusted for desired quality level) - switched option parsing to getopt_long (syntax such as -s1 and --ext=ext is supported) - significantly improved performance thanks to custom partial sorting - optional Cocoa (Mac OS X) image reader for color profile support - reduced memory usage by 20% - remapping improved for very low number of colors version 1.7 ----------- - new, accurate RGBA color similarity algorithm - change of optional SSE3 code to SSE2 that is always enabled on x86-64 - optional OpenMP-based parallelisation of remapping - changed long options to use double hyphen (-force to --force) [thanks to Jari Aalto] version 1.6 ----------- - novel dithering algorithm that doesn't add noise unless necessary - perceptual weighting of colors taking into account edges and noise - much faster remapping - improved portability, makefiles and man page version 1.5 ----------- - palettes postprocessed with Voronoi iteration - better RGBA color similarity algorithm and Floyd-Steinberg remapping - SSE optimisations version 1.4 ----------- - median cut is applied many times in a feedback loop - speed/quality trade-off option - faster remap of transparent areas version 1.3 ----------- - significant changes to the algorithm: use of variance to find largest dimensioin and to split most varying boxes - use of premultiplied alpha for color blending - conversion of output to gamma 2.2 version 1.2 ----------- - color computation done in floating point - gamma correction applied - dropped support for very old systems & compilers version 1.1 ----------- - alpha-sensitive color reduction and dithering - support -- and - arguments in command line - number of colors optional (defaults to 256) - increased maximum number of colors in histogram version 1.0 ----------- - cleaned up Makefile.unx (better gcc optimizations, "clean" target) - recompiled binaries with zlib 1.1.4 version 0.95 ------------ - fixed Win32 filter bug (binary mode for stdin/stdout) - fixed cosmetic "choosing colors" verbosity buglet - fixed palette-size bug when number of colors in image < number requested - fixed sample-depth bug (png_set_packing() not retroactively smart) version 0.91 ------------ - fixed some verbose/non-verbose oopers - fixed Win32 (MSVC) portability issues (getpid(), random(), srandom()) - added Makefile.w32 for MSVC (tested with 5.0) version 0.90 ------------ - added support for multiple files on command line - changed stdin support to write PNG stream to stdout (not "stdin-fs8.png") version 0.75 ------------ - added support for any type of input file [Glenn Randers-Pehrson] - fixed palette-(re)scaling bug - added -verbose and -quiet options (default now is -quiet) - added palette-remapping to minimize size of tRNS chunk - made Floyd-Steinberg dithering default - changed output naming scheme to -fs8.png and -or8.png (FS or ordered dither) version 0.70 ------------ - first public release