passes image in chain–OptiPNG first, PNGOUT last–which produces best results.
4.40 MB 4.04 MB
It took a while to run, but we get a further 9% reduction in PNG image size beyond what OptiPNG could do.
Though that article is dated, I've encountered similar results in my own usage during the last month: running an image through OptiPNG after having already optimized it with PNGOUT resulted in an increase in file size. This shouldn't happen, and I may have been mistaken, but if I can reproduce this later, I'll file a bug report to OptiPNG.
I did a test, however, to find a case when the opposite of the above is true, using http://s.wordpress.org/style/images/wp-header-logo.png:
6 894 bytes: initial size
6 894 bytes: after optipng only
4 130 bytes: after optipng and then pngout
4 130 bytes: after pngout only
3 983 bytes: after pngout and then optipng
916 bytes: initial size
628 bytes: after optipng only
540 bytes: after optipng and then pngout
547 bytes: after pngout only (worse than when optipng was used first)
517 bytes: after pngout and then optipng
On a random screenshot the results were not much different: PNGOUT provided better compression than OptiPNG, but using both in either order produced the same size of file as using PNGOUT only.
Based on this sample, although very inconclusive, I'd say that if the two plugins should be in a fixed order, PNGOUT should come first. Both programs were run with maximum compression settings, optipng with arguments -o7 -zm1-9 and PNGOUT as an IrfanView plugin.
Suggested changes for the plugin in summary:
- Add support for PNGOUT
- By default, have PNGOUT run first and OptiPNG after
- Add a checkbox to quickly enable/disable each optimization (jpegtran, pngout, optipng, gifsicle)