BMP image file format

BMP File Format Guide: Windows Bitmap

Published on March 16, 2025 • Updated January 23, 2026

Every few months, someone sends me a BMP file. It lands in my inbox like an artifact from 1995, weighing in at 8 megabytes for what turns out to be a perfectly ordinary photograph. I convert it to JPEG, the file drops to 200KB, and I move on with my life. But then I wonder: who’s still saving images as BMP? And why?

The answer, it turns out, is more people than you’d think. BMP is the cockroach of image formats. It’s survived three decades of better alternatives, and it’s not going anywhere.

The Format That Refuses to Die

Microsoft created BMP (Bitmap Image File) in the early 1990s for Windows, and its original pitch was simplicity. Every pixel gets stored exactly as-is. No compression, no fancy algorithms, no surprises. You put pixel data in, you get pixel data out. That’s it.

This sounds reasonable until you realize what “no compression” actually means in practice. A 1000x1000 pixel photo at 24-bit color? That’s roughly 3 megabytes for an image that JPEG would handle in about 150KB. You’re storing raw pixel data the way a hard drive in 1993 understood it, and modern formats have gotten dramatically better at this particular problem.

So why does BMP persist? Partly inertia. Windows still treats it as a native format. Old industrial equipment and embedded systems still expect it. And programmers learning about image formats often start with BMP because the file structure is so straightforward that you can parse it in an afternoon.

What’s Actually Inside a BMP File

I won’t bore you with a byte-by-byte breakdown, but understanding the basic structure explains why BMP behaves the way it does.

A BMP file has four parts. First comes a tiny 14-byte file header that basically says “hey, I’m a BMP file, and here’s how big I am.” Then there’s a DIB (Device Independent Bitmap) header, at least 40 bytes, that describes the image dimensions, color depth, and whether any compression is used. If the image uses indexed colors (256 or fewer), there’s a color table mapping index values to actual RGB colors. And finally, the pixel array—the actual image data, row by row.

Here’s the weird part that trips people up: BMP stores its rows bottom-to-top by default. The first row of pixel data in the file is the bottom row of the image on screen. There’s a historical reason involving how CRT monitors drew scanlines, but it catches developers off guard the first time they try to read BMP data manually.

Each row also gets padded to a multiple of 4 bytes. So if your image is 3 pixels wide at 24-bit color, that’s 9 bytes of actual data per row, padded to 12. This padding is easy to forget when parsing, and forgetting it produces wonderfully mangled-looking images with a characteristic diagonal shear.

The Color Depth Situation

BMP supports everything from monochrome (1 bit per pixel, just black and white) all the way up to 32-bit color with an alpha channel for transparency. In practice, you’ll mostly encounter 24-bit BMP files in the wild. The 32-bit variant technically supports transparency, but that support is inconsistent enough across applications that I wouldn’t rely on it. If you need transparency, you want PNG. Full stop.

The 8-bit indexed mode is interesting for a different reason: it limits you to 256 colors, which sounds terrible until you remember that early Windows GUIs were designed around this constraint. System icons, toolbar buttons, dialog graphics—all of it ran on 256-color palettes, and BMP was the format that held it all together.

Who Actually Uses BMP in 2026

Here’s where things get more nuanced than “nobody should use BMP.” There are genuine reasons this format survives.

Legacy Windows development is the big one. If you’re maintaining software that was built in the Win32 API era, you’re working with BMP whether you like it or not. System resources, dialog boxes, toolbar icons—they were all BMP, and migrating them to PNG means touching code that’s been stable for twenty years. Most teams don’t bother.

Embedded systems and industrial equipment are another pocket of BMP holdouts. I’ve seen factory floor software that ingests BMP files from cameras connected to inspection systems. The processing pipeline was written when BMP was the reasonable default, and nobody’s going to rewrite firmware for a machine that stamps out car parts just to support a newer image format.

Programming education is a surprisingly valid use case. If you’re teaching someone how image files work at a fundamental level, BMP is perfect. The format is simple enough that a student can write a parser in C over a weekend. Try doing that with PNG’s DEFLATE compression or JPEG’s discrete cosine transforms—you’ll lose the class by Tuesday.

And then there’s the catch-all: anyone who accidentally saves as BMP. Microsoft Paint defaults to BMP in certain situations, and I’ve seen plenty of non-technical users generate enormous BMP files without understanding why their image is 15 megabytes. They email it, it clogs the recipient’s inbox, and everyone’s confused.

When BMP Is the Wrong Choice (Which Is Most of the Time)

Don’t put BMP files on a website. I shouldn’t have to say this, but I’ve seen it happen. A 3MB BMP image where a 150KB JPEG would do the same job? Your visitors on mobile connections will leave before the page finishes loading. Browsers do technically render BMP, but there’s zero advantage to serving it over JPEG, PNG, or WebP.

Don’t email BMP files. A 10-megapixel photo saved as 24-bit BMP is roughly 30 megabytes. Most email providers will reject that attachment outright, and even if it goes through, you’re wasting everyone’s bandwidth for no quality benefit.

Don’t use BMP for photography archives. If you want lossless storage, PNG gives you the same pixel-perfect quality at a fraction of the file size. If you’re in professional publishing, TIFF has everything BMP offers plus layers, metadata, multiple compression options, and cross-platform support. BMP is the worst option for any scenario where disk space matters.

How BMP Stacks Up Against the Alternatives

Rather than give you five identical comparison grids, let me explain the tradeoffs in a way that’s actually useful.

PNG is what BMP should have evolved into. It’s lossless just like BMP—every pixel comes back exactly as stored. But PNG uses DEFLATE compression, which typically shrinks files by 50-70% compared to BMP with zero quality loss. PNG also handles transparency properly through a full alpha channel, and it works everywhere: browsers, phones, design software, you name it. There’s essentially no modern scenario where BMP beats PNG. If someone hands you a BMP and says “but I need lossless quality,” the answer is PNG.

JPEG solves a different problem. It uses lossy compression, meaning some data gets thrown away to make files much smaller. A photograph that’s 3MB as a BMP might be 100-200KB as a JPEG at 80% quality, and the visual difference is often imperceptible. The tradeoff is that JPEG doesn’t do transparency at all, and it’s not great for sharp-edged graphics like text or logos (you’ll see artifacts around hard edges). For photographs and complex imagery, JPEG or its newer cousin WebP is what you want.

TIFF occupies the space BMP wishes it did. Professional photographers and print shops use TIFF because it offers lossless compression, multiple pages in a single file, rich metadata, layer support, and cross-platform compatibility. If someone argues they need BMP for “professional quality,” they almost certainly need TIFF instead. (Our TIFF format guide covers exactly when and why TIFF is the right choice.)

WebP is where the web has landed. Google developed it, every modern browser supports it, and it handles both lossy and lossless compression better than JPEG and PNG respectively. A photo that’s 3MB as BMP and 150KB as JPEG might be 80-120KB as WebP at equivalent quality. For anything destined for a website, WebP is the current best answer.

The Numbers Tell the Story

To put the file size difference in perspective: take a standard 1000x1000 pixel photograph at 24-bit color. As an uncompressed BMP, that’s about 3MB. PNG brings it down to roughly 1-2MB depending on the image content. JPEG at 80% quality lands around 100-200KB. WebP at the same quality? Often 80-150KB. You’re looking at a 20-40x difference between BMP and WebP for what looks like the same image on screen.

Getting Rid of Your BMP Files

If you’ve got a folder full of BMP files—maybe exported from an old system, or generated by legacy software, or saved by a coworker who doesn’t know better—converting them is straightforward.

For a handful of files, any image editor will do the job. Open in Paint, Photoshop, GIMP, or Preview on Mac, then save as PNG (for lossless) or JPEG (for smaller photos). Our BMP conversion guide walks through every conversion path in detail, including bulk workflows for large archives.

For dozens or hundreds of files, batch conversion saves you from the mind-numbing repetition of opening-saving-closing one file at a time. BulkImagePro handles this well: drag in your BMP files, pick your target format, and let it process the whole batch. If you’re comfortable with command-line tools, ImageMagick can convert entire directories with a single command.

The conversion from BMP to PNG is completely lossless—you lose nothing. Converting to JPEG or WebP involves some quality loss from compression, but at 80-85% quality settings, the difference is invisible for photographs. You’ll wonder why the files were ever BMP in the first place.

FAQ

Why does BMP still exist?

Mostly inertia and backward compatibility. Windows has supported BMP natively since the beginning, and there’s a long tail of legacy software, embedded systems, and industrial equipment that still expects it. Microsoft isn’t going to break backward compatibility by dropping BMP support, so it’ll keep working indefinitely. It’s also genuinely useful for teaching image processing fundamentals because the format is simple enough to parse by hand.

Can BMP files have transparency?

Technically yes—32-bit BMP files include an alpha channel. In practice, support is wildly inconsistent across applications. Some programs will read the alpha data, others will ignore it entirely, and you’ll spend more time debugging transparency issues than you would just switching to PNG. If your image needs transparency, use PNG. Don’t even consider BMP for this.

Are BMP files lossless?

Yes, completely. An uncompressed BMP stores every single pixel exactly as specified. Even BMP’s optional RLE (Run-Length Encoding) compression is lossless—it just reduces file size by encoding repeated pixel values more efficiently. But the compression savings from RLE are modest compared to what PNG achieves, so there’s still little reason to choose BMP over PNG for lossless storage.

Should I use BMP for my website?

Absolutely not. A single uncompressed BMP could be larger than all the other images on your page combined. Modern formats like WebP, JPEG, and PNG deliver the same visual quality at a tiny fraction of the file size. Your visitors would be downloading megabytes of unnecessary data, your page speed scores would tank, and search engines would notice. Convert to WebP or JPEG before uploading anything to the web.

Can I reduce BMP file size?

BMP supports optional RLE compression, but the reduction is minimal for photographs—it works best on images with large areas of solid color. The real answer is to convert to a modern format. PNG gives you lossless quality at dramatically smaller file sizes. JPEG and WebP give you even smaller files with quality loss that’s usually invisible. There’s no practical way to make BMP files competitive on size without leaving the format entirely.

What software opens BMP files?

Pretty much everything. Windows Photo Viewer, Paint, Paint 3D, Photoshop, GIMP, Affinity Photo, Preview on macOS, and basically every image viewer built in the last thirty years. BMP is so ubiquitous that lack of software support is genuinely never the problem. The problem is always file size.


Need to convert BMP files to web-friendly formats? Try BulkImagePro — batch convert your images to JPEG, PNG, or WebP. Process up to 50 files at once. For a broader look at choosing the right target format for any conversion, see our image format conversion guide.

Ready to optimize your images?

Try our free bulk image tools - compress, resize, crop, and convert images in seconds.