OptiPNG - TO-DO list ==================== - Compression improvements: Use zlib's deflateTune(). Use 7zip's powerful deflation engine. (This is not possible with libpng, so a custom encoder is needed.) - Speed improvements: Avoid repeated filtering when trying a filter value more than once. (This is not possible with libpng, so a custom encoder is needed.) - Text chunk optimization: Smart selection between tEXt and zTXt. Similarly for iTXt. - More file recovery features. - Input from stdin; output to stdout. - Optimization of an entire directory, with and without subdirectory recursion: optipng dir/ optipng -recurse dir/ Currently it is possible to optimize an entire directory as: optipng dir/*.png provided that file globbing works, either at the shell level (Unix) or in the program (linked with wildargs.obj on Windows). - Improved support for reading external image formats (e.g. compressed TIFF or other image formats). - Support for conversion to a desired bit depth and color type: optipng -b16 -c6 ... - Support for handling metadata, e.g.: optipng -meta set:tEXt=, # add/update chunk optipng -meta set:sRGB=0 # add/update chunk optipng -meta select:all # keep all chunks optipng -meta reject:all # delete all chunks optipng -meta select:std2003 # keep all standard chunks optipng -meta select:public # keep all public chunks optipng -meta reject:private # delete all private chunks optipng -meta reject:hIST,sPLT # delete hIST and sPLT optipng -meta select:visual # keep gAMA, cHRM, sRGB, ... optipng -meta reject:visual # delete gAMA, cHRM, sRGB, ... optipng -meta select:textual # keep tEXt, zTXt, iTXt optipng -meta reject:textual # delete tEXt, zTXt, iTXt optipng -meta reject:gif # delete gIFg, gIFt, gIFx optipng -meta load: # load chunks from file optipng -meta store: # store chunks in file - Parallelization on multi-processor/multi-core machines. - A shared library (e.g. optipng.dll), to facilitate the development of PNG-optimizing GUI applications and plugins.