What a browser's canvas JPEG encoder writes
A page can hand the browser a picture and a quality number. What comes back is the browser's choice. This is a dated record of those choices, read out of the bytes.
Convert a PNGHow it was measured
The test picture from the quality-and-chroma note (800 × 400 px: a red heading, grey text and a grainy colour gradient) was drawn onto a canvas and written with the standard convertToBlob({ type: "image/jpeg", quality }) call at ten settings. Each file's headers were then read: the frame header for the colour sampling and frame type, and the APP2 segments for an ICC colour profile.
Chromium 153 on Linux — 31 October 2026
| Quality | Size | Colour sampling |
|---|---|---|
| 50 | 12.0 KB | 4:2:0 |
| 60 | 14.0 KB | 4:2:0 |
| 75 | 19.7 KB | 4:2:0 |
| 80 | 23.2 KB | 4:2:0 |
| 86 | 29.9 KB | 4:2:0 |
| 90 | 37.5 KB | 4:2:0 |
| 92 | 43.2 KB | 4:2:0 |
| 95 | 61.8 KB | 4:2:0 |
| 98 | 98.1 KB | 4:2:0 |
| 100 | 259.1 KB | 4:4:4 |
- Every file was baseline (not progressive) and carried an sRGB ICC colour profile.
- Colour was halved (4:2:0) at every setting below 100, and kept at full resolution (4:4:4) only at 100.
- Browser build 153.0.8010.12, headless, as run by an automated test; desktop Chrome on Linux is built from the same encoder code, but other platforms have not been measured here.
1 KB is 1,024 bytes.
Other browsers
Not measured yet, so not listed. Rows are added with their own date when they are. Until then, the converter's Output tab tells you what your own browser wrote: the receipt reads the sampling, the frame type and the colour profile back out of the file you are about to save.


