Tech

Why BMP Is So Large: How the File Is Built Inside

A solid white square and a complex photograph of the same dimensions weigh exactly the same in BMP. Sounds odd? In fact this captures the whole essence of the format. Let's dissect a BMP file byte by byte, derive a simple formula for its weight, and see why an uncompressed format physically cannot be light.

A vintage Commodore computer with green graphics — hardware for which BMP's simplicity was an advantage
BMP is heavy not by mistake but by design: it stores every pixel honestly and head-on. Photo: Pexels

The root cause: zero compression

To understand BMP's weight, you need one idea: a plain BMP does not compress the image at all. Most modern formats look for patterns — repeated colors, smooth gradients, identical regions — and store them compactly. BMP does none of that. It takes every pixel and simply writes its color into the file, one after another, like a long ribbon of numbers.

From this follows a counterintuitive conclusion: BMP's weight does not depend on what is drawn in the picture. An empty white sheet and a detailed photograph at the same resolution take up exactly the same space. The format sees no difference between a "simple" and a "complex" image — it stores every pixel's bytes either way.

The key idea

In BMP the file size is determined only by resolution and color depth. Content plays no role. That is why the format is predictably heavy: the more pixels, the linearly more bytes.

The anatomy of a BMP file

A BMP file consists of four blocks in a strict order. The first three are tiny housekeeping; all the weight sits in the fourth.

File header
14 bytes
DIB header
40 bytes (usually)
Palette
0 bytes (for truecolor)
Pixels
99.9% of the file

In more detail:

  • File header (14 bytes) — begins with the BM signature, stores the total file size and the offset to where the pixels begin.
  • DIB header (40 bytes) — this is the BITMAPINFOHEADER: width, height, color depth, resolution and compression type.
  • Palette — needed only by images with few colors (1, 4, 8 bits). A full-color 24-bit BMP simply has none.
  • Pixel data — the picture itself. This is where the tens of megabytes live.

So the housekeeping part of a full-color BMP is just 54 bytes. Against a 36-megabyte file that is vanishingly small. All the weight comes from the pixels.

A person holding a heavy vintage all-in-one computer — a metaphor for the weight of the BMP format
BMP's weight is easy to feel literally: the format carries every pixel and throws away nothing. Photo: Pexels

The size formula: count it yourself

Since only the pixels create weight, it is easy to calculate in advance. The base formula for an uncompressed BMP:

Size ≈ Width × Height × (Bits per pixel ÷ 8)

Dividing by 8 converts bits into bytes. For the most common case — 24-bit truecolor — every pixel takes 3 bytes (one each for blue, green and red). So the formula simplifies to Width × Height × 3. Add 54 bytes of headers and you know the file size before it is even saved.

A quick estimate

To estimate a 24-bit BMP's weight in megabytes, multiply the megapixel count by 3. A 12 MP camera → ≈36 MB. A 2 MP screen (Full HD) → ≈6 MB. Simple, and it always works.

Examples at real resolutions

Let's plug familiar image sizes into the formula (24-bit BMP):

ResolutionPixelsBMP sizeJPG for comparison
640×4800.3 MP~0.9 MB~60 KB
1280×720 (HD)0.9 MP~2.6 MB~150 KB
1920×1080 (Full HD)2.1 MP~6 MB~400 KB
4000×3000 (12 MP)12 MP~36 MB~3 MB
6000×4000 (24 MP)24 MP~72 MB~6 MB

The pattern is clear: BMP's weight grows linearly with the pixel count and on average is 10–15 times that of JPG. Double the resolution on both sides and the file quadruples. The format has no compression to cushion the growth.

3 bytesper pixel (24-bit)
54 bytesall truecolor headers
×4growth when sides double

Row padding: the hidden bytes

BMP also has a small "hidden tax" on weight. The format requires every row of pixels to occupy a number of bytes that is a multiple of 4. If a row falls short of a round number, zero-filler bytes are added to the end.

Why? It lets the processor read data from memory faster — it handles 4-byte blocks more efficiently. Again, the same philosophy: sacrifice space for speed. On wide images the addition is negligible, but on narrow strips it can noticeably inflate the file relative to its "clean" content.

Retro computers with colorful pixel graphics — each dot on the screen is stored separately in BMP
Every dot of a screen like this is a set of separate bytes in a BMP. Hence the weight. Photo: Pexels

Why PNG and JPG are lighter

Now that you know BMP's nature, the trick of its rivals is easy to grasp:

  • PNG looks for repeats and smooth gradients and encodes them compactly — with zero loss. That white square in PNG weighs a few kilobytes, because the format understands "everything here is the same."
  • JPG goes further: it splits the photo into blocks and discards the small details the eye barely notices. This is lossy compression, but the weight drops by tens of times.

BMP does neither. It is not "bad" — it is simply from an era when compression was expensive and simplicity was valued over compactness. Today the priorities are the opposite, so BMP is almost always worth converting. More on their differences in our article BMP vs PNG and JPG.

How to beat the weight

Since BMP's weight is baked into its very nature, the only way to reduce it is to move the image into a format that can compress. It takes a couple of seconds and needs no software.

1

Upload the BMP

Drag your heavy .bmp into an online converter.

2

Pick PNG or JPG

PNG — lossless for graphics, JPG — smallest size for photos.

3

Download the light file

The same pixels, but many times fewer bytes.

Turn a heavy BMP into a light file

The free FormatZ converter compresses your BMP with no quality loss, right in your browser — no install, no sign-up.

Convert BMP to PNG

For photos, converting BMP to JPG is even more efficient. Want to know where an uncompressed format is still appropriate? Read where BMP is used today, or start with the basics — what BMP is. All conversions are on the all formats page.

BMP does not compress the image: it writes the color of every pixel directly. The file size equals width × height × bytes per pixel plus a small header. So the weight depends only on resolution and color depth, not on the picture's content.
For a 24-bit BMP the rough formula is width × height × 3 bytes. For example, a 1920×1080 image takes about 6 MB, and 4000×3000 about 36 MB. Add 54 bytes of headers and a little row padding.
Almost not. A solid white square and a complex photo at the same resolution weigh the same in an uncompressed BMP, because every pixel's bytes are stored regardless. In PNG and JPG the solid image would be much lighter.
In BMP each row of pixels is padded with zeros to a length that is a multiple of 4 bytes, which speeds up reading in memory. For narrow images this padding slightly increases the final file size.
Convert it to a compressed format. PNG reduces the weight with no quality loss; JPG reduces it even more thanks to lossy compression. You can do it in seconds with the FormatZ online converter.