What a 24-bit BMP is
BMP is about as simple as an image format gets. A short header describes the dimensions, the color depth, and where the pixel data begins, and then the pixels follow as raw bytes with no compression at all. A 24-bit BMP stores three bytes per pixel, one each for blue, green, and red, in that order, with each row padded out to a multiple of four bytes.
That simplicity is the whole reason the format survives. Anything that can read an image at all can read a 24-bit BMP, including old Windows software, embedded displays, microcontroller toolchains, some scientific instruments, and printing workflows that predate everything else. There is no decoder to go wrong.
The cost is size. Because nothing is compressed, the file is exactly the pixel count times three, plus padding and a small header, every time. A 1920 by 1080 image is around 6 MB as a BMP no matter what it contains, where the same image as a PNG might be a few hundred kilobytes. That is predictable rather than surprising, and predictability is often the point.
- Three bytes per pixel, uncompressed, rows padded to four-byte boundaries
- Readable by almost anything, including very old and very small software
- File size is fixed by dimensions alone, not by image content
What happens to transparency
A 24-bit BMP has no alpha channel. There is nowhere in the format to record that a pixel is partially or fully transparent, so something has to be decided about transparent areas before the pixels are written.
This converter flattens them onto white. The canvas is filled with white first, the PNG is drawn on top, and the resulting composite is what gets encoded. A fully transparent region becomes solid white, and a half-transparent pixel becomes a blend of its own color and white in the same proportion.
That choice is stated plainly rather than hidden, because it matters. A logo with a transparent background will come out on a white rectangle, which is fine on a white page and obvious anywhere else. If you need the logo to sit on a dark background, composite it onto that background in an editor before converting, since the BMP cannot carry the transparency for you.
How the conversion runs and what it verifies
Choose a PNG and it is decoded by the browser, drawn onto a canvas at its natural size, and read back as raw pixel data. The BMP file header, the info header, and the pixel array are then assembled byte by byte in JavaScript, with rows written bottom-up and padded as the format requires.
Before offering the download the tool checks its own output. The header is re-read and compared against the expected dimensions and bit depth, and if anything disagrees you get an error rather than a file that looks fine until something else tries to open it. When the check passes, the panel reports the verified dimensions and the file size in kilobytes.
All of this happens in the browser tab. There is no upload, no server-side conversion, and no copy of your image anywhere else. That suits the common cases here, which tend to be assets for internal tooling, embedded systems, and test fixtures rather than anything public.
- Decoded on a canvas, then the BMP bytes are written directly
- The header is re-read and validated before the download appears
- Everything runs locally, with no upload at any point