| TODO - list of things to do for libpng: | 
 |  | 
 | Final bug fixes. | 
 | Improve API by hiding the png_struct and png_info structs. | 
 | Finish work on the no-floating-point version (including gamma compensation) | 
 | Better C++ wrapper/full C++ implementation? | 
 | Fix problem with C++ and EXTERN "C". | 
 | cHRM transformation. | 
 | Improve setjmp/longjmp usage or remove it in favor of returning error codes. | 
 | Add "grayscale->palette" transformation and "palette->grayscale" detection. | 
 | Improved dithering. | 
 | Multi-lingual error and warning message support. | 
 | Complete sRGB transformation (presently it simply uses gamma=0.45455). | 
 | Man pages for function calls. | 
 | Better documentation. | 
 | Better filter selection | 
 |    (counting huffman bits/precompression?  filter inertia?  filter costs?). | 
 | Histogram creation. | 
 | Text conversion between different code pages (Latin-1 -> Mac and DOS). | 
 | Should we always malloc 2^bit_depth PLTE/tRNS/hIST entries for safety? | 
 | Build gamma tables using fixed point (and do away with floating point entirely). | 
 | Use greater precision when changing to linear gamma for compositing against | 
 |   background and doing rgb-to-gray transformation. | 
 | Investigate pre-incremented loop counters and other loop constructions. |