Current Test Updated : 07.01.2012 - Download the new PNG Test Corpus images (the zip archive contains all images displayed and tested here). Like the old version, those PNG tests are done with the following specs : Intel Core2Quad Q6600 2,40 Ghz, 2 Go RAM.
See also : PNG Tools Overview which compare tool with good settings parameters.
| Program | Version | Options used in this test |
|---|---|---|
| advdef | 1.15 | -z4 |
| cryopng | 0.6.4 | -zc9 -zm8-9 -zs0-3 -f0-5 |
| optipng | 0.6.5 | -zc9 -zm8-9 -zs0-3 -f0-5 |
| pngcrush | 1.7.15 | -brute -reduce |
| pngkt | 1.2 | - |
| pngoptimizer | 2.0 | - |
| pngout | 02.07.2011 | -s0 -k0 |
| pngrewrite | 1.4.0 | - |
| pngwolf | April 2011 | --normalize-alpha --zlib-level=1-9 --zlib-memlevel=1-9 --zlib-strategy=0-3 --7zip-mpass=2 |
| truepng | 0.3.5.4 | -zc9 -zm1-9 -zs0-3 -fe -a1 -md remove all |
| pngxoptimizer | 1.0.7.0 | - |
| pngslim | 1.0 | IMPORTANT : Updated tools, syntax correction line 58 |
| image catalyst | 2.1 | [1] Xtreme |
| scriptpng | 07.01.2012 | [5] Max |
This image contains 16 Colors. Most of softwares choose Indexed encoding (Paletted 4 bits / pixels) to store the PNG. But in this case, the 8 bits/pixels coding is better.
RESULTS : Good : 8 bits/pixels - Bad : 4 bits/pixels
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c3 /f0 /d4 /n4 | /c3 /f0 /d4 /n1 | 00:00 | 7223 Bytes | 6333 Bytes | 890 Bytes |
| OptiPNG | /c3 /f0 /d4 /n4 | /c3 /f0 /d4 /n1 | 00:00 | 7223 Bytes | 6700 Bytes | 523 Bytes |
| PNGCrush | /c3 /f0 /d4 /n4 | /c3 /f0 /d4 /n1 | 00:01 | 7223 Bytes | 6683 Bytes | 540 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c3 /f0 /d4 /n4 | /c3 /f0 /d4 /n1 | 00:00 | 7223 Bytes | 6697 Bytes | 526 Bytes |
| PNGOUT | /c3 /f0 /d4 /n4 | /c3 /f0 /d4 /n4 | 00:00 | 7223 Bytes | 6274 Bytes | 949 Bytes |
| PNGRewrite | /c3 /f0 /d4 /n4 | /c3 /f0 /d4 /n1 | 00:00 | 7223 Bytes | 6683 Bytes | 540 Bytes |
| PNGWolf | /c3 /f0 /d4 /n4 | /c3 /f5 /d4 /n2 | 00:10 | 7223 Bytes | 6297 Bytes | 926 Bytes |
| TruePNG | /c3 /f0 /d4 /n4 | /c3 /f0 /d8 /n2 | 00:03 | 7223 Bytes | 6647 Bytes | 576 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c3 /f0 /d4 /n4 | /c3 /f0 /d8 /n2 | 03:32 | 7223 Bytes | 5891 Bytes | 1332 Bytes |
| Image Catalyst | /c3 /f0 /d4 /n4 | /c3 /f0 /d8 /n2 | 00:03 | 7223 Bytes | 5900 Bytes | 1323 Bytes |
| pngXoptimizer | /c3 /f0 /d4 /n4 | /c3 /f0 /d8 /n3 | 00:01 | 7223 Bytes | 5900 Bytes | 1323 Bytes |
| ScriptPNG | /c3 /f0 /d4 /n4 | /c3 /f0 /d8 /n2 | 00:08 | 7223 Bytes | 5900 Bytes | 1323 Bytes |
When an alpha value is specified in a palette entry, try to sort the palette with alpha value in the beginning. Avoid an alpha value with "255", meaning no opacity. In this image, all pixels have alpha value. But only the last have a useful value.
RESULTS : Good : pLTE sorted - Bad : pLTE NOT sorted
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n2 | 00:00 | 2547 Bytes | 2052 Bytes | 495 Bytes |
| OptiPNG | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 00:01 | 2547 Bytes | 2051 Bytes | 496 Bytes |
| PNGCrush | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 00:00 | 2547 Bytes | 2051 Bytes | 496 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 00:00 | 2547 Bytes | 1825 Bytes | 722 Bytes |
| PNGOUT | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n17 | 00:00 | 2547 Bytes | 2020 Bytes | 527 Bytes |
| PNGRewrite | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 00:00 | 2547 Bytes | 1829 Bytes | 718 Bytes |
| PNGWolf | /c3 /f0 /d8 /n17 | /c3 /f5 /d8 /n2 | 00:23 | 2547 Bytes | 2021 Bytes | 526 Bytes |
| TruePNG | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 00:02 | 2547 Bytes | 1825 Bytes | 722 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 03:22 | 2547 Bytes | 1766 Bytes | 781 Bytes |
| Image Catalyst | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 00:03 | 2547 Bytes | 1747 Bytes | 800 Bytes |
| pngXoptimizer | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 00:01 | 2547 Bytes | 1748 Bytes | 799 Bytes |
| ScriptPNG | /c3 /f0 /d8 /n17 | /c3 /f0 /d8 /n1 | 00:08 | 2547 Bytes | 1728 Bytes | 819 Bytes |
This image contains 17 colors, encoded in 8 bits / pixels. But there are 256 entries in the palette ; 239 entries have no coordinates in the RGB area, so there are not useful.
RESULTS : Good : 17 entries - Bad : 256 entries
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 1243 Bytes | 1023 Bytes | 220 Bytes |
| OptiPNG | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 1243 Bytes | 303 Bytes | 940 Bytes |
| PNGCrush | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 1243 Bytes | 1020 Bytes | 223 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 1243 Bytes | 307 Bytes | 936 Bytes |
| PNGOUT | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n4 | 00:00 | 1243 Bytes | 363 Bytes | 880 Bytes |
| PNGRewrite | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 1243 Bytes | 307 Bytes | 936 Bytes |
| PNGWolf | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:06 | 1243 Bytes | 1032 Bytes | 211 Bytes |
| TruePNG | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 1243 Bytes | 303 Bytes | 940 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 01:12 | 1243 Bytes | 303 Bytes | 940 Bytes |
| Image Catalyst | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:01 | 1243 Bytes | 301 Bytes | 942 Bytes |
| pngXoptimizer | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:01 | 1243 Bytes | 328 Bytes | 915 Bytes |
| ScriptPNG | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:02 | 1243 Bytes | 301 Bytes | 942 Bytes |
In this test, there is an very filtrable RGB area in a GrayScale+Alpha PNG. But, to get the best result, softwares have to leave the RGB area intact, instead of cleaning / filtering not displayed RGB values.
RESULTS : Good : GrayScale/Not Modified - Correct : GrayScale/Filtered - Bad : GrayScale/Cleaned
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f5 /n1 | /c6 /f5 /n6 | 00:00 | 11349 Bytes | 9080 Bytes | 2269 Bytes |
| OptiPNG | /c6 /f5 /n1 | /c4 /f4 /n1 | 00:01 | 11349 Bytes | 7827 Bytes | 3522 Bytes |
| PNGCrush | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:02 | 11349 Bytes | 9344 Bytes | 2005 Bytes |
| PNGKT | /c6 /f5 /n1 | /c6 /f1 /n1 | 00:00 | 11349 Bytes | 14348 Bytes | -2999 Bytes |
| PNGOptimizer | /c6 /f5 /n1 | /c6 /f0 /n1 | 00:00 | 11349 Bytes | 10712 Bytes | 637 Bytes |
| PNGOUT | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:06 | 11349 Bytes | 8918 Bytes | 2431 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c6 /f5 /n1 | /c6 /f5 /n7 | 00:20 | 11349 Bytes | 10135 Bytes | 1214 Bytes |
| TruePNG | /c6 /f5 /n1 | /c4 /f5 /n1 | 00:03 | 11349 Bytes | 7512 Bytes | 3837 Bytes |
| CryoPNG | /c6 /f5 /n1 | /c6 /f4 /n1 | 00:02 | 11349 Bytes | 9563 Bytes | 1786 Bytes |
| PNGSlim | /c6 /f5 /n1 | /c4 /f5 /n1 | 23:10 | 11349 Bytes | 7418 Bytes | 3931 Bytes |
| Image Catalyst | /c6 /f5 /n1 | /c4 /f5 /n1 | 00:07 | 11349 Bytes | 6959 Bytes | 4390 Bytes |
| pngXoptimizer | /c6 /f5 /n1 | /c4 /f5 /n1 | 00:04 | 11349 Bytes | 6975 Bytes | 4374 Bytes |
| ScriptPNG | /c6 /f5 /n1 | /c4 /f5 /n1 | 00:08 | 11349 Bytes | 6959 Bytes | 4390 Bytes |
In this test, there is an very filtrable RGB area in a TrueColor+Alpha PNG. But, to get the best result, softwares have to leave the RGB area intact, instead of cleaning / filtering not displayed RGB values.
RESULTS : Good : RGBA/Not Modified - Correct : RGBA/Filtered - Bad : RGBA/Cleaned
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f5 /n1 | /c6 /f5 /n6 | 00:01 | 11259 Bytes | 9067 Bytes | 2192 Bytes |
| OptiPNG | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:02 | 11259 Bytes | 9463 Bytes | 1796 Bytes |
| PNGCrush | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:03 | 11259 Bytes | 9463 Bytes | 1796 Bytes |
| PNGKT | /c6 /f5 /n1 | /c6 /f1 /n1 | 00:00 | 11259 Bytes | 13831 Bytes | -2572 Bytes |
| PNGOptimizer | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:01 | 11259 Bytes | 10973 Bytes | 286 Bytes |
| PNGOUT | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:08 | 11259 Bytes | 8897 Bytes | 2362 Bytes |
| PNGRewrite | /c6 /f5 /n1 | - | - | - | - | - |
| PNGWolf | /c6 /f5 /n1 | /c6 /f5 /n7 | 00:19 | 11259 Bytes | 10034 Bytes | 1225 Bytes |
| TruePNG | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:05 | 11259 Bytes | 9151 Bytes | 2108 Bytes |
| CryoPNG | /c6 /f5 /n1 | /c6 /f2 /n1 | 00:01 | 11259 Bytes | 9420 Bytes | 1839 Bytes |
| PNGSlim | /c6 /f5 /n1 | /c4 /f4 /n1 | 23:10 | 11259 Bytes | 9505 Bytes | 1754 Bytes |
| Image Catalyst | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:13 | 11259 Bytes | 8857 Bytes | 2402 Bytes |
| pngXoptimizer | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:08 | 11259 Bytes | 8893 Bytes | 2366 Bytes |
| ScriptPNG | /c6 /f5 /n1 | /c6 /f5 /n1 | 00:14 | 11259 Bytes | 8857 Bytes | 2402 Bytes |
A TrueColor+Alpha PNG can contains some data in the RGB area which are not displayed by browser, cause to the Alpha Channel. For a Web usage, those data are not useful and can be deleted.
RESULTS : Good : Cleaned and GrayScale - Correct : Cleaned - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f0 /n27 | /c6 /f0 /n8 | 00:00 | 85864 Bytes | 78376 Bytes | 7488 Bytes |
| OptiPNG | /c6 /f0 /n27 | /c6 /f4 /n5 | 00:05 | 85864 Bytes | 68796 Bytes | 17068 Bytes |
| PNGCrush | /c6 /f0 /n27 | /c6 /f4 /n5 | 00:06 | 85864 Bytes | 69307 Bytes | 16557 Bytes |
| PNGKT | /c6 /f0 /n27 | /c6 /f1 /n1 | 00:00 | 85864 Bytes | 1327 Bytes | 84537 Bytes |
| PNGOptimizer | /c6 /f0 /n27 | /c3 /f5 /d8 /n1 | 00:00 | 85864 Bytes | 761 Bytes | 85103 Bytes |
| PNGOUT | /c6 /f0 /n27 | /c6 /f0 /n27 | 00:01 | 85864 Bytes | 78561 Bytes | 7303 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c6 /f0 /n27 | /c6 /f5 /n4 | 00:20 | 85864 Bytes | 1113 Bytes | 84751 Bytes |
| TruePNG | /c6 /f0 /n27 | /c0 /f5 /d8 /n1 | 00:02 | 85864 Bytes | 568 Bytes | 85296 Bytes |
| CryoPNG | /c6 /f0 /n27 | /c6 /f4 /n1 | 00:00 | 85864 Bytes | 995 Bytes | 84869 Bytes |
| PNGSlim | /c6 /f0 /n27 | /c0 /f5 /d8 /n1 | 02:20 | 85864 Bytes | 552 Bytes | 85312 Bytes |
| Image Catalyst | /c6 /f0 /n27 | /c0 /f5 /d8 /n1 | 00:02 | 85864 Bytes | 547 Bytes | 85317 Bytes |
| pngXoptimizer | /c6 /f0 /n27 | /c0 /f5 /d8 /n1 | 00:02 | 85864 Bytes | 552 Bytes | 85312 Bytes |
| ScriptPNG | /c6 /f0 /n27 | /c0 /f5 /d8 /n1 | 00:03 | 85864 Bytes | 547 Bytes | 85317 Bytes |
The most easiest test : tool have just to compact the lot of iDAT chunks.
RESULTS : Good : iDAT Chunks Compacted - Bad : NOT Compacted
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f0 /n8 | /c6 /f0 /n2 | 00:00 | 17193 Bytes | 10056 Bytes | 7137 Bytes |
| OptiPNG | /c6 /f0 /n8 | /c6 /f0 /n1 | 00:01 | 17193 Bytes | 10563 Bytes | 6630 Bytes |
| PNGCrush | /c6 /f0 /n8 | /c6 /f0 /n1 | 00:01 | 17193 Bytes | 10610 Bytes | 6583 Bytes |
| PNGKT | /c6 /f0 /n8 | /c6 /f1 /n1 | 00:00 | 17193 Bytes | 16511 Bytes | 682 Bytes |
| PNGOptimizer | /c6 /f0 /n8 | /c6 /f0 /n1 | 00:00 | 17193 Bytes | 10564 Bytes | 6629 Bytes |
| PNGOUT | /c6 /f0 /n8 | /c6 /f0 /n8 | 00:00 | 17193 Bytes | 10322 Bytes | 6871 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c6 /f0 /n8 | /c6 /f0 /n2 | 00:06 | 17193 Bytes | 10035 Bytes | 7158 Bytes |
| TruePNG | /c6 /f0 /n8 | /c6 /f0 /n1 | 00:03 | 17193 Bytes | 10549 Bytes | 6644 Bytes |
| CryoPNG | /c6 /f0 /n8 | /c6 /f0 /n1 | 00:02 | 17193 Bytes | 10563 Bytes | 6630 Bytes |
| PNGSlim | /c6 /f0 /n8 | /c6 /f0 /n1 | 04:11 | 17193 Bytes | 9949 Bytes | 7244 Bytes |
| Image Catalyst | /c6 /f0 /n8 | /c6 /f0 /n1 | 00:03 | 17193 Bytes | 9956 Bytes | 7237 Bytes |
| pngXoptimizer | /c6 /f0 /n8 | /c6 /f0 /n1 | 00:01 | 17193 Bytes | 9956 Bytes | 7237 Bytes |
| ScriptPNG | /c6 /f0 /n8 | /c6 /f0 /n1 | 00:04 | 17193 Bytes | 9956 Bytes | 7237 Bytes |
A TrueColor+Alpha PNG can contains some data in the RGB area which are not displayed by browser, cause to the Alpha Channel. For a Web usage, those data are not useful and can be deleted.
RESULTS : Good : Clean PNG header - Bad : NOT Cleaned
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 5129 Bytes | 4908 Bytes | 221 Bytes |
| OptiPNG | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 5129 Bytes | 4905 Bytes | 224 Bytes |
| PNGCrush | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 5129 Bytes | 457 Bytes | 4672 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 5129 Bytes | 307 Bytes | 4822 Bytes |
| PNGOUT | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n4 | 00:00 | 5129 Bytes | 364 Bytes | 4765 Bytes |
| PNGRewrite | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:00 | 5129 Bytes | 389 Bytes | 4740 Bytes |
| PNGWolf | /c3 /f0 /d8 /n4 | /c3 /f5 /d8 /n1 | 00:06 | 5129 Bytes | 4917 Bytes | 212 Bytes |
| TruePNG | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:01 | 5129 Bytes | 319 Bytes | 4810 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 01:12 | 1243 Bytes | 303 Bytes | 940 Bytes |
| Image Catalyst | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:01 | 5129 Bytes | 301 Bytes | 4828 Bytes |
| pngXoptimizer | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:01 | 5129 Bytes | 328 Bytes | 4801 Bytes |
| ScriptPNG | /c3 /f0 /d8 /n4 | /c3 /f0 /d8 /n1 | 00:02 | 5129 Bytes | 305 Bytes | 4824 Bytes |
This test is particular, because software have to clean the RGB data which are not displayed, like the "Bad Transparency" test. Then, they can modify the RGB data -extend the pixel in all RGB area- instead of changing them to black pixels.
RESULTS : Good : Filtered - Correct : Cleaned - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f0 /n10 | /c6 /f0 /n9 | 00:00 | 90027 Bytes | 86036 Bytes | 3991 Bytes |
| OptiPNG | /c6 /f0 /n10 | /c6 /f4 /n5 | 00:02 | 90027 Bytes | 63955 Bytes | 26072 Bytes |
| PNGCrush | /c6 /f0 /n10 | /c6 /f4 /n3 | 00:04 | 90027 Bytes | 63959 Bytes | 26068 Bytes |
| PNGKT | /c6 /f0 /n10 | /c6 /f1 /n3 | 00:00 | 90027 Bytes | 51182 Bytes | 38845 Bytes |
| PNGOptimizer | /c6 /f0 /n10 | /c6 /f5 /n4 | 00:01 | 90027 Bytes | 46768 Bytes | 43259 Bytes |
| PNGOUT | /c6 /f0 /n10 | /c6 /f0 /n10 | 00:00 | 90027 Bytes | 85871 Bytes | 4156 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c6 /f0 /n10 | /c6 /f5 /n6 | 00:08 | 90027 Bytes | 46322 Bytes | 43705 Bytes |
| TruePNG | /c6 /f0 /n10 | /c6 /f5 /n2 | 00:06 | 90027 Bytes | 45173 Bytes | 44854 Bytes |
| CryoPNG | /c6 /f0 /n10 | /c6 /f4 /n2 | 00:00 | 90027 Bytes | 44923 Bytes | 45104 Bytes |
| PNGSlim | /c6 /f0 /n10 | /c6 /f5 /n2 | 15:31 | 90027 Bytes | 45405 Bytes | 44622 Bytes |
| Image Catalyst | /c6 /f0 /n10 | /c6 /f5 /n2 | 00:05 | 90027 Bytes | 44236 Bytes | 45791 Bytes |
| pngXoptimizer | /c6 /f0 /n10 | /c6 /f5 /n2 | 00:05 | 90027 Bytes | 44156 Bytes | 45871 Bytes |
| ScriptPNG | /c6 /f0 /n10 | /c6 /f5 /n2 | 00:07 | 90027 Bytes | 44236 Bytes | 45791 Bytes |
This image contains very filtrable values (more than 68000 gradients
and differents colors). Better is the filtering step, better is the compression.
RESULTS : Good : Filtered - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c2 /f0 /n64 | /c2 /f0 /n64 | 00:00 | 181408 Bytes | 181408 Bytes | 0 Bytes |
| OptiPNG | /c2 /f0 /n64 | /c2 /f4 /n1 | 00:01 | 181408 Bytes | 757 Bytes | 180651 Bytes |
| PNGCrush | /c2 /f0 /n64 | /c2 /f4 /n1 | 00:02 | 181408 Bytes | 757 Bytes | 180651 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c2 /f0 /n64 | /c2 /f5 /n1 | 00:00 | 181408 Bytes | 790 Bytes | 180618 Bytes |
| PNGOUT | /c2 /f0 /n64 | /c2 /f0 /n64 | 00:01 | 181408 Bytes | 181234 Bytes | 174 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c2 /f0 /n64 | /c2 /f5 /n5 | 00:10 | 181408 Bytes | 872 Bytes | 180536 Bytes |
| TruePNG | /c2 /f0 /n64 | /c2 /f4 /n1 | 00:02 | 181408 Bytes | 754 Bytes | 180654 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c2 /f0 /n64 | /c2 /f4 /n1 | 05:53 | 181408 Bytes | 750 Bytes | 180658 Bytes |
| Image Catalyst | /c2 /f0 /n64 | /c2 /f4 /n1 | 00:07 | 181408 Bytes | 751 Bytes | 180657 Bytes | pngXoptimizer | /c2 /f0 /n64 | /c2 /f4 /n1 | 00:03 | 181408 Bytes | 751 Bytes | 180657 Bytes |
| ScriptPNG | /c2 /f0 /n64 | /c2 /f4 /n1 | 00:04 | 181408 Bytes | 751 Bytes | 180657 Bytes |
This image contains an Alpha Channel which be filtered. Software can use the Black Pixels
methods, or can Filter the RGB area.
RESULTS : Good : Filtered - Correct : Black Pixels - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c4 /f5 /n2 | /c4 /f5 /n3 | 00:00 | 21692 Bytes | 18045 Bytes | 3647 Bytes |
| OptiPNG | /c4 /f5 /n2 | /c4 /f5 /n1 | 00:02 | 21692 Bytes | 18885 Bytes | 2807 Bytes |
| PNGCrush | /c4 /f5 /n2 | /c4 /f5 /n1 | 00:03 | 21692 Bytes | 18885 Bytes | 2807 Bytes |
| PNGKT | /c4 /f5 /n2 | /c4 /f1 /n1 | 00:00 | 21692 Bytes | 19778 Bytes | 1914 Bytes |
| PNGOptimizer | /c4 /f5 /n2 | /c4 /f5 /n2 | 00:00 | 21692 Bytes | 18925 Bytes | 2767 Bytes |
| PNGOUT | /c4 /f5 /n2 | /c4 /f5 /n2 | 00:03 | 21692 Bytes | 17875 Bytes | 3817 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c4 /f5 /n2 | /c4 /f5 /n5 | 00:32 | 21692 Bytes | 18390 Bytes | 3302 Bytes |
| TruePNG | /c4 /f5 /n2 | /c4 /f5 /n1 | 00:06 | 21692 Bytes | 17468 Bytes | 4224 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c4 /f5 /n2 | /c4 /f5 /n1 | 25:13 | 21692 Bytes | 16596 Bytes | 5096 Bytes |
| Image Catalyst | /c4 /f5 /n2 | /c4 /f5 /n1 | 00:09 | 21692 Bytes | 16565 Bytes | 5127 Bytes |
| pngXoptimizer | /c4 /f5 /n2 | /c4 /f5 /n1 | 00:06 | 21692 Bytes | 16626 Bytes | 5066 Bytes |
| ScriptPNG | /c4 /f5 /n2 | /c4 /f5 /n1 | 00:12 | 21692 Bytes | 16565 Bytes | 5127 Bytes |
Some PNG GrayScale+Alpha use Alpha Channel when it's not necessary. The tRNS chunk can be used to do transparency with a PNG8 (GrayScale), without using an Alpha Channel.
RESULTS : Good : GrayScale tRNS - Correct : Paletted tRNS - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c4 /f0 /n4 | /c4 /f0 /n1 | 00:00 | 7302 Bytes | 6184 Bytes | 1118 Bytes |
| OptiPNG | /c4 /f0 /n4 | /c3 /f4 /d8 /n1 | 00:00 | 7302 Bytes | 4308 Bytes | 2994 Bytes |
| PNGCrush | /c4 /f0 /n4 | /c4 /f4 /n1 | 00:00 | 7302 Bytes | 4350 Bytes | 2952 Bytes |
| PNGKT | /c4 /f0 /n4 | /c4 /f1 /n1 | 00:00 | 7302 Bytes | 5576 Bytes | 1726 Bytes |
| PNGOptimizer | /c4 /f0 /n4 | /c4 /f5 /n1 | 00:00 | 7302 Bytes | 4354 Bytes | 2948 Bytes |
| PNGOUT | /c4 /f0 /n4 | /c4 /f0 /n4 | 00:00 | 7302 Bytes | 6201 Bytes | 1101 Bytes |
| PNGRewrite | /c4 /f0 /n4 | /c0 /f5 /d8 /n1 | 00:00 | 7302 Bytes | 3548 Bytes | 3754 Bytes |
| PNGWolf | /c4 /f0 /n4 | /c4 /f5 /n2 | 00:10 | 7302 Bytes | 4124 Bytes | 3178 Bytes |
| TruePNG | /c4 /f0 /n4 | /c0 /f4 /d8 /n1 | 00:00 | 7302 Bytes | 3537 Bytes | 3765 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c4 /f0 /n4 | /c0 /f4 /d8 /n1 | 01:04 | 7302 Bytes | 3377 Bytes | 3925 Bytes |
| Image Catalyst | /c4 /f0 /n4 | /c0 /f4 /d8 /n1 | 00:02 | 7302 Bytes | 3388 Bytes | 3914 Bytes |
| pngXoptimizer | /c4 /f0 /n4 | /c0 /f4 /d8 /n1 | 00:01 | 7302 Bytes | 3429 Bytes | 3873 Bytes |
| ScriptPNG | /c4 /f0 /n4 | /c0 /f4 /d8 /n1 | 00:02 | 7302 Bytes | 3388 Bytes | 3914 Bytes |
When image use 256 colors or less and use an Alpha Channel, it can sometimes be converted losslessly in PNG8+tRNS. PNG8 can use alpha values for each entry. The restitued image is identique as the original.
RESULTS : Good : Paletted tRNS - Bad : GrayScale+Alpha
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c4 /f0 /n9 | /c4 /f0 /n3 | 00:00 | 18708 Bytes | 15090 Bytes | 3618 Bytes |
| OptiPNG | /c4 /f0 /n9 | /c3 /f0 /d8 /n1 | 00:01 | 18708 Bytes | 13832 Bytes | 4876 Bytes |
| PNGCrush | /c4 /f0 /n9 | /c4 /f0 /n1 | 00:01 | 18708 Bytes | 16074 Bytes | 2634 Bytes |
| PNGKT | /c4 /f0 /n9 | /c4 /f1 /n1 | 00:00 | 18708 Bytes | 20557 Bytes | -1849 Bytes |
| PNGOptimizer | /c4 /f0 /n9 | /c4 /f0 /n9 | 00:00 | 18708 Bytes | 18708 Bytes | 0 Bytes |
| PNGOUT | /c4 /f0 /n9 | /c4 /f0 /n9 | 00:02 | 18708 Bytes | 15067 Bytes | 3641 Bytes |
| PNGRewrite | /c4 /f0 /n9 | /c3 /f0 /d8 /n1 | 00:00 | 18708 Bytes | 13783 Bytes | 4925 Bytes |
| PNGWolf | /c4 /f0 /n9 | /c4 /f5 /n5 | 00:13 | 18708 Bytes | 15106 Bytes | 3602 Bytes |
| TruePNG | /c4 /f0 /n9 | /c3 /f5 /d8 /n1 | 00:06 | 18708 Bytes | 13426 Bytes | 5282 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c4 /f0 /n9 | /c3 /f5 /d8 /n1 | 04:25 | 18708 Bytes | 13149 Bytes | 5559 Bytes |
| Image Catalyst | /c4 /f0 /n9 | /c3 /f5 /d8 /n1 | 00:08 | 18708 Bytes | 13461 Bytes | 5292 Bytes |
| pngXoptimizer | /c4 /f0 /n9 | /c3 /f5 /d8 /n1 | 00:03 | 18708 Bytes | 13048 Bytes | 5560 Bytes |
| ScriptPNG | /c4 /f0 /n9 | /c3 /f5 /d8 /n1 | 00:14 | 18708 Bytes | 12952 Bytes | 5756 Bytes |
Sometimes, compression code can be produce a bad result, when data are not / less compressible. In this image, a high compression will produce a bigger file. In zlib specifications, software have to use the strategy 2
(Huffman Only) to get the best result.
RESULTS : Good : Huffman Only - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c2 /f0 /n225 | /c2 /f0 /n22 | 00:00 | 173307 Bytes | 171473 Bytes | 1834 Bytes |
| OptiPNG | /c2 /f0 /n225 | /c2 /f5 /n7 | 00:01 | 173307 Bytes | 100444 Bytes | 72863 Bytes |
| PNGCrush | /c2 /f0 /n225 | /c2 /f5 /n7 | 00:04 | 173307 Bytes | 100444 Bytes | 72863 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c2 /f0 /n225 | /c2 /f5 /n11 | 00:01 | 173307 Bytes | 102327 Bytes | 70980 Bytes |
| PNGOUT | /c2 /f0 /n225 | /c2 /f0 /n225 | 00:00 | 173307 Bytes | 173307 Bytes | 0 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c2 /f0 /n225 | /c2 /f5 /n9 | 00:09 | 173307 Bytes | 107972 Bytes | 65335 Bytes |
| TruePNG | /c2 /f0 /n225 | /c2 /f5 /n7 | 00:02 | 173307 Bytes | 100360 Bytes | 72947 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c2 /f0 /n225 | /c2 /f5 /n7 | 02:31 | 173307 Bytes | 100155 Bytes | 73152 Bytes | Image Catalyst | /c2 /f0 /n225 | /c2 /f5 /n7 | 00:03 | 173307 Bytes | 100183 Bytes | 73124 Bytes |
| pngXoptimizer | /c2 /f0 /n225 | /c2 /f5 /n7 | 00:03 | 173307 Bytes | 100155 Bytes | 73152 Bytes |
| ScriptPNG | /c2 /f0 /n225 | /c2 /f5 /n7 | 00:03 | 173307 Bytes | 100155 Bytes | 73152 Bytes |
Most of Paletted images are better stored without filters. In this case, by sorting the entries of the palette, we can use filters line-by-line, and optimize compression of the image.
RESULTS : Good : Palette sorted to apply f1 - Bad : Other sort
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c3 /f5 /d8 /n1 | /c3 /f5 /d8 /n3 | 00:01 | 24834 Bytes | 21698 Bytes | 3136 Bytes |
| OptiPNG | /c3 /f5 /d8 /n1 | /c3 /f0 /d8 /n1 | 00:01 | 24834 Bytes | 19296 Bytes | 5538 Bytes |
| PNGCrush | /c3 /f5 /d8 /n1 | /c3 /f0 /d8 /n1 | 00:02 | 24834 Bytes | 19319 Bytes | 5515 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c3 /f5 /d8 /n1 | /c3 /f5 /d8 /n1 | 00:01 | 24834 Bytes | 15978 Bytes | 8856 Bytes |
| PNGOUT | /c3 /f5 /d8 /n1 | /c3 /f5 /d8 /n1 | 00:02 | 24834 Bytes | 21606 Bytes | 3228 Bytes |
| PNGRewrite | /c3 /f5 /d8 /n1 | /c3 /f0 /d8 /n1 | 00:00 | 24834 Bytes | 19319 Bytes | 5515 Bytes |
| PNGWolf | /c3 /f5 /d8 /n1 | /c3 /f0 /d8 /n4 | 00:06 | 24834 Bytes | 18301 Bytes | 6533 Bytes |
| TruePNG | /c3 /f5 /d8 /n1 | /c3 /f1 /d8 /n2 | 00:05 | 24834 Bytes | 15361 Bytes | 9473 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c3 /f5 /d8 /n1 | /c3 /f1 /d8 /n2 | 06:25 | 24834 Bytes | 18133 Bytes | 6701 Bytes |
| Image Catalyst | /c3 /f5 /d8 /n1 | /c3 /f1 /d8 /n2 | 00:06 | 24834 Bytes | 14560 Bytes | 10274 Bytes |
| pngXoptimizer | /c3 /f5 /d8 /n1 | /c3 /f1 /d8 /n2 | 00:04 | 24834 Bytes | 14778 Bytes | 10056 Bytes |
| ScriptPNG | /c3 /f5 /d8 /n1 | /c3 /f1 /d8 /n2 | 00:13 | 24834 Bytes | 14397 Bytes | 10437 Bytes |
Sometimes, even if all colors are Gray-Level, Paletted just do it better than GrayScale. Do not forget to try Paletted, even if input is already GrayScale.
RESULTS : Good : Paletted - Bad : GrayScale
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c0 /f5 /d8 /n3 | /c0 /f5 /d8 /n3 | 00:00 | 17304 Bytes | 15612 Bytes | 1692 Bytes |
| OptiPNG | /c0 /f5 /d8 /n3 | /c0 /f4 /d8 /n1 | 00:00 | 17304 Bytes | 15771 Bytes | 1533 Bytes |
| PNGCrush | /c0 /f5 /d8 /n3 | /c0 /f4 /d8 /n1 | 00:00 | 17304 Bytes | 15771 Bytes | 1533 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c0 /f5 /d8 /n3 | /c0 /f5 /d8 /n2 | 00:00 | 17304 Bytes | 15835 Bytes | 1469 Bytes |
| PNGOUT | /c0 /f5 /d8 /n3 | /c0 /f5 /d8 /n3 | 00:03 | 17304 Bytes | 15443 Bytes | 1861 Bytes |
| PNGRewrite | /c0 /f5 /d8 /n3 | /c0 /f5 /d8 /n2 | 00:00 | 17304 Bytes | 15835 Bytes | 1469 Bytes |
| PNGWolf | /c0 /f5 /d8 /n3 | /c0 /f5 /d8 /n2 | 00:40 | 17304 Bytes | 15837 Bytes | 1467 Bytes |
| TruePNG | /c0 /f5 /d8 /n3 | /c3 /f5 /d8 /n1 | 00:03 | 17304 Bytes | 14657 Bytes | 2647 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c0 /f5 /d8 /n3 | /c0 /f5 /d8 /n1 | 03:02 | 17304 Bytes | 15421 Bytes | 1883 Bytes |
| Image Catalyst | /c0 /f5 /d8 /n3 | /c3 /f5 /d8 /n1 | 00:03 | 17304 Bytes | 14298 Bytes | 3006 Bytes |
| pngXoptimizer | /c0 /f5 /d8 /n3 | /c3 /f5 /d8 /n1 | 00:02 | 17304 Bytes | 14400 Bytes | 2904 Bytes |
| ScriptPNG | /c0 /f5 /d8 /n3 | /c3 /f5 /d8 /n1 | 00:06 | 17304 Bytes | 14298 Bytes | 3006 Bytes |
This image contains 256 Colors. Most of softwares choose Indexed encoding (Paletted 8 bits / pixels) to store the PNG. But in this case, the TrueColor delta filter can be used : it deletes the PLTE chunks, and convert to TrueColor losslessly.
RESULTS : Good : Converted in TrueColor - Bad : Paletted
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c3 /f0 /d8 /n1 | /c3 /f0 /d8 /n1 | 00:00 | 1362 Bytes | 1362 Bytes | 0 Bytes |
| OptiPNG | /c3 /f0 /d8 /n1 | /c3 /f1 /d8 /n1 | 00:01 | 1362 Bytes | 1058 Bytes | 304 Bytes |
| PNGCrush | /c3 /f0 /d8 /n1 | /c3 /f1 /d8 /n1 | 00:00 | 1362 Bytes | 1058 Bytes | 304 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c3 /f0 /d8 /n1 | /c3 /f5 /d8 /n1 | 00:00 | 1362 Bytes | 1059 Bytes | 303 Bytes |
| PNGOUT | /c3 /f0 /d8 /n1 | /c3 /f0 /d8 /n1 | 00:00 | 1362 Bytes | 1362 Bytes | 0 Bytes |
| PNGRewrite | /c3 /f0 /d8 /n1 | /c3 /f0 /d8 /n1 | 00:00 | 1362 Bytes | 1365 Bytes | -3 Bytes |
| PNGWolf | /c3 /f0 /d8 /n1 | /c3 /f1 /d8 /n1 | 00:06 | 1362 Bytes | 1058 Bytes | 304 Bytes |
| TruePNG | /c3 /f0 /d8 /n1 | /c2 /f5 /n1 | 00:01 | 1362 Bytes | 459 Bytes | 903 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c3 /f0 /d8 /n1 | /c2 /f5 /n1 | 05:12 | 1362 Bytes | 438 Bytes | 924 Bytes |
| Image Catalyst | /c3 /f0 /d8 /n1 | /c2 /f5 /n1 | 00:03 | 1362 Bytes | 457 Bytes | 905 Bytes |
| pngXoptimizer | /c3 /f0 /d8 /n1 | /c2 /f5 /n1 | 00:02 | 1362 Bytes | 439 Bytes | 923 Bytes |
| ScriptPNG | /c3 /f0 /d8 /n1 | /c2 /f5 /n1 | 00:03 | 1362 Bytes | 438 Bytes | 924 Bytes |
This image is TrueColor+Alpha. RGB area contains data which are not displayed by browser. Softwares have to clean
the RGB area, then have to choose the correct ColorType (this image can be converted to Paletted after the clean
pass), and have to sort the palette.
RESULTS : Good : Clean, Paletted, Sorted >tRNS first - Correct : Clean, Paletted, Sorted - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f5 /n3 | /c6 /f5 /n6 | 00:00 | 72038 Bytes | 58307 Bytes | 13731 Bytes |
| OptiPNG | /c6 /f5 /n3 | /c6 /f2 /n3 | 00:04 | 72038 Bytes | 60638 Bytes | 11400 Bytes |
| PNGCrush | /c6 /f5 /n3 | /c6 /f2 /n2 | 00:06 | 72038 Bytes | 60605 Bytes | 11433 Bytes |
| PNGKT | /c6 /f5 /n3 | /c6 /f1 /n1 | 00:00 | 72038 Bytes | 32029 Bytes | 40009 Bytes |
| PNGOptimizer | /c6 /f5 /n3 | /c6 /f5 /n1 | 00:00 | 72038 Bytes | 28952 Bytes | 43086 Bytes |
| PNGOUT | /c6 /f5 /n3 | /c6 /f5 /n3 | 00:03 | 72038 Bytes | 57922 Bytes | 14116 Bytes |
| PNGRewrite | /c6 /f5 /n3 | - | 00:00 | 72038 Bytes | 72038 Bytes | 0 Bytes |
| PNGWolf | /c6 /f5 /n3 | /c6 /f5 /n6 | 00:20 | 72038 Bytes | 26065 Bytes | 45973 Bytes |
| TruePNG | /c6 /f5 /n3 | /c3 /f5 /d8 /n2 | 00:09 | 72038 Bytes | 17241 Bytes | 54797 Bytes |
| CryoPNG | /c6 /f5 /n3 | /c6 /f2 /n1 | 00:00 | 72038 Bytes | 28669 Bytes | 43369 Bytes |
| PNGSlim | /c6 /f5 /n3 | /c3 /f0 /d8 /n2 | 02:36 | 72038 Bytes | 21140 Bytes | 50898 Bytes |
| Image Catalyst | /c6 /f5 /n3 | /c3 /f5 /d8 /n2 | 00:08 | 72038 Bytes | 16260 Bytes | 55778 Bytes |
| pngXoptimizer | /c6 /f5 /n3 | /c3 /f5 /d8 /n2 | 00:03 | 72038 Bytes | 16824 Bytes | 55214 Bytes |
| ScriptPNG | /c6 /f5 /n3 | /c3 /f5 /d8 /n2 | 00:16 | 72038 Bytes | 16260 Bytes | 55778 Bytes |
This image is TrueColor+Alpha. Software have to choose the correct ColorType (this image can be converted to Paletted). This image should be better optimized without sorting tRNS value first, but with another sorting (by colors).
RESULTS : Good : Paletted, Colors sorting - Correct : Paletted, tRNS sorting - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f5 /n8 | /c6 /f5 /n8 | 00:01 | 33868 Bytes | 33868 Bytes | 0 Bytes |
| OptiPNG | /c6 /f5 /n8 | /c3 /f5 /d8 /n2 | 00:01 | 33868 Bytes | 20645 Bytes | 13223 Bytes |
| PNGCrush | /c6 /f5 /n8 | /c6 /f5 /n8 | 00:06 | 33868 Bytes | 33868 Bytes | 0 Bytes |
| PNGKT | /c6 /f5 /n8 | /c6 /f1 /n2 | 00:01 | 33868 Bytes | 38228 Bytes | -4360 Bytes |
| PNGOptimizer | /c6 /f5 /n8 | /c6 /f5 /n8 | 00:00 | 33868 Bytes | 33868 Bytes | 0 Bytes |
| PNGOUT | /c6 /f5 /n8 | /c6 /f5 /n8 | 00:05 | 33868 Bytes | 33868 Bytes | 0 Bytes |
| PNGRewrite | /c6 /f5 /n8 | /c3 /f0 /d8 /n2 | 00:00 | 33868 Bytes | 26386 Bytes | 7482 Bytes |
| PNGWolf | /c6 /f5 /n8 | /c6 /f5 /n8 | 00:07 | 33868 Bytes | 33568 Bytes | 300 Bytes |
| TruePNG | /c6 /f5 /n8 | /c3 /f5 /d8 /n2 | 00:06 | 33868 Bytes | 20737 Bytes | 13131 Bytes |
| CryoPNG | /c6 /f5 /n8 | /c6 /f0 /n2 | 00:03 | 33868 Bytes | 34318 Bytes | -450 Bytes |
| PNGSlim | /c6 /f5 /n8 | /c3 /f0 /d8 /n4 | 01:59 | 33868 Bytes | 25003 Bytes | 8865 Bytes |
| Image Catalyst | /c6 /f5 /n8 | /c3 /f0 /d8 /n4 | 00:06 | 33868 Bytes | 20454 Bytes | 13414 Bytes |
| pngXoptimizer | /c6 /f5 /n8 | /c3 /f5 /d8 /n2 | 00:03 | 33868 Bytes | 20172 Bytes | 13696 Bytes |
| ScriptPNG | /c6 /f5 /n8 | /c3 /f5 /d8 /n2 | 00:11 | 33868 Bytes | 20056 Bytes | 13812 Bytes |
In addition to Bad Transparency Test, software can have to choice the correct ColorType after cleaning or filtering. In this case, when the RGB data are cleans, software can choice GrayScale+Alpha.
RESULTS : Good : Filtered and GrayScale - Correct : Black Pixels and GrayScale - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f0 /n4 | /c6 /f0 /n7 | 00:00 | 97074 Bytes | 89625 Bytes | 7449 Bytes |
| OptiPNG | /c6 /f0 /n4 | /c6 /f5 /n3 | 00:04 | 97074 Bytes | 76654 Bytes | 20420 Bytes |
| PNGCrush | /c6 /f0 /n4 | /c6 /f5 /n2 | 00:07 | 97074 Bytes | 77196 Bytes | 19878 Bytes |
| PNGKT | /c6 /f0 /n4 | /c6 /f1 /n2 | 00:00 | 97074 Bytes | 57755 Bytes | 39319 Bytes |
| PNGOptimizer | /c6 /f0 /n4 | /c6 /f5 /n2 | 00:00 | 97074 Bytes | 54451 Bytes | 42623 Bytes |
| PNGOUT | /c6 /f0 /n4 | /c6 /f0 /n4 | 00:02 | 97074 Bytes | 87874 Bytes | 9200 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c6 /f0 /n4 | /c6 /f5 /n8 | 00:09 | 97074 Bytes | 52083 Bytes | 44991 Bytes |
| TruePNG | /c6 /f0 /n4 | /c4 /f5 /n2 | 00:11 | 97074 Bytes | 41296 Bytes | 55778 Bytes |
| CryoPNG | /c6 /f0 /n4 | /c6 /f4 /n1 | 00:05 | 97074 Bytes | 54359 Bytes | 42715 Bytes |
| PNGSlim | /c6 /f0 /n4 | /c4 /f5 /n4 | 15:21 | 97074 Bytes | 39960 Bytes | 57114 Bytes |
| Image Catalyst | /c6 /f0 /n4 | /c4 /f5 /n4 | 00:13 | 97074 Bytes | 39921 Bytes | 57153 Bytes |
| pngXoptimizer | /c6 /f0 /n4 | /c4 /f5 /n4 | 00:04 | 97074 Bytes | 40009 Bytes | 57065 Bytes |
| ScriptPNG | /c6 /f0 /n4 | /c4 /f5 /n4 | 00:17 | 97074 Bytes | 39921 Bytes | 57153 Bytes |
As the grayscale-alpha-filter test, this image contains an Alpha Channel which be filtered. Software can use the "Black Pixels" methods, or can Filter the RGB area.
RESULTS : Good : Filtered - Correct : Black Pixels - Bad : Other
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f5 /n2 | /c6 /f5 /n5 | 00:01 | 46912 Bytes | 40286 Bytes | 6626 Bytes |
| OptiPNG | /c6 /f5 /n2 | /c6 /f5 /n2 | 00:03 | 46912 Bytes | 41937 Bytes | 4975 Bytes |
| PNGCrush | /c6 /f5 /n2 | /c6 /f5 /n2 | 00:05 | 46912 Bytes | 41937 Bytes | 4975 Bytes |
| PNGKT | /c6 /f5 /n2 | /c6 /f1 /n2 | 00:00 | 46912 Bytes | 42264 Bytes | 4648 Bytes |
| PNGOptimizer | /c6 /f5 /n2 | /c6 /f5 /n3 | 00:00 | 46912 Bytes | 39374 Bytes | 7538 Bytes |
| PNGOUT | /c6 /f5 /n2 | /c6 /f5 /n2 | 00:09 | 46912 Bytes | 39823 Bytes | 7089 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c6 /f5 /n2 | /c6 /f5 /n8 | 00:11 | 46912 Bytes | 37648 Bytes | 9264 Bytes |
| TruePNG | /c6 /f5 /n2 | /c6 /f5 /n2 | 00:13 | 46912 Bytes | 38996 Bytes | 7916 Bytes |
| CryoPNG | /c6 /f5 /n2 | /c6 /f4 /n2 | 00:02 | 46912 Bytes | 39791 Bytes | 7121 Bytes |
| PNGSlim | /c6 /f5 /n2 | /c6 /f5 /n7 | 43:50 | 46912 Bytes | 37141 Bytes | 9771 Bytes |
| Image Catalyst | /c6 /f5 /n2 | /c6 /f5 /n7 | 00:08 | 46912 Bytes | 37039 Bytes | 9873 Bytes |
| pngXoptimizer | /c6 /f5 /n2 | /c6 /f5 /n3 | 00:10 | 46912 Bytes | 37109 Bytes | 9803 Bytes |
| ScriptPNG | /c6 /f5 /n2 | /c6 /f5 /n7 | 00:21 | 46912 Bytes | 37039 Bytes | 9873 Bytes |
When image use 256 colors or less and use an Alpha Channel, it can sometimes be converted losslessly in PNG8+tRNS. PNG8 can use alpha values for each entry. The restitued image is identique as the original.
RESULTS : Good : Paletted tRNS - Bad : TrueColor+Alpha
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f0 /n10 | /c6 /f0 /n4 | 00:00 | 32473 Bytes | 25658 Bytes | 6815 Bytes |
| OptiPNG | /c6 /f0 /n10 | /c3 /f0 /d8 /n1 | 00:01 | 32473 Bytes | 20012 Bytes | 12461 Bytes |
| PNGCrush | /c6 /f0 /n10 | /c6 /f0 /n1 | 00:03 | 32473 Bytes | 27687 Bytes | 4786 Bytes |
| PNGKT | /c6 /f0 /n10 | /c6 /f1 /n2 | 00:00 | 32473 Bytes | 47274 Bytes | -14801 Bytes |
| PNGOptimizer | /c6 /f0 /n10 | /c6 /f0 /n1 | 00:00 | 32473 Bytes | 27657 Bytes | 4816 Bytes |
| PNGOUT | /c6 /f0 /n10 | /c6 /f0 /n10 | 00:03 | 32473 Bytes | 25971 Bytes | 6502 Bytes |
| PNGRewrite | /c6 /f0 /n10 | /c3 /f0 /d8 /n1 | 00:00 | 32473 Bytes | 20049 Bytes | 12424 Bytes |
| PNGWolf | /c6 /f0 /n10 | /c6 /f0 /n7 | 00:07 | 32473 Bytes | 25641 Bytes | 6832 Bytes |
| TruePNG | /c6 /f0 /n10 | /c3 /f0 /d8 /n4 | 00:03 | 32473 Bytes | 19894 Bytes | 12579 Bytes |
| CryoPNG | /c6 /f0 /n10 | /c6 /f0 /n1 | 00:02 | 32473 Bytes | 27655 Bytes | 4818 Bytes |
| PNGSlim | /c6 /f0 /n10 | /c3 /f0 /d8 /n4 | 02:25 | 32473 Bytes | 19148 Bytes | 13325 Bytes |
| Image Catalyst | /c6 /f0 /n10 | /c3 /f0 /d8 /n4 | 00:03 | 32473 Bytes | 19180 Bytes | 13293 Bytes |
| pngXoptimizer | /c6 /f0 /n10 | /c3 /f0 /d8 /n4 | 00:04 | 32473 Bytes | 19399 Bytes | 13074 Bytes |
| ScriptPNG | /c6 /f0 /n10 | /c3 /f0 /d8 /n4 | 00:06 | 32473 Bytes | 19180 Bytes | 13293 Bytes |
Some PNG24+Alpha use Alpha Channel when it's not necessary. The tRNS chunk can be used to do transparency with a PNG24 (TrueColor), without using an Alpha Channel.
RESULTS : Good : TrueColor tRNS - Bad : TrueColor+Alpha
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c6 /f0 /n7 | /c6 /f0 /n2 | 00:00 | 16653 Bytes | 15515 Bytes | 1138 Bytes |
| OptiPNG | /c6 /f0 /n7 | /c6 /f4 /n1 | 00:01 | 16653 Bytes | 10227 Bytes | 6426 Bytes |
| PNGCrush | /c6 /f0 /n7 | /c6 /f4 /n1 | 00:01 | 16653 Bytes | 10227 Bytes | 6426 Bytes |
| PNGKT | /c6 /f0 /n7 | /c6 /f1 /n1 | 00:00 | 16653 Bytes | 12887 Bytes | 3766 Bytes |
| PNGOptimizer | /c6 /f0 /n7 | /c2 /f5 /n1 | 00:00 | 16653 Bytes | 9168 Bytes | 7485 Bytes |
| PNGOUT | /c6 /f0 /n7 | /c6 /f0 /n7 | 00:02 | 16653 Bytes | 15489 Bytes | 1164 Bytes |
| PNGRewrite | - | - | - | - | - | - |
| PNGWolf | /c6 /f0 /n7 | /c6 /f5 /n2 | 00:017 | 16653 Bytes | 9932 Bytes | 6721 Bytes |
| TruePNG | /c6 /f0 /n7 | /c2 /f5 /n1 | 00:02 | 16653 Bytes | 9150 Bytes | 7503 Bytes |
| CryoPNG | /c6 /f0 /n7 | /c6 /f4 /n1 | 00:01 | 16653 Bytes | 10203 Bytes | 6450 Bytes |
| PNGSlim | /c6 /f0 /n7 | /c2 /f5 /n1 | 02:44 | 16653 Bytes | 8724 Bytes | 7929 Bytes |
| Image Catalyst | /c6 /f0 /n7 | /c2 /f5 /n1 | 00:03 | 16653 Bytes | 8731 Bytes | 7922 Bytes |
| pngXoptimizer | /c6 /f0 /n7 | /c2 /f5 /n1 | 00:01 | 16653 Bytes | 8748 Bytes | 7905 Bytes |
| ScriptPNG | /c6 /f0 /n7 | /c2 /f5 /n1 | 00:03 | 16653 Bytes | 8731 Bytes | 7922 Bytes |
Sometimes, even if all colors are Gray-Level, Paletted just do it better than GrayScale. Do not forget to try Paletted, even if input is already GrayScale.
RESULTS : Good : Paletted - Bad : TrueColor
![]() |
||||||
| Tool | In | Out | Time | SizeIn | SizeOut | Saved |
| ADVDef | /c2 /f0 /n6 | /c2 /f0 /n2 | 00:00 | 1920 Bytes | 1121 Bytes | 799 Bytes |
| OptiPNG | /c2 /f0 /n6 | /c3 /f0 /d8 /n1 | 00:00 | 1920 Bytes | 1104 Bytes | 816 Bytes |
| PNGCrush | /c2 /f0 /n6 | /c2 /f0 /n1 | 00:00 | 1920 Bytes | 1187 Bytes | 733 Bytes |
| PNGKT | - | - | - | - | - | - |
| PNGOptimizer | /c2 /f0 /n6 | /c3 /f0 /d8 /n1 | 00:00 | 1920 Bytes | 1100 Bytes | 820 Bytes |
| PNGOUT | /c2 /f0 /n6 | /c2 /f0 /n6 | 00:02 | 1920 Bytes | 1159 Bytes | 761 Bytes |
| PNGRewrite | /c2 /f0 /n6 | /c3 /f0 /d8 /n1 | 00:00 | 1920 Bytes | 1100 Bytes | 820 Bytes |
| PNGWolf | /c2 /f0 /n6 | /c2 /f5 /n2 | 00:12 | 1920 Bytes | 1132 Bytes | 788 Bytes |
| TruePNG | /c2 /f0 /n6 | /c3 /f0 /d8 /n1 | 00:00 | 1920 Bytes | 1101 Bytes | 819 Bytes |
| CryoPNG | - | - | - | - | - | - |
| PNGSlim | /c2 /f0 /n6 | /c3 /f0 /d8 /n1 | 01:32 | 1920 Bytes | 1036 Bytes | 884 Bytes |
| Image Catalyst | /c2 /f0 /n6 | /c3 /f0 /d8 /n1 | 00:01 | 1920 Bytes | 1049 Bytes | 871 Bytes |
| pngXoptimizer | /c2 /f0 /n6 | /c3 /f0 /d8 /n1 | 00:01 | 1920 Bytes | 1049 Bytes | 871 Bytes |
| ScriptPNG | /c2 /f0 /n6 | /c3 /f0 /d8 /n1 | 00:07 | 1920 Bytes | 1049 Bytes | 871 Bytes |