If you have met a BMP recently, it was probably a surprise — a screenshot from an old tool, an export from a scanner, a file that turned out to be twenty times larger than you expected. BMP is the format that refuses to disappear, and understanding why it is so large explains both its obsolescence and its remaining uses.
BMP stands for bitmap, and the name is literally the design. The file is a map of bits: a short header describing the image’s width, height and colour depth, followed by the pixels themselves, one after another, in order.
Microsoft introduced it with early Windows as the system’s native image format. It did not need to be clever — it needed to be something any program could read and write without a compression library, at a time when both memory and the patience for complex code were in short supply.
That simplicity is the whole story. A BMP can be written by a program that understands nothing about image compression, and read the same way.
A BMP is typically uncompressed. Every pixel occupies its full space in the file, whether or not it is identical to the pixel beside it.
The arithmetic is unforgiving. A 1920 × 1080 image at 24 bits per pixel is 1920 × 1080 × 3 bytes — about 6 MB, every time, regardless of content. A photograph of a crowd and a photograph of a blank white wall produce exactly the same file size.
Compare that with the same image as a JPG at reasonable quality — perhaps 400 KB — or a PNG, which compresses the blank wall down to almost nothing. BMP’s size is not a function of the picture; it is a function of the dimensions alone.
The format does define a run-length encoding mode for low colour depths, but it is rarely used and barely helps on photographic content.
It is lossless. Nothing is thrown away. The pixel you wrote is the pixel you read back, which is also true of PNG and TIFF but not of JPG.
It is trivially simple to process. There is no decompression step. Software can read pixels directly from the file with a handful of lines of code, which still matters in embedded systems, low-level graphics work and anywhere a compression library is unavailable or unwelcome.
Every Windows program opens it. Forty years of compatibility is not nothing.
Older scanner software sometimes defaults to BMP, on the reasonable logic that it is lossless and universally readable — and the unreasonable consequence that a twenty-page scan becomes a gigabyte.
Screenshot and capture utilities from the Windows ecosystem occasionally still write BMP.
Embedded and industrial systems — machine control panels, medical instruments, older point-of-sale terminals — frequently use BMP for interface graphics, because the display code can read pixels straight out of the file.
Game modding and older software assets often use BMP for textures and sprites for the same reason.
Almost always, a BMP should become something else:
Converting BMP to PNG deserves a particular mention because it is the conversion with no downside at all. Both are lossless, so the pixels are identical; PNG simply compresses them. You lose nothing and often save 60–80%.
If you have been handed a BMP, convert it. If a program is producing BMPs, change its output setting. The only reason to keep one is if a specific piece of software demands it — and if that is the case, you already know.