How did we test this?
Honest methodology, so you can judge the numbers: we used Python’s Pillow (PIL 10.2.0) to generate three 1200×800 test images — a photo-like gradient with grain and soft shapes, a flat-color graphic with text (like a logo or screenshot), and a mixed photo with a text banner. Each was saved as a PNG baseline (optimize=True), then as JPEG at quality 95, 90, 85, 75, 60 and 40 (optimize=True). File sizes were measured in bytes; PSNR was computed against the PNG original as a sanity check. These are synthetic images, so treat the absolute numbers as illustrating the pattern — your own photos will differ, which is exactly why we built a free tool to test yours.
What does each quality level cost on a photo?
Our photo-like test image weighed 2,170.3 KB as a PNG. Here’s what each JPEG quality level did to it:
| Quality | File size | % of PNG |
|---|---|---|
| PNG (baseline) | 2,170.3 KB | 100% |
| JPEG 95 | 534.7 KB | 24.6% |
| JPEG 90 | 355.1 KB | 16.4% |
| JPEG 85 | 257.9 KB | 11.9% |
| JPEG 75 | 162.4 KB | 7.5% |
| JPEG 60 | 97.2 KB | 4.5% |
| JPEG 40 | 55.7 KB | 2.6% |
The 95→85 step is the headline: roughly half the bytes (534.7 → 257.9 KB) with PSNR essentially flat (26.2 → 25.2 dB) — visually identical at normal viewing distance. Below 60, compression artifacts start becoming visible on most photos.
Why is JPEG terrible for graphics?
Our flat-color graphic with text weighed just 7.7 KB as a PNG. Every JPEG version was bigger — much bigger:
| Quality | File size | % of PNG |
|---|---|---|
| PNG (baseline) | 7.7 KB | 100% |
| JPEG 95 | 45.5 KB | 594% |
| JPEG 85 | 33.7 KB | 441% |
| JPEG 75 | 28.7 KB | 375% |
| JPEG 60 | 24.9 KB | 325% |
| JPEG 40 | 21.0 KB | 274% |
Flat colors and sharp text are PNG’s best case and JPEG’s worst: JPEG invents ringing noise around every sharp edge, so it needs more data to describe a “simple” graphic than PNG does. Rule of thumb confirmed by measurement: logos, text, and screenshots stay PNG — converting them to JPEG bloats the file and blurs the edges. (Use our PNG to JPG converter only for photographic PNGs.)
What about a photo with text on it?
The mixed image (photo + text banner) started at 1,663.9 KB as PNG:
| Quality | File size | % of PNG |
|---|---|---|
| PNG (baseline) | 1,663.9 KB | 100% |
| JPEG 95 | 433.5 KB | 26.1% |
| JPEG 90 | 298.5 KB | 17.9% |
| JPEG 85 | 222.4 KB | 13.4% |
| JPEG 75 | 143.8 KB | 8.6% |
| JPEG 60 | 88.7 KB | 5.3% |
| JPEG 40 | 53.3 KB | 3.2% |
The pattern matches the pure photo almost exactly — the photographic background dominates the byte count, and the overlaid text stayed readable down to quality 75 in our test.
Which quality setting should you actually use?
- Photos for the web: 75–85. That’s the sweet spot our measurements point to. Use 85 when you want a safety margin, 75 when every kilobyte counts.
- Below 60: visible artifacts on most photos — blockiness in skies and gradients. Only for thumbnails or extreme size limits.
- Graphics, logos, text, screenshots: don’t use JPEG at all. Our test says PNG wins by 3–6×.
- The 95→85 step: about 50% smaller with no visible change on photos. If your exporter defaults to 95+, you’re leaving half the bytes on the table.
Try it on your own images
Lab numbers on synthetic images only tell you the pattern — your camera, your grain, your subject. The real test takes ten seconds: drop your photo into our free JPG compressor, slide the quality, and watch the live file size. No signup, and your image never leaves your device. For bulk jobs, the image compressor targets an exact file size automatically.