BMP to AVIF converter
Convert BMP images to AVIF format
Bitmap to AVIF is the widest compression gap in the whole image matrix: an entirely uncompressed format on one side and the still-image profile of the AV1 video codec on the other. When it works, a six-megabyte bitmap becomes something in the low hundreds of kilobytes with no visible difference. The caveat is that encoding is done by your browser rather than a bundled codec, and support for writing AVIF from a canvas lags well behind support for reading it. Check that on your own machine first.
Key facts about BMP to AVIF converter
| Encoder | Your browser's own AVIF encoder, reached through canvas.toBlob with the image/avif MIME type. No AV1 library is downloaded by this page. |
|---|---|
| Encoder availability | The real limit. With no AVIF writer, the HTML specification has the canvas fall back to PNG data, so a file named .avif can hold PNG bytes. |
| Typical size delta | With a working encoder, a 1920x1080 bitmap of 6,220,854 bytes commonly lands between 80 KB and 250 KB at quality 90, about half what WebP gives. |
| Quality control | A slider from 30 to 100 in steps of 5, default 90. AVIF holds up far better at low settings than JPG, so 50 is often still acceptable. |
| Encoding speed | The slowest target in this matrix: a large bitmap can take several seconds per file where WebP takes a fraction of one. |
| Transparency | AVIF stores an alpha plane, so a bitmap that decoded with alpha keeps it. Standard 24-bit bitmaps have none and the result is opaque. |
| Colour depth | Eight bits per channel through the canvas, so the 10 and 12-bit AVIF modes are unreachable here. |
| Opens the result | Chrome 85 and later, Firefox 93 and later, Safari 16 and later, Windows 11 with the AV1 extension, macOS Ventura onward. Older Windows and most desktop editors will not. |
What happens to your file
Nothing about this page talks to a server. The bitmap is read through an object URL, decoded by the BMP reader built into your browser, and painted onto a canvas belonging to this tab. The output request goes to canvas.toBlob, a browser API, so the AV1 encoding happens inside the browser process on your own CPU rather than in a cloud transcoder. With no upload there is no queue, no job id and no temporary file on a remote disk.
About this tool
- 1
Select the bitmaps
Drop one or more .bmp files, up to twenty at a time and 500 MB apiece.
- 2
Pick a quality
Start at the default 90. AVIF tolerates aggressive settings well, so try 60 on photographic bitmaps and compare.
- 3
Resize oversized sources
The presets run before the encode, which also cuts encoding time sharply on large scans.
- 4
Convert, then verify the size
Expect this to take longer than other targets. Check that the result is far smaller than the bitmap; a PNG-sized file means your browser fell back.
| Input and output | Takes .bmp only (image/bmp) and returns .avif with the image/avif type; any other extension is refused before decoding. |
|---|---|
| Conversion path | BMP to AVIF runs in three steps: an <img> element decodes the bitmap, 24-bit and 32-bit variants alike; the pixels land on a 2D canvas in this tab; then canvas.toBlob with the image/avif type returns the finished file. |
| Browser support | The bitmap side decodes in every current browser, while writing the AVIF needs a Chromium browser, since Firefox and Safari return PNG bytes under the .avif name. |
| Controls for this pair | A 30 to 100 quality slider (steps of five, default 90) drives the AVIF encode, max-dimension presets from 3840 down to 200 px resize the BMP first, and the strip-metadata toggle is moot on this pair. |
| Batch, caps and naming | Twenty BMP files per run at 500 MB each; one result downloads as a single AVIF, several as converted-avif-files.zip, zipped by JSZip 3.10 in page memory. |
| Device ceiling | The canvas caps it: past roughly 16,384 px a side Chromium refuses the bitmap and iPhone Safari gives up sooner, so an oversized BMP fails before any AVIF bytes exist. |
- Test one small bitmap first to confirm your browser actually writes AVIF, rather than converting a folder into mislabelled PNGs.
- Serve AVIF behind a picture element with a WebP or JPG fallback, since a meaningful share of visitors still cannot decode it.
- For pure interface screenshots the gain over WebP narrows, so the extra encode time may not pay.
- If a 4K bitmap stalls the tab, apply the Full HD preset first; AV1 cost scales with pixel count, not file size.
- AV1 still-image output via the browser encoder
- Quality range 30 to 100, default 90
- Pre-encode resizing to cut AV1 cost
- Twenty bitmaps per run with a local ZIP
- Modernising uncompressed bitmap product shots for a site that already serves AVIF.
- Getting scanner output under an email attachment limit.
- Benchmarking AVIF against WebP on your own source material.
Related tools
View allNeed the opposite? Try AVIF to BMP
Works well with this4
Other AVIF tools12
Updated