Comparison of PNG optimization tools
This is a comparison of the following PNG optimizers (most of which are available from the Arch Linux official repositories):
- pngcrush-1.8.13-3 (2025-01-07)
- optipng-0.7.8-1 (2025-01-07)
- Caesium (whatever version was on the Web on 2025-01-07)
- curtail-1.11.1-3 (2025-01-07)
- optiimage-1.0.0-1 (2025-01-07)
- oxipng-9.1.3-1 (2025-01-07)
Each optimizer was run using the highest compression setting available (except for oxipng, which I ran without -Z) and using the sanest metadata stripping option available (i.e., trying to preserve color information, but removing superfluous tags).
| Simple Logo | Δ% | Manga Scan | Δ% | Twitter Homepage | Δ% | Game Screenshot | Δ% | |
|---|---|---|---|---|---|---|---|---|
| Original | 39957 | — | 879775 | — | 1308202 | — | 4396552 | — |
| pngcrush | 40767 | +2.0% | 592302 | -32.7% | 823123 | -37.1% | 3266510 | -25.7% |
| optipng | 31819 | -20.4% | 436756 | -50.4% | 790548 | -39.6% | 3119789 | -29.0% |
| Caesium | 35987 | -9.9% | 436382 | -50.4% | 770581 | -41.1% | 3281303 | -25.4% |
| Curtail | 39733 | -0.6% | 434947 | -50.6% | 942527 | -28.0% | 3684640 | -16.2% |
| OptiImage | 26381 | -34.0% | 425008 | -51.7% | 711349 | -45.6% | 3099937 | -29.5% |
| oxipng | 26381 | -34.0% | 425008 | -51.7% | 711349 | -45.6% | 3096570 | -29.6% |
Curtail (Gnome) and OptiImage (KDE) are both GUIs that seemed to call oxipng to do the heavy lifting. I can't explain the difference between their performances. In terms of UI/UX, OptiImage was vastly superior.
The pngcrush and optipng tools are the ones I'd been using for years before running these tests. The former has not been maintained in a while and the latter is quite slow and almost unconfigurable. I'll be switching to oxipng as it offers the best performance and CLI interface. Good stuff.