When I first heard of oxipng some years ago I thought it was a faster optipng. I ran a few tests recently and saw that oxipng is indeed very fast but it also compresses much better than optipng in most cases.
This made me curious: How close was oxipng to the smallest sizes you can get for PNG files? So I also compressed all test images with FileOptimizer for Windows. FileOptimizer runs images through a number of tools (including oxipng) in sequence, in order to achieve the smallest possible size. It takes its time, but it does give you the smallest possible size for each PNG image.
I was surprised to see that oxipng was close to the results FileOptimizer achieved.
I then had to know something else: I knew that WebP, a more modern format, is better, but how much better? So I converted all the test PNG images losslessly to WebP using cwebp.
The results are presented in the tables below.
Full test results (more variations than in the tables below) are in a Google Sheets document: op111.net, 2025-09-11, oxipng and friends, compression results
For the hardware, operating systems, and versions used, see section at the bottom.
The options used for the CLI tools are in the file with the hyperfine measurements: op111-20250911-oxipng-hyperfine-data.txt
The FileOptimizer results were tracked with screenshots: op111-20250911-oxipng-fileoptimizer-data.zip.
The metadata the tools kept and removed in the various settings can be viewed in the pngcheck reports: op111-20250911-oxipng-pngcheck-data.zip.
The optipng and oxipng runs with the strongest settings include the additional option to strip metadata, in order to get the output size as small as possible. FileOptimizer strips metadata by default in all settings. See General notes at the end.
Do you have questions or corrections about the tests, or just want to say hi? Please use the contact form to send your message!
d3js.org.png
![]()
Screenshot of the D3.js homepage I took in Firefox, Debian 13 (GNOME 48, Wayland), using the FireShot extension.
- Filename: d3js.org.png
- Original size: 1,493,211 bytes
- Dimensions: 1600 × 1205 pixels
- Number of colors: 168,716
- Original image: d3js.org.png
COMPRESSION RESULTS FOR d3js.org.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 2.638s | 1,113,706 | 25.42% |
optipng -o 7 -strip all | 32.800s | 1,112,055 | 25.53% |
| oxipng default | 0.764s | 1,058,046 | 29.14% |
oxipng --opt max | 1.937s | 1,046,446 | 29.92% |
oxipng --opt max --zopfli --fast -s | 20.524s | 1,041,552 | 30.25% |
oxipng --opt max --zopfli -s | 28.896s | 1,041,552 | 30.25% |
| FileOptimizer level 2 (fast) | 97.000s | 1,046,856 | 29.89% |
| FileOptimizer level 5 (normal) | 116.000s | 1,041,336 | 30.26% |
| FileOptimizer level 7 (good) | 161.000s | 1,041,336 | 30.26% |
| FileOptimizer level 9 (best) | 380.000s | 1,040,840 | 30.30% |
cwebp -lossless | 0.533s | 828,992 | 44.48% |
cwebp -lossless -z 9 | 7.373s | 813,606 | 45.51% |
NOTES
- oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.05 percentage points apart.
- No program stripped metadata in this image.
debian-desktop.png
![]()
Screenshot of my Debian desktop I took with the GNOME screenshot tool (Debian 13, GNOME 48, Wayland).
- Filename: debian-desktop.png
- Original size: 707,471 bytes
- Dimensions: 2560 × 1440 pixels
- Number of colors: 20,322
- Original image: debian-desktop.png
COMPRESSION RESULTS FOR debian-desktop.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 3.096s | 464,555 | 34.34% |
optipng -o 7 -strip all | 52.045s | 464,448 | 34.35% |
| oxipng default | 1.488s | 448,544 | 36.60% |
oxipng --opt max | 7.005s | 392,710 | 44.49% |
oxipng --opt max --zopfli --fast -s | 64.241s | 431,723 | 38.98% |
oxipng --opt max --zopfli -s | 162.742s | 382,367 | 45.95% |
| FileOptimizer level 2 (fast) | 180.000s | 389,580 | 44.93% |
| FileOptimizer level 5 (normal) | 310.000s | 383,528 | 45.79% |
| FileOptimizer level 7 (good) | 396.000s | 381,896 | 46.02% |
| FileOptimizer level 9 (best) | 1343.000s | 381,245 | 46.11% |
cwebp -lossless | 0.860s | 328,602 | 53.55% |
cwebp -lossless -z 9 | 4.480s | 264,570 | 62.60% |
NOTES
- optipng default and
-o 7compress the same (only difference is the metadata stripped). - oxipng
--opt max --zopflicompresses more without--fast. - oxipng
--opt maxbeats--opt max --zopfli --fast. - oxipng best and FileOptimizer best are 0.16 percentage points apart.
- optipng
-strip allstrips 107 bytes of metadata in this image. - FileOptimizer and oxipng
-s(--strip safe) strip 92 bytes of metadata in this image.
drought-map.png
![]()
Map showing drought conditions in Europe from the European Environment Agency.
- Filename: drought-map.png
- Original size: 976,919 bytes
- Dimensions: 2012 × 2293 pixels
- Number of colors: 4,772
- Source: https://www.eea.europa.eu/en/analysis/maps-and-charts/map-of-the-combined-drought
- Original filename: FIG2.1-261898-Map-extent-v7b.png
COMPRESSION RESULTS FOR drought-map.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 2.555s | 646,102 | 33.86% |
optipng -o 7 -strip all | 24.281s | 646,081 | 33.87% |
| oxipng default | 1.623s | 601,965 | 38.38% |
oxipng --opt max | 5.247s | 589,602 | 39.65% |
oxipng --opt max --zopfli --fast -s | 85.707s | 580,993 | 40.53% |
oxipng --opt max --zopfli -s | 110.950s | 580,993 | 40.53% |
| FileOptimizer level 2 (fast) | 308.000s | 585,529 | 40.06% |
| FileOptimizer level 5 (normal) | 417.000s | 580,985 | 40.53% |
| FileOptimizer level 7 (good) | 473.000s | 580,681 | 40.56% |
| FileOptimizer level 9 (best) | 1315.000s | 580,439 | 40.58% |
cwebp -lossless | 0.302s | 374,356 | 61.68% |
cwebp -lossless -z 9 | 6.437s | 369,064 | 62.22% |
NOTES
- optipng default and
-o 7compress the same (only difference is the metadata stripped). - oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.05 percentage points apart.
- optipng
-strip allstrips 21 bytes of metadata in this image. - FileOptimizer and oxipng
-s(--strip safe) strip no metadata in this image.
github.com-repo.png
![]()
Screenshot of the oxipng repo on GitHub I took in Chrome on Debian using the FireShot extension.
- Filename: github.com-repo.png
- Original size: 269,531 bytes
- Dimensions: 1352 × 1105 pixels
- Number of colors: 5,720
- Original image: github.com-repo.png
COMPRESSION RESULTS FOR github.com-repo.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 0.758s | 178,507 | 33.77% |
optipng -o 7 -strip all | 7.916s | 178,445 | 33.79% |
| oxipng default | 0.310s | 169,022 | 37.29% |
oxipng --opt max | 0.904s | 167,590 | 37.82% |
oxipng --opt max --zopfli --fast -s | 21.438s | 162,970 | 39.54% |
oxipng --opt max --zopfli -s | 25.707s | 162,970 | 39.54% |
| FileOptimizer level 2 (fast) | 88.000s | 163,494 | 39.34% |
| FileOptimizer level 5 (normal) | 107.000s | 162,968 | 39.54% |
| FileOptimizer level 7 (good) | 127.000s | 162,825 | 39.53% |
| FileOptimizer level 9 (best) | 373.000s | 162,438 | 39.73% |
cwebp -lossless | 0.068s | 76,358 | 71.67% |
cwebp -lossless -z 9 | 1.958s | 70,084 | 74.00% |
NOTES
- oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.19 percentage points apart.
- No program stripped metadata in this image.
goaccess.io-demo.png
![]()
Screenshot of the GoAccess demo page I took in Firefox on Debian using the FireShot extension.
- Filename: goaccess.io-demo.png
- Original size: 325,494 bytes
- Dimensions: 1600 × 1205 pixels
- Number of colors: 3,032
- Original image: goaccess.io-demo.png
COMPRESSION RESULTS FOR goaccess.io-demo.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 0.984s | 218,045 | 33.01% |
optipng -o 7 -strip all | 10.105s | 218,045 | 33.01% |
| oxipng default | 0.605s | 201,055 | 38.23% |
oxipng --opt max | 1.421s | 193,235 | 40.63% |
oxipng --opt max --zopfli --fast -s | 32.439s | 189,059 | 41.92% |
oxipng --opt max --zopfli -s | 39.578s | 189,059 | 41.92% |
| FileOptimizer level 2 (fast) | 104.000s | 191,914 | 41.04% |
| FileOptimizer level 5 (normal) | 134.000s | 189,036 | 41.92% |
| FileOptimizer level 7 (good) | 152.000s | 189,036 | 41.92% |
| FileOptimizer level 9 (best) | 535.000s | 188,220 | 42.17% |
cwebp -lossless | 0.090s | 89,142 | 72.61% |
cwebp -lossless -z 9 | 3.227s | 88,022 | 72.96% |
NOTES
- optipng default and
-o 7compress the same. - oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.25 percentage points apart.
- No program stripped metadata in this image.
html5-logo.png
![]()
The official HTML5 logo from W3C.
- Filename: html5-logo.png
- Original size: 8,562 bytes
- Dimensions: 512 × 512 pixels
- Number of colors: 84
- Source: https://www.w3.org/html/logo/
- Original filename: HTML5_Logo_512.png
COMPRESSION RESULTS FOR html5-logo.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 0.064s | 4,780 | 44.17% |
optipng -o 7 -strip all | 0.621s | 4,743 | 44.60% |
| oxipng default | 0.052s | 5,147 | 39.89% |
oxipng --opt max | 0.191s | 4,429 | 48.27% |
oxipng --opt max --zopfli --fast -s | 2.046s | 4,236 | 50.53% |
oxipng --opt max --zopfli -s | 3.448s | 4,094 | 52.18% |
| FileOptimizer level 2 (fast) | 54.000s | 4,091 | 52.22% |
| FileOptimizer level 5 (normal) | 54.000s | 4,091 | 52.22% |
| FileOptimizer level 7 (good) | 59.000s | 4,085 | 52.29% |
| FileOptimizer level 9 (best) | 131.000s | 4,076 | 52.39% |
cwebp -lossless | 0.015s | 3,416 | 60.10% |
cwebp -lossless -z 9 | 0.834s | 3,460 | 59.59% |
NOTES
- optipng default and
-o 7compress the same (the difference is the metadata stripped by-strip all). - optipng default beats oxipng default.
- oxipng
--opt max --zopflicompresses more without--fast. - oxipng best and FileOptimizer best are 0.21 percentage points apart.
- cwebp
-z 6(default) beats-z 9. - FileOptimizer, optipng
-strip alland oxipng-s(--strip safe) strip 37 bytes of metadata in this image.
mediawiki-logo.png
![]()
The MediaWiki logo.
- Filename: mediawiki-logo.png
- Original size: 28,656 bytes
- Dimensions: 270 × 300 pixels
- Number of colors: 4,635
- Source: https://commons.wikimedia.org/wiki/File:MediaWiki-2020-logo.svg
- Original filename: 270px-MediaWiki-2020-logo.svg.png
COMPRESSION RESULTS FOR mediawiki-logo.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 0.148s | 25,941 | 9.47% |
optipng -o 7 -strip all | 2.027s | 25,746 | 10.15% |
| oxipng default | 0.046s | 24,632 | 14.04% |
oxipng --opt max | 0.171s | 24,664 | 13.93% |
oxipng --opt max --zopfli --fast -s | 1.376s | 24,016 | 16.19% |
oxipng --opt max --zopfli -s | 2.817s | 24,016 | 16.19% |
| FileOptimizer level 2 (fast) | 31.000s | 24,270 | 15.31% |
| FileOptimizer level 5 (normal) | 19.000s | 24,012 | 16.21% |
| FileOptimizer level 7 (good) | 21.000s | 23,966 | 16.37% |
| FileOptimizer level 9 (best) | 62.000s | 23,888 | 16.64% |
cwebp -lossless | 0.058s | 19,830 | 30.80% |
cwebp -lossless -z 9 | 0.611s | 17,918 | 37.47% |
NOTES
- optipng default and
-o 7compress the same (only difference is the metadata stripped). - oxipng default beats
--opt max. This is not an error. - oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.45 percentage points apart.
- FileOptimizer, optipng
-strip alland oxipng-s(--strip safe) strip 195 bytes of metadata in this image.
powertoys.png
![]()
Screenshot of the Microsoft PowerToys settings window I took on Windows 11 and saved with Paint.NET v5.1.9.
- Filename: powertoys.png
- Original size: 244,630 bytes
- Dimensions: 1230 × 917 pixels
- Number of colors: 18,791
- Original image: powertoys.png
COMPRESSION RESULTS FOR powertoys.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 0.960s | 230,325 | 5.85% |
optipng -o 7 -strip all | 11.832s | 229,640 | 6.13% |
| oxipng default | 0.266s | 201,533 | 17.62% |
oxipng --opt max | 0.725s | 198,008 | 19.06% |
oxipng --opt max --zopfli --fast -s | 8.669s | 194,463 | 20.51% |
oxipng --opt max --zopfli -s | 14.980s | 194,463 | 20.51% |
| FileOptimizer level 2 (fast) | 60.000s | 196,585 | 19.64% |
| FileOptimizer level 5 (normal) | 66.000s | 194,423 | 20.52% |
| FileOptimizer level 7 (good) | 76.000s | 194,178 | 20.62% |
| FileOptimizer level 9 (best) | 185.000s | 193,748 | 20.80% |
cwebp -lossless | 0.178s | 144,246 | 41.04% |
cwebp -lossless -z 9 | 1.703s | 140,090 | 42.73% |
NOTES
- oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.29 percentage points apart.
- optipng
-strip allstrips 280 bytes of metadata in this image. - oxipng
-s(--strip safe) strips 246 bytes of metadata in this image. - FileOptimizer strips 259 bytes of metadata in this image.
pschmidt.png
![]()
Test image created by Paul Schmidt, member of the PNG Development Group. It has 16,777,216 unique colors, which is the maximum number of colors for the most common “full color” PNG format (three 8-bit channels for red, green, and blue).
- Filename: pschmidt.png
- Original size: 59,852 bytes
- Dimensions: 4096 × 4096 pixels
- Number of colors: 16,777,216
- Source: www.libpng.org/pub/png/img_png/16million-pschmidt.png
- Original filename: 16million-pschmidt.png
COMPRESSION RESULTS FOR pschmidt.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 2.509s | 59,591 | 0.44% |
optipng -o 7 -strip all | 32.032s | 59,457 | 0.66% |
| oxipng default | 1.411s | 59,840 | 0.02% |
oxipng --opt max | 2.770s | 57,757 | 3.50% |
oxipng --opt max --zopfli --fast -s | 311.166s | 55,989 | 6.45% |
oxipng --opt max --zopfli -s | 405.053s | 55,989 | 6.45% |
| FileOptimizer level 2 (fast) | 278.000s | 55,825 | 6.73% |
| FileOptimizer level 5 (normal) | 790.000s | 55,746 | 6.86% |
| FileOptimizer level 7 (good) | 1159.000s | 55,691 | 6.95% |
| FileOptimizer level 9 (best) | 6574.000s | 55,362 | 7.50% |
cwebp -lossless | 1.549s | 7,420 | 87.60% |
cwebp -lossless -z 9 | 6.965s | 5,516 | 90.78% |
NOTES
- optipng default beats oxipng default.
- oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 1.05 percentage points apart.
- The cwebp numbers are not errors.
- No program stripped metadata in this image.
radar-chart.png
![]()
Sample radar chart from the Chart.js documentation.
- Filename: radar-chart.png
- Original size: 121,683 bytes
- Dimensions: 800 × 800 pixels
- Number of colors: 2,039
- Source: https://www.chartjs.org/docs/latest/samples/other-charts/radar.html
COMPRESSION RESULTS FOR radar-chart.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 0.543s | 75,918 | 37.61% |
optipng -o 7 -strip all | 5.939s | 75,918 | 37.61% |
| oxipng default | 0.283s | 73,402 | 39.68% |
oxipng --opt max | 1.008s | 71,484 | 41.25% |
oxipng --opt max --zopfli --fast -s | 11.592s | 68,927 | 43.36% |
oxipng --opt max --zopfli -s | 19.313s | 68,927 | 43.36% |
| FileOptimizer level 2 (fast) | 53.000s | 69,148 | 43.18% |
| FileOptimizer level 5 (normal) | 54.000s | 68,924 | 43.36% |
| FileOptimizer level 7 (good) | 70.000s | 68,924 | 43.36% |
| FileOptimizer level 9 (best) | 248.000s | 68,887 | 43.39% |
cwebp -lossless | 0.182s | 58,394 | 52.01% |
cwebp -lossless -z 9 | 1.665s | 44,408 | 63.51% |
NOTES
- optipng default and
-o 7compress the same. - oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.03 percentage points apart.
- No program stripped metadata in this image.
spacefun.png
![]()
The default wallpaper of Debian 6 (Squeeze). I exported it from SVG to PNG with Inkscape v1.4.0.
- Filename: spacefun.png
- Original size: 5,305,726 bytes
- Dimensions: 3840 × 2160 pixels
- Number of colors: 24,501
- Source: packages.debian.org/trixie/desktop-base
- Original filename: /usr/share/desktop-base/spacefun-theme/wallpaper/contents/images/3840x2160.svg
COMPRESSION RESULTS FOR spacefun.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 66.750s | 4,389,224 | 17.27% |
optipng -o 7 -strip all | 645.563s | 3,586,346 | 32.41% |
| oxipng default | 7.958s | 3,267,873 | 38.41% |
oxipng --opt max | 11.882s | 3,270,858 | 38.35% |
oxipng --opt max --zopfli --fast -s | 432.944s | 3,240,254 | 38.93% |
oxipng --opt max --zopfli -s | 636.815s | 3,240,254 | 38.93% |
| FileOptimizer level 2 (fast) | 1156.000s | 3,316,613 | 37.49% |
| FileOptimizer level 5 (normal) | 1470.000s | 3,240,592 | 38.92% |
| FileOptimizer level 7 (good) | 1851.000s | 3,240,592 | 38.92% |
| FileOptimizer level 9 (best) | 2984.000s | 3,234,116 | 39.04% |
cwebp -lossless | 2.778s | 3,534,122 | 33.39% |
cwebp -lossless -z 9 | 21.414s | 3,099,532 | 41.58% |
NOTES
- oxipng default beats
--opt max. This is not an error. - oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.11 percentage points apart.
- optipng
-strip allstrips 58 bytes of metadata in this image. - FileOptimizer and oxipng
-s(--strip safe) strip 37 bytes of metadata in this image.
stripe.com.png
![]()
Screenshot of the Stripe homepage I took in Firefox on Windows 11 using the FireShot extension.
- Filename: stripe.com.png
- Original size: 401,189 bytes
- Dimensions: 1678 × 1274 pixels
- Number of colors: 63,894
- Original image: stripe.com.png
COMPRESSION RESULTS FOR stripe.com.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 3.449s | 387,752 | 3.35% |
optipng -o 7 -strip all | 44.269s | 374,414 | 6.67% |
| oxipng default | 0.878s | 337,233 | 15.94% |
oxipng --opt max | 1.897s | 329,505 | 17.87% |
oxipng --opt max --zopfli --fast -s | 37.574s | 324,339 | 19.16% |
oxipng --opt max --zopfli -s | 73.162s | 324,339 | 19.16% |
| FileOptimizer level 2 (fast) | 141.000s | 326,561 | 18.60% |
| FileOptimizer level 5 (normal) | 165.000s | 323,584 | 19.34% |
| FileOptimizer level 7 (good) | 206.000s | 322,123 | 19.71% |
| FileOptimizer level 9 (best) | 478.000s | 321,437 | 19.88% |
cwebp -lossless | 0.462s | 272,116 | 32.17% |
cwebp -lossless -z 9 | 5.542s | 263,618 | 34.29% |
NOTES
- oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 0.72 percentage points apart.
- No program stripped metadata in this image.
vitejs-logo.png
![]()
The logo of Vite, the frontend build tool.
- Filename: vitejs-logo.png
- Original size: 25,663 bytes
- Dimensions: 487 × 480 pixels
- Number of colors: 2,844
- Source: https://commons.wikimedia.org/wiki/File:Vitejs-logo.svg
- Original filename: 487px-Vitejs-logo.svg.png
COMPRESSION RESULTS FOR vitejs-logo.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 0.147s | 22,750 | 11.35% |
optipng -o 7 -strip all | 2.185s | 22,555 | 12.11% |
| oxipng default | 0.088s | 22,433 | 12.59% |
oxipng --opt max | 0.402s | 22,064 | 14.02% |
oxipng --opt max --zopfli --fast -s | 3.962s | 21,272 | 17.11% |
oxipng --opt max --zopfli -s | 10.676s | 21,272 | 17.11% |
| FileOptimizer level 2 (fast) | 25.000s | 20,408 | 20.48% |
| FileOptimizer level 5 (normal) | 27.000s | 20,175 | 21.38% |
| FileOptimizer level 7 (good) | 36.000s | 20,167 | 21.42% |
| FileOptimizer level 9 (best) | 198.000s | 20,094 | 21.70% |
cwebp -lossless | 0.075s | 19,324 | 24.70% |
cwebp -lossless -z 9 | 1.042s | 16,868 | 34.27% |
NOTES
- optipng default and
-o 7compress the same (only difference is the metadata stripped). - oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 4.59 percentage points apart.
Adding
--alphato oxipng--opt max --zopfli -sgives 20,152 bytes, which is 21.47% reduction and 0.25 points from FileOptimizer. Note that FileOptimizer runs oxipng with--alphain all settings. - FileOptimizer, optipng
-strip alland oxipng-s(--strip safe) strip 195 bytes of metadata in this image.
THE ALPHA CHANNEL
oxipng says this about using --alpha:
“--alpha can improve compression of images with transparency,
by altering the color values of fully transparent pixels. This is generally recommended,
but take care as this is technically a lossy transformation
and may be unsuitable for some specific applications.”
In my tests for this image --alpha improved the size in two of the four configurations:
- When used with
--opt max. - When used with
--opt max --zopfli(but not with--opt max --zopfli --fast).
wsl-logo.png
![]()
The logo of the Windows Subsystem for Linux (WSL).
- Filename: wsl-logo.png
- Original size: 19,038 bytes
- Dimensions: 256 × 256 pixels
- Number of colors: 1,623
- Source: github.com/microsoft/WSL/tree/master/Images
- Original filename: Square44x44Logo.targetsize-256
COMPRESSION RESULTS FOR wsl-logo.png
| Program and settings | Time | Size | Reduction |
|---|---|---|---|
| optipng default | 0.119s | 19,038 | 0.00% |
optipng -o 7 -strip all | 1.935s | 19,038 | 0.00% |
| oxipng default | 0.072s | 17,906 | 5.95% |
oxipng --opt max | 0.155s | 17,018 | 10.61% |
oxipng --opt max --zopfli --fast -s | 2.268s | 16,655 | 12.52% |
oxipng --opt max --zopfli -s | 3.175s | 16,655 | 12.52% |
| FileOptimizer level 2 (fast) | 35.000s | 16,615 | 12.73% |
| FileOptimizer level 5 (normal) | 30.000s | 16,412 | 13.79% |
| FileOptimizer level 7 (good) | 34.000s | 16,394 | 13.89% |
| FileOptimizer level 9 (best) | 73.000s | 16,338 | 14.18% |
cwebp -lossless | 0.049s | 12,980 | 31.82% |
cwebp -lossless -z 9 | 0.597s | 12,544 | 34.11% |
NOTES
- It seems the original was already optimized, probably with optipng.
- oxipng
--opt max --zopflicompresses the same with and without--fast. - oxipng best and FileOptimizer best are 1.66 percentage points apart.
Adding
--alphato oxipng--opt max --zopfli -sgives 16,535 bytes, which is 13.15% reduction and 1.03 points from FileOptimizer. See above about using--alpha. - No program stripped metadata in this image.
In my tests for this image --alpha reduced the size in all four oxipng configurations.
General notes
The full settings for cwebp were -lossless -exact -metadata all, with and without -z 9.
-exact preserves RGB values in transparent areas. -metadata all copies all metadata to the output.
You can view all options for the CLI tools in the file with the hyperfine measurements: op111-20250911-oxipng-hyperfine-data.txt
In FileOptimizer the Copy metadata option for PNG files was always checked.
FileOptimizer always strips some metadata, even when the Copy metadata option is selected,
at least the same amount as oxipng with --strip safe: When Copy metadata is selected,
FileOptimizer runs oxipng with --strip safe. When it is not selected, it runs
oxipng with --strip all.
Another difference is that FileOptimizer always runs oxipng with the --alpha option.
optipng has only one option for stripping metadata: -strip all.
Note that the --strip safe (and its -s shortcut) option in oxipng and -strip all in optipng
do not remove metadata needed for the proper rendering of the image, but they may
remove metadata you want to keep: e.g., software program used to make the
image, who made the image, when the image was last modified, etc.
You can view the metadata the three tools (optipng, oxipng, and FileOptimizer) kept and removed in their various settings in the pngcheck reports: op111-20250911-oxipng-pngcheck-data.zip
Hardware, operating systems, and tools used in the tests
HARDWARE
- AMD Ryzen 7 5700G (8 cores, 16 threads)
- 64 GB RAM (2×32 GB DDR4-3600, dual-channel)
- Samsung 970 EVO Plus NVMe SSD (ext4 partition on Linux, NTFS partition on Windows)
OPERATING SYSTEMS
- Debian 13 (Trixie), kernel 6.12.38
- Windows 11 PRO 26100.4946 (24H2)
COMPRESSION TOOLS
- optipng 0.7.8 (version in Debian 13)
- oxipng 9.1.5 (version in Debian 13)
- FileOptimizer 17.10.2857 for Windows, which uses:
- ECT 0.9.5
- oxipng 9.1.5
- PngOptimizer 2.7
- PNGOUT 2015-02-13
- pngwolf
- pngwolf-zopli 1.1.2
- TruePNG 0.6.2.5
- cwebp 1.5.0 (version in Debian 13)
— Demetris, 2025-09-11
Changelog
- 2025-10-04
- Corrected wrong original size, and reduction percentages, for github.com-repo.png.
- Corrected other smaller inaccuracies.
- Added link to Google Sheets document.
- 2025-09-16
- Added General notes section.
- Ran all optipng and oxipng tests again adding
-strip allfor optipng, and-s(--strip safe) for oxipng. See updated hyperfine file: op111-20250911-oxipng-hyperfine-data.txt. For the metadata the three tools (optipng, oxipng, FileOptimizer) keep and remove in the various settings, see the pngcheck reports: op111-20250911-oxipng-pngcheck-data.zip.