If a tool in your pipeline is still producing BMP files in 2026, you're almost certainly paying a tax you don't need to pay. A typical BMP is 10× larger than the equivalent PNG with no quality benefit — both are lossless, but only one applies any compression. This guide walks through what the BMP format actually is, why it still shows up in legacy Windows apps and industrial equipment, the edge cases that trip up naïve converters, and a decision tree for when (if ever) to keep BMP around.
1. What BMP actually is
BMP — short for bitmap, sometimes called DIB for device-independent bitmap — is a raster image format introduced by Microsoft with Windows 3.0 in 1990 and later standardised as part of the ISO/IEC 12087 Image Interchange Facility work. It was designed for a specific job: let Windows applications hand raw pixel data to the graphics subsystem and to the clipboard without any format negotiation. Compression was an afterthought, and the common case remained uncompressed for more than three decades.
The on-disk structure is simple. Every BMP starts with a 14-byte BITMAPFILEHEADER (the "BM" magic bytes, total file size, and a byte offset to the pixel data), followed by a BITMAPINFOHEADER — or one of its longer variants like BITMAPV4HEADER and BITMAPV5HEADER — describing width, height, bit depth, and an optional colour palette. After the header comes the raw pixel array, stored bottom-up by default (the first row on disk is the last row of the image), with each row padded to a 4-byte boundary.
The reason files are huge is that most BMPs use BI_RGB encoding, which is literally a memory dump of the pixel buffer. A 1920×1080 24-bit image is 1920 × 1080 × 3 = 6,220,800 bytes of pixel data, plus a few dozen bytes of header. No run-length coding, no predictor, no entropy step. The trade-off is speed: decoding a BMP is effectively a memcpy, which is why the format survived for so long inside Windows's graphics stack where microseconds mattered.
2. Why BMP is still encountered in 2026
If BMP is this inefficient, why does it still land in your inbox? A few reasons, in roughly decreasing order of how often we see them.
Legacy Windows applications are the single biggest source. Tools written between 1995 and 2010 often default to BMP because the Windows GDI API made it the path of least resistance — SaveBitmap() produces a BMP, and enterprise line-of-business software rarely gets its export pipeline rewritten. We still see medical reporting systems, laboratory information systems, and industrial control panels that emit BMP by default in 2026.
Screen-capture defaults on older tools are another frequent source. Windows Paint saved as BMP by default until Windows 7, and plenty of screenshots captured via legacy macros, embedded systems, or automation tools still arrive in that format. Industrial and scientific imaging equipment — microscopes, machine-vision cameras, thermal imagers, CT workstations — often exports BMP because the vendor wants a format with a trivially-parseable header and no patent concerns. For the same reason, BMP is sometimes the chosen output of test-automation tools that need raw pixel data preserved exactly for image-diffing or OCR pipelines.
3. Why convert to PNG
PNG gives you everything BMP gives you, at a fraction of the size. It's lossless, so the decoded pixel values are bit-identical to the BMP source. It supports the same bit depths you'll find in practice (1, 8, 16, 24, 32 bits per pixel), plus a proper 8-bit alpha channel that BMP only added in the later DIB header versions. And it compresses: a photographic BMP typically shrinks 5–10×, while flat graphics and UI screenshots often shrink 20–30× or more.
Beyond size, PNG wins on compatibility. Every browser, every image library, and every operating system has decoded PNG correctly since the late 1990s. BMP support in modern browsers exists but is patchy — Safari and some mobile browsers render certain BMP variants incorrectly or refuse them entirely — which makes BMP a bad choice for anything that ever touches a web page. PNG also round-trips cleanly through every major editor (Photoshop, GIMP, Affinity, Paint.NET), carries standard metadata (tEXt chunks, ICC profiles, gAMA), and is the canonical format for intermediate editing files in most pipelines.
Use PNG when: you need to archive, share, or display a previously-BMP asset anywhere outside a legacy Windows tool that specifically demands BMP. That covers almost every real situation.
4. File-size comparison on the same image
To give you a concrete anchor, here's what a representative 1920×1080 24-bit image looks like in each format. The BMP is the uncompressed baseline; the others are encoded from the same source pixels.
| Format | Typical size | Relative to BMP | Lossless? |
|---|---|---|---|
| BMP (BI_RGB) | ~6.2 MB | 100% | Yes (uncompressed) |
| PNG (lossless) | ~550 KB – 1.2 MB | ~9–20% | Yes |
| WebP (lossless) | ~420 KB – 900 KB | ~7–15% | Yes |
| JPEG (q=85) | ~320 KB | ~5% | No (lossy) |
Flat UI-style content (screenshots, diagrams, logos) compresses even more aggressively: we regularly see 6 MB BMP screenshots shrink to 80–200 KB as PNG. Photographic content is closer to the lower end of the PNG range above. JPEG is included for reference but is lossy and shouldn't be used as a BMP replacement when exact pixel fidelity matters.
5. Edge cases to watch for
Most BMP → PNG conversions are uneventful, but a few corner cases break naïve tooling. Worth knowing before you batch-convert an archive.
- 16-bit BMP (RGB555 / RGB565): Some older Windows apps and embedded systems produce 16-bit-per-pixel BMPs with 5-5-5 or 5-6-5 channel packing. A correct converter promotes these to 24-bit RGB during decoding and writes a standard 24-bit PNG. A broken one will either garble the colours or silently downsample. Always spot-check the first converted file.
- RLE-compressed BMP variants:
BI_RLE8andBI_RLE4are valid BMP encodings for 8-bit and 4-bit paletted images. They're rare, but when they appear, some lightweight converters fail outright or produce a blank image. Use a converter based on a mature decoder (libpng for output, a proven BMP reader for input) to handle them transparently. - Monochrome (1-bit) DIB: Scanned documents and fax-style output sometimes arrive as 1-bit BMP. PNG supports 1-bit grayscale natively, so a competent converter will preserve the bit depth rather than inflating the file to 8-bit or 24-bit. That matters — a 1-bit A4 scan that should be 40 KB can balloon to 600 KB if promoted unnecessarily.
- Colour palette preservation: 8-bit paletted BMPs carry up to 256 indexed colours. PNG supports the same via the
PLTEchunk with optionaltRNSfor per-index transparency. A good converter preserves the palette; a naïve one promotes the image to RGB, which doubles or triples the resulting PNG size for no visual gain. - Bottom-up vs top-down orientation: BMP rows are stored bottom-up by default, signalled by a positive height in the header. A negative height means top-down. Most converters handle both, but hand-rolled parsers sometimes miss the sign check and produce vertically-flipped output.
Need to convert BMP to PNG right now?
OnlyFormat's BMP to PNG converter runs entirely in your browser — your files never leave your device. It handles 24-bit, 32-bit, 16-bit, 8-bit paletted, and 1-bit monochrome BMP inputs, and preserves palettes where present.
6. Decision tree: when to convert
- BMP file in an archive or shared with a colleague → Convert to PNG. You'll get identical pixels at roughly a tenth of the size.
- BMP output from a screenshot or screen-capture tool → Convert to PNG immediately. There is no scenario where keeping the BMP wins.
- BMP feeding a legacy Windows tool that explicitly requires BMP input → Keep the BMP only for that specific hand-off. Store the canonical copy as PNG and regenerate the BMP on demand if needed.
- BMP from scientific or industrial imaging equipment → Convert to PNG for archival and sharing, but preserve the original BMP alongside it if your downstream analysis tools consume BMP directly. Storage is cheap; regenerating a lost raw capture isn't.
- BMP as an intermediate in a rendering or compositing pipeline → This is the one place uncompressed BMP can still be defensible — zero decode cost inside a tight loop. For any output that leaves the pipeline, convert to PNG at the boundary.
Frequently asked questions
Q. Is BMP really uncompressed?
A. In the overwhelming majority of cases, yes. The default BI_RGB encoding — which is what you get from Microsoft Paint, most screenshot tools, and almost every scientific-imaging export — stores pixel data as raw bytes with no compression at all. The BMP specification does define two compressed variants (BI_RLE8 and BI_RLE4) for 8-bit and 4-bit palette images, but they're rare in the wild today and many modern decoders still treat them as a curiosity. So when people say 'BMP is uncompressed', they're talking about BI_RGB, which is what 99% of BMP files actually use.
Q. Will I lose anything converting BMP to PNG?
A. No. PNG is lossless — the decoded pixel values after a PNG round-trip are bit-identical to the original BMP pixel values, provided the bit depth and colour type map cleanly. For standard 24-bit RGB and 32-bit RGBA BMP files this is trivial. The one area to watch is indexed (paletted) BMPs: a good converter will preserve the palette in a PNG 'PLTE' chunk rather than silently promoting the image to 24-bit RGB, which wastes space. Bit-depth corner cases (16-bit 5-5-5, monochrome 1-bit) are covered in the edge-cases section below.
Q. Why are BMP files so large compared to PNG?
A. Because BMP stores every pixel as raw bytes with no entropy coding. A 1920×1080 24-bit BMP is roughly 6.2 MB regardless of content — even a solid white image takes the same space as a high-frequency photograph. PNG, by contrast, applies per-row filters (Sub, Up, Average, Paeth) to exploit spatial correlation, then runs the result through DEFLATE. On typical content that yields a 5–15× reduction, and on flat UI-style graphics 30× or more is not unusual. Same pixels, very different bytes on disk.
Q. Can I convert BMP back to BMP from PNG?
A. Yes, and since both formats are lossless for standard colour types the round-trip is bit-exact at the pixel level. What you don't get back is any metadata specific to the original BMP container — things like the DIB header version, colour-space hints, or embedded ICC profile variant. For almost every practical use (sending a file to a legacy Windows tool that demands BMP, for example), a PNG → BMP conversion produces a file the downstream app cannot distinguish from the original.
Q. Are there cases where BMP is still preferable?
A. A few narrow ones. Some older industrial cameras, scientific-imaging pipelines, and Windows-era embedded systems require BMP input because their firmware or drivers were written in the 1990s and never updated. A handful of performance-critical pipelines deliberately use BMP because zero-cost decoding (literally memcpy the pixel rows) beats PNG's DEFLATE decompression on CPU-bound workloads with very large images. And for raw intermediate frames inside a compositing tool, uncompressed formats can be marginally faster to write. Outside those contexts, PNG is better on every axis.
References
- Microsoft — BMP File Format Specification (Windows GDI documentation,
BITMAPFILEHEADER/BITMAPINFOHEADER/BITMAPV5HEADER) - ISO/IEC 12087 — Image Processing and Interchange (IPI), Functional specification (DIB / device-independent bitmap interchange)
- W3C Recommendation — Portable Network Graphics (PNG) Specification (3rd edition)
- libpng project — libpng reference library documentation (
libpng.org) - GIMP Developers — BMP plug-in source and documentation (canonical reference BMP decoder, handles RLE, 16-bit, 1-bit, and palette variants)
- MDN Web Docs — Image file type and format guide (BMP browser-support caveats)
About the OnlyFormat Editorial Team
OnlyFormat's editorial team is made up of working web developers and image-workflow engineers who ship file-conversion tooling for a living. Every guide is reviewed against primary sources — W3C/WHATWG specifications, IETF RFCs, MDN Web Docs, ISO/IEC media standards, and the official documentation of libraries we actually use in production (libwebp, libjpeg-turbo, libavif, FFmpeg, pdf-lib). We update articles when standards change so the guidance stays current.
Sources we cite: W3C · WHATWG · MDN Web Docs · IETF RFCs · ISO/IEC · libwebp · libavif · FFmpeg · pdf-lib