## OptiPNG - The complete list of features

The main purpose of OptiPNG is to optimize PNG files, i.e. to reduce their size to a minimum, without losing any information. In order to achieve this goal, OptiPNG performs the following tasks:

- It losslessly reduces the bit depth, the color type and the color palette of the image. This step reduces the size of the uncompressed image, which, indirectly, reduces the size of the compressed image (i.e. the size of the PNG file).
- It runs a suite of compression methods and strategies and selects the parameters that yield the smallest output file.
- It concatenates all the IDAT data in a single chunk, minimizing the overhead incurred by chunk headers and CRCs.

In addition, OptiPNG has the following capabilities:

- It offers a suite of optimization level presets. Given the number of trials that the user is willing to run, these presets will select the range of compression parameters that are most likely to yield the smallest output.
- It offers a high degree of freedom to advanced users who can choose among many kinds of compression parameters. The optimization level presets and the custom compression parameters may be used in any combination.
- It allows advanced users to disable certain image reductions.
- It corrects integrity errors found in the input files. Bad CRCs, invalid data in ancillary chunks, incomplete PNG files, or extraneous data in IDAT, are examples of such integrity errors.
- It recognizes several external file formats:
  - BMP
    The reading capabilities are limited to uncompressed BMP files. This is not a big problem, since few programs produce compresses BMPs. On the other hand, it is easy to uncompress a BMP file, by opening it in a BMP processing program (such as MS Paint), and re-saving it uncompressed.
  - GIF
    All static (i.e. non-animated) GIF images are supported. OptiPNG preserves the transparency information, but it does not preserve the textual comments embedded in GIFs. Animated GIFs cannot be converted to PNG. Instead, only the first frame is converted, and a warning is issued.
  - PNM (PBM, PGM, PPM)
    All these Unix-based formats are fully supported by OptiPNG. However, losslessness is only guaranteed when the maximum sample value is one of the following: 1, 3, 7, 15, 255, 65535. (This limitation applies to any PNM-to-PNG format converter, not only to OptiPNG.)