What is BMP, and is it still relevant?
BMP (Bitmap, often "Windows Bitmap") is one of the oldest raster image formats still in active use, designed by IBM and Microsoft for OS/2 and Windows in the late 1980s. It stores pixel data essentially uncompressed: read the header, jump to the offset, and you have raw RGB values in memory order. That simplicity is why it never died.
Modern web work has no reason to ship BMP — it's enormous, unsupported by browsers as <img> source, and outclassed by everything else. But you'll still encounter it whenever you cross a boundary into older or resource-constrained systems: Windows icon authoring, some third-party CAD tool, an industrial camera pipeline, a kiosk firmware that only knows BMP. For those, conversion beats fighting the toolchain.
What format flavor does this tool produce?
We emit BMP v3 with a BITMAPINFOHEADER, 24 bits per pixel, BI_RGB (uncompressed), bottom-up row order, rows padded to a 4-byte boundary. This is the most universally compatible BMP variant — readable by every BMP decoder from Windows 95 onward, including the strict parsers in legacy industrial software.
Specifically NOT produced: 32-bit BMP with alpha (incomplete decoder support), top-down BMPs (rejected by some legacy parsers), V4/V5 headers (overkill for the use case), compressed BMPs (RLE4/RLE8 are 8-bit indexed and not a drop-in replacement for true color). If you specifically need one of those variants, you need a dedicated image-prep tool — this is the lowest-common-denominator BMP.
How to use this tool
- Drop your
.pngfile onto the drop zone above. - The browser decodes the PNG into a canvas. Any transparent pixels are flattened onto white during the BMP encoding step.
- Pixels are read out of the canvas, swizzled from RGBA to BGR, padded per BMP's row rules, and assembled into the final BMP byte stream.
- Click Download. The widget shows the new file size; expect 5–20× the PNG because BMP is uncompressed.
Performance notes for large images
BMP encoding is computationally trivial — just memory shuffling — but for very large images the output Blob can exceed your browser's per-tab memory limit on mobile. A 4000×3000 BMP is 36 MB. If the conversion fails on a phone, try desktop or downscale the image first with our image resizer.
Maximum supported input is 20 MB of PNG. Past that, the decoded canvas alone consumes hundreds of MB of RAM and the encode usually stalls. The Tier 2 image-resizer tool (also on this site) is the recommended first step for very large source images.