An unlikely pairing that makes sense for the web
BMP is a format from the early days of Windows: uncompressed, simple to write, and enormous. AVIF is the newest mainstream image format, derived from the AV1 video codec and designed to squeeze the last bytes out of web images. Nobody keeps a photo library in AVIF, and nobody serves BMPs on a website, but plenty of people have a folder of BMP exports from a scanner, a capture tool or a piece of lab software and need to put those images on a page that loads quickly. That is the job this page does, entirely on your device.
How the conversion runs
The browser decodes the BMP into a bitmap, then a Web Worker draws it to an offscreen canvas, reads the RGBA pixels and passes them to the AV1 encoder compiled to WebAssembly. The encoder is set to effort level 4, a middle setting that trades a little compression efficiency for speed. Even so, AVIF is the slowest encoder on this site by a wide margin. A 1920x1080 frame takes a second or two on a modern laptop; a 12 megapixel scan can take ten seconds or more, and considerably longer on a phone. The delay is purely local computation. Nothing is uploaded and nothing waits on a server.
Colour is stored with 4:2:0 chroma subsampling, meaning the colour channels are kept at half resolution while brightness stays full. For photographs and scans this is invisible. For a BMP screenshot of a spreadsheet with red and blue text on white, small coloured characters can show faint softness at the edges. Alpha is encoded when present, but almost no BMPs carry a usable alpha channel. BMP has no meaningful metadata to lose.
Quality and typical results
The slider runs from 20 to 95 and defaults to 80. AVIF stays clean at lower settings than JPG or WebP would, so 60 to 75 is a good range for photographic content and 80 to 90 for screenshots and diagrams. Going above 90 rarely buys visible improvement and inflates the file.
As a worked example, a 1920x1080 screenshot stored as a 6.2 MB BMP typically becomes 80 to 150 KB at quality 70, compared with roughly 200 to 300 KB as WebP and 350 to 500 KB as JPG at similar visual quality. A 26 MB A4 scan usually lands at 400 to 900 KB at quality 75. A grainy 36 MB camera frame may still end up at 1.5 to 3 MB, because noise is expensive in every codec. Treat these as typical outcomes, not commitments.
Compatibility: check before you commit
AVIF displays in current Chrome, Edge, Firefox and Safari 16 or later. Outside the browser, support is uneven: Windows Photos needs the AV1 Video Extension, older macOS versions cannot preview it, many CMS upload forms still reject the extension, and email clients generally will not render it inline. If the image needs to go anywhere other than a website you control, BMP to WebP gives most of the size benefit with far wider support, and BMP to JPG is the fallback that opens everywhere.
Memory, batches and when to keep the BMP
The full image lives in memory as RGBA during encoding, four bytes per pixel, so a 36 MB BMP needs well over 100 MB of working space including the source and output buffers. Desktops manage this; low-memory phones may fail on the largest files. You can drop several BMPs at once and they are encoded one after another, each downloading separately.
Do not convert a BMP that you will keep editing. AVIF is lossy, and each re-encode compounds the loss. Keep the BMP or a lossless PNG as the master and generate AVIF only for delivery. The guide WebP vs AVIF vs JPEG goes deeper into the trade-offs between the three lossy options.