Home › Guides › Image Compression Test Data: 24 Real Runs

Image Compression Test Data: 24 Real Runs on 8 Images

We took 8 real images — photos, a screenshot, a diagram, a logo, a painting scan and a transparent icon — and ran each through an online image compressor at three file-size targets (2MB, 500KB, 100KB), measuring every byte of output. That’s 24 real runs with exact output sizes, the quality setting the engine chose, and output dimensions. The headline surprise: images already under the target usually got bigger, not smaller.

🔒 Your images never leave your device — 100% private, no uploads.

What we measured, in one paragraph

On 2026-10-16 we ran all 24 combinations (8 images × 3 targets) through CrunchyPic’s exact-size compressor in Chromium on Linux, keeping the page default of JPEG output and the page-default target for each URL. For every run we recorded the exact output file size in bytes, the “You saved X%” figure, the quality percentage the engine settled on, the output dimensions, and an approximate elapsed time. The raw table is below — no cherry-picking, including the runs where “compression” made files larger.

The test set: 8 real images

All eight are verified public-domain or CC0 files from Wikimedia Commons, so anyone can re-download the exact originals and repeat this test. License for each file was verified per-file via the Commons API on 2026-10-16.

IDImageTypeFormatDimensionsOriginal sizeLicense
T01Landscape photoLandscape photoJPEG2048×1536542,714 B (530 KB)Public domain
T02Portrait photoPortrait photoJPEG4000×50516,644,579 B (6.34 MB)Public domain
T03Object / still-life photoObject photoJPEG2000×1588375,265 B (366 KB)Public domain
T04Software screenshotScreenshotPNG793×607172,859 B (169 KB)Public domain
T05Orbit diagramDiagram / graphicPNG1954×1440111,376 B (109 KB)Public domain
T06Wide logoLogoPNG4942×78052,706 B (51 KB)Public domain
T07Painting scanPaintingJPEG1996×1455338,837 B (331 KB)Public domain
T08Transparent iconIcon (transparency)PNG512×51214,227 B (13.9 KB)CC0

Site stats we measured

Context for the test environment, measured 2026-10-16 by direct fetch of the live site (all HTTP 200):

StatValueMethod
Distinct tool pages linked from homepage49Counted single-segment internal paths on crunchypic.com (54 found; excluded /about/, /contact/, /privacy/, /terms/, /guides/)
Tool cards in homepage tools grid32Counted card anchors in homepage HTML
URLs in sitemap.xml62Counted <loc> entries in sitemap.xml
Homepage transfer size46,768 bytescurl download size
/compress-image-to-2mb/ transfer size49,116 bytescurl download size

How the compressor works (documented, not asserted)

We read the engine mechanics from the live page source so every claim about “how it works” is verifiable:

The results: all 24 runs

Format JPEG (page default) on every run; page-default targets untouched. “Output bytes” is the exact size of the downloaded output file. “Saved %”, “Quality” and “Output dims” are as shown in the tool’s result UI. Times are approximate.

ImageTargetOutput bytesSavedQualityOutput dims≈ secNotes
T01 landscape (530 KB)2MB572,4860%90%2048×15363–4Already under target; re-encoded at Q90, grew slightly
T01500KB508,6446%85%2048×1536≈5
T01100KB98,37882%15%2048×15363–4
T02 portrait (6.34 MB)2MB2,075,53169%79%4000×5051≈20
T02500KB492,49093%32%4000×5051≈23
T02100KB98,95099%10%2916×3682≈90Quality hit 10% floor, then engine downscaled 4000×5051→3600×4546→3240×4091→2916×3682
T03 object (366 KB)2MB443,7060%90%2000×1588≈5Already under target; GREW (re-encode at Q90)
T03500KB443,7060%90%2000×1588≈5Same as 2MB run
T03100KB95,20475%24%2000×1588≈2
T04 screenshot (169 KB)2MB176,3800%90%793×607≈2Already under target; grew slightly
T04500KB176,3800%90%793×607≈2Same as 2MB run
T04100KB101,86141%60%793×607≈3
T05 diagram (109 KB)2MB161,8570%90%1954×1440≈4Already under target; GREW 109→158 KB
T05500KB161,8570%90%1954×1440≈3Same as 2MB run
T05100KB100,9999%60%1954×1440≈3
T06 logo (51 KB)2MB72,2130%90%4942×780≈5Already under target; GREW 51.5→70.5 KB
T06500KB72,2130%90%4942×780≈5Same as 2MB run
T06100KB72,2130%90%4942×780≈5Already under target at every level
T07 painting (331 KB)2MB409,5040%90%1996×1455≈6Already under target; GREW 331→400 KB
T07500KB409,5040%90%1996×1455≈5Same as 2MB run
T07100KB98,33171%23%1996×1455≈3
T08 icon (13.9 KB)2MB10,02530%90%512×512≈3Only under-target image that SHRANK
T08500KB10,02530%90%512×512≈2Same as 2MB run
T08100KB10,02530%90%512×512≈2Already under target at every level

Key findings

  1. Under-target images are still re-encoded at JPEG quality 90% — and usually get bigger: T03 366→434 KB, T05 109→158 KB, T06 51.5→70.5 KB, T07 331→400 KB, T04 169→172 KB, T01 530→559 KB. The “You saved” figure floors at 0% — it never goes negative, so the UI won’t tell you the file grew.
  2. Only T08 (a small flat-color icon PNG) shrank while already under target (13.9→9.8 KB, 30% saved). Flat graphics with few colors are the exception.
  3. Dimensions shrink only as a last resort. Quality drops to the 10% floor first; only then does the engine downscale. We observed this exactly once: T02 at the 100KB target, 4000×5051 → 2916×3682 over three ×0.9 steps (taking ~90 seconds).
  4. No errors, CAPTCHAs, or sign-in walls on any of the 24 runs. One UI quirk noted: after “Compress another” plus a new upload, the preview briefly shows the previous run’s data until the new compression completes.

Methodology: reproduce this yourself

  1. Record the date, browser, and machine of your run — results vary slightly by browser canvas encoder.
  2. For each test image (re-download the exact originals from the Wikimedia source links in the test-set table above):
    1. Open the target page: compress-image-to-2mb (target 2MB), compress-image-to-500kb (target 500KB), compress-image-to-100kb (target 100KB).
    2. Keep format = JPEG (default). Do not change the target — the page default matches the URL’s target.
    3. Upload the test image via the dropzone. Start a stopwatch when clicking “Compress”.
    4. When done, record: the “You saved X%!” figure, the “original → compressed” sizes, the quality % shown, the output dimensions shown, and stopwatch seconds.
    5. Download the output file and record its exact byte size (this is the authoritative output size).
    6. Click “Compress another” and repeat.
  3. Do not cherry-pick: run all 24 combinations, including images already smaller than the target — the engine re-encodes them, and that behavior is itself a finding.
  4. Publish the raw table alongside any summary so readers can verify.

Limitations — read before citing

Data recorded 2026-10-16. Test images: public domain / CC0 via Wikimedia Commons (links above).

Test your own images

Run your photos through the same compressor — free, no signup, 100% private.

Compress an image to 100KB

Frequently asked questions

Should I compress an image that’s already under my target size?

No — and our measurements show why. Images already under the target are still re-encoded at JPEG quality 90%, and in 6 of our 7 under-target cases the file got bigger (e.g. a 366 KB photo became 434 KB). If your image already meets the size limit, skip the compressor.

Why did my small PNG get bigger after “compression”?

Because the page default converts to JPEG at quality 90%. JPEG is engineered for photographs; on flat graphics like logos and diagrams the re-encode adds ringing artifacts around sharp edges, which costs bytes instead of saving them. Our logo test image grew from 51.5 KB to 70.5 KB. For graphics, try the PNG output option instead.

When does the tool shrink my image’s dimensions?

Only as a last resort. The engine first drops JPEG quality all the way to a 10% floor; only if the file is still over target does it shrink dimensions by ×0.9 and try again. In 24 runs we saw this happen exactly once — a 6.34 MB portrait squeezed to a 100KB target, which went from 4000×5051 down to 2916×3682.

Will I get the same numbers in a different browser?

Directionally yes, byte-for-byte no. Every browser ships its own JPEG encoder for canvas.toBlob(), so the same quality setting produces slightly different file sizes in Chrome vs Firefox vs Safari. The patterns in our table — under-target growth, quality-before-downscale, the 10% floor — hold everywhere.

Can I reproduce this test?

Yes — that’s the point of publishing the raw table. The eight test images are public-domain/CC0 files on Wikimedia Commons with source links above; the step-by-step methodology is in the “reproduce this yourself” section. If your numbers differ meaningfully, we’d genuinely like to hear about it via the contact page.