FreeToolkit/ benchmark

Image format size benchmark: 20 real photographs, four encodings

Measured 2026-10-26 · 20 source photographs · same pixels, four encoders · no resizing

Every "compress your images" article quotes the same folklore numbers. This page is a measurement instead. We took 20 real photographs — gradients, textures, fine noise, smooth skies — and encoded each one four ways at full resolution, then recorded the byte size. The script and the raw JSON are in the repository, so you can reproduce it.

PNG (lossless)259.2 KB
JPEG q8036.4 KB
JPEG q6024.1 KB
WebP q8016.0 KB

What the numbers say

Per-image results

SourcePixelsPNGJPEG q80JPEG q60WebP q80WebP vs PNG
bg_1000.jpg2560×1440294 KB39 KB26 KB18 KB94%
bg_1001.jpg2560×1440211 KB39 KB26 KB15 KB93%
bg_1002.jpg2560×1440224 KB36 KB25 KB16 KB93%
bg_1003.jpg2560×1440150 KB30 KB23 KB13 KB91%
bg_1004.jpg2560×1440245 KB38 KB25 KB17 KB93%
bg_1005.jpg2560×1440249 KB37 KB26 KB16 KB94%
bg_1006.jpg2560×1440277 KB39 KB26 KB19 KB93%
bg_1007.jpg2560×1440350 KB43 KB27 KB19 KB94%
bg_1008.jpg2560×1440237 KB36 KB25 KB16 KB93%
bg_1009.jpg2560×1440300 KB39 KB26 KB18 KB94%
bg_1010.jpg2560×1440329 KB40 KB26 KB19 KB94%
bg_1011.jpg2560×1440246 KB37 KB25 KB17 KB93%
aurora_2000.jpg1170×2532272 KB35 KB22 KB15 KB95%
bloom_2002.jpg1170×2532218 KB28 KB20 KB13 KB94%
ember_2007.jpg1170×2532268 KB32 KB21 KB14 KB95%
metal_2001.jpg1170×2532263 KB36 KB22 KB16 KB94%
mint_2006.jpg1170×2532225 KB33 KB21 KB13 KB94%
ocean_2003.jpg1170×2532286 KB35 KB22 KB15 KB95%
sand_2004.jpg1170×2532306 KB38 KB24 KB14 KB95%
violet_2005.jpg1170×2532232 KB36 KB22 KB16 KB93%

Averages across all 20 images: PNG 259.2 KB · JPEG q80 36.4 KB · JPEG q60 24.1 KB · WebP q80 16.0 KB.

How to reproduce

python3 tools/bench.py --input photos/ --json out.json

Each image is opened with Pillow, converted to RGB, and saved four times in memory: PNG with optimize=True, JPEG with quality=80 and quality=60 (both optimize=True), and WebP with quality=80, method=6. No resizing, no metadata stripping beyond what Pillow does by default. The JSON on this page is the direct output.

Convert your own images

The converter runs entirely in your browser — the file never leaves your machine, which is why there is no upload limit and no queue.

Open the image converter →