
OptiPNG - TODO 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.

- 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 BMP; compressed TIFF; other image formats).

- Support for conversion to a desired bit depth and color type:
    optipng -b16 -c6 ...

- Support for chunk-level editing:
    optipng -add text <keyword> <file> ...	# add chunk
    optipng -upd text <keyword> <file> ...	# update (add/replace) chunk
    optipng -del time ...			# delete chunk
    optipng -del visual ...			# delete tRNS, gAMA, sRGB, ...
    optipng -del nonvisual ...			# delete all but tRNS, gAMA ...
    optipng -del textual ...			# delete tEXt, zTXt, iTXt, tIME
    optipng -del nontextual ...			# delete all but tEXt, zTXt ...
    optipng -del gif ...			# delete gIFg, gIFt, gIFx
    optipng -del private ...			# delete all private chunks
    optipng -del all ...			# delete all ancillary chunks

- Parallelization on multi-processor/multi-core systems.

- A nice GUI.

