Method you can reproduce
The test used the five credited product, person, pet, hair and glass photographs in the example library. Each committed source is an 800 × 760 pixel WebP image made from a licensed photograph. The browser decoded that same source into a canvas, then encoded it without resizing. Because the input has already been encoded as WebP, these are not measurements from untouched camera originals.
PNG used the default lossless encoder. JPG, WebP and AVIF were requested at quality settings 0.6, 0.8 and 0.95. The script checked the actual MIME type of every returned blob. A browser returning PNG after an AVIF request was recorded as unsupported, with no byte result attributed to AVIF.
The complete experiment is implemented in the repository’s benchmark script. All values below are raw bytes, not rounded kilobytes. The chart averages the selected rows by summing their byte counts and dividing by the number of source images. It does not weight an image by visual complexity or assign a quality score.
What the result does not establish
A lower byte count is not automatically a better image. Quality controls are encoder-specific, and the same slider value can produce different artifacts. The sample set is small and contains already resized site images. Results can differ with a browser version, source content, dimensions, transparency and encoder implementation.
AVIF output was unavailable in this Chromium test. That does not mean the browser cannot display AVIF. Input decoding and canvas encoding are separate capabilities. The production converter checks its current environment and labels unsupported outputs instead of silently using a different format.
To make a practical choice, export your own source at the dimensions it needs, compare the result at its final display size and check the receiving platform’s accepted formats. Keep a lossless or original master when further edits are likely. Repeated lossy saves can accumulate visible damage without providing a useful reduction in file size.
Download the complete measurement data →
| Sample | Format | Quality request | Actual bytes |
|---|---|---|---|
| product | PNG | Default | 314,434 |
| product | JPEG | 0.6 | 19,563 |
| product | JPEG | 0.8 | 28,421 |
| product | JPEG | 0.95 | 61,054 |
| product | WEBP | 0.6 | 8,836 |
| product | WEBP | 0.8 | 12,830 |
| product | WEBP | 0.95 | 25,848 |
| product | AVIF | 0.6 | Unsupported encoder |
| product | AVIF | 0.8 | Unsupported encoder |
| product | AVIF | 0.95 | Unsupported encoder |
| person | PNG | Default | 699,618 |
| person | JPEG | 0.6 | 37,460 |
| person | JPEG | 0.8 | 58,452 |
| person | JPEG | 0.95 | 126,122 |
| person | WEBP | 0.6 | 22,864 |
| person | WEBP | 0.8 | 38,546 |
| person | WEBP | 0.95 | 76,104 |
| person | AVIF | 0.6 | Unsupported encoder |
| person | AVIF | 0.8 | Unsupported encoder |
| person | AVIF | 0.95 | Unsupported encoder |
| pet | PNG | Default | 1,115,901 |
| pet | JPEG | 0.6 | 78,907 |
| pet | JPEG | 0.8 | 120,472 |
| pet | JPEG | 0.95 | 232,321 |
| pet | WEBP | 0.6 | 64,460 |
| pet | WEBP | 0.8 | 106,340 |
| pet | WEBP | 0.95 | 152,726 |
| pet | AVIF | 0.6 | Unsupported encoder |
| pet | AVIF | 0.8 | Unsupported encoder |
| pet | AVIF | 0.95 | Unsupported encoder |
| hair | PNG | Default | 415,746 |
| hair | JPEG | 0.6 | 23,704 |
| hair | JPEG | 0.8 | 35,957 |
| hair | JPEG | 0.95 | 78,792 |
| hair | WEBP | 0.6 | 12,614 |
| hair | WEBP | 0.8 | 20,620 |
| hair | WEBP | 0.95 | 40,132 |
| hair | AVIF | 0.6 | Unsupported encoder |
| hair | AVIF | 0.8 | Unsupported encoder |
| hair | AVIF | 0.95 | Unsupported encoder |
| glass | PNG | Default | 152,098 |
| glass | JPEG | 0.6 | 14,529 |
| glass | JPEG | 0.8 | 19,257 |
| glass | JPEG | 0.95 | 34,629 |
| glass | WEBP | 0.6 | 6,878 |
| glass | WEBP | 0.8 | 9,578 |
| glass | WEBP | 0.95 | 15,278 |
| glass | AVIF | 0.6 | Unsupported encoder |
| glass | AVIF | 0.8 | Unsupported encoder |
| glass | AVIF | 0.95 | Unsupported encoder |
Sources & method
Last checked: . Official rules can change. Calculated presets are identified separately.
- Local Chromium image encoding experiment. Backdropless. Checked 2026-10-29.
- HTMLCanvasElement.toBlob. MDN Web Docs. Checked 2026-10-29.
- Image file type and format guide. MDN Web Docs. Checked 2026-10-29.