Convert HEIF to BMP

Converting HEIF to BMP writes a plain 24-bit Windows bitmap: no compression, three bytes per pixel, rows bottom to top. It is the right answer only when a program refuses everything else, because a twelve-megapixel photograph becomes about 36.6 MB. Everything happens in this page.

  • Where it runs In your browser. The file is never uploaded.
  • Lossy The colours survive exactly. BMP cannot carry transparency, so anything cut out is filled with the background colour.
  • File size limit Up to 100 MB per file, free, without an account.
  • Worth knowing Transparency is not supported by the target format and is filled with the background colour.

Up to 100 files at once. Mixed formats are fine.

The only good reason to make a BMP in 2026

BMP is a legacy format and this page is not going to pretend otherwise. It has no compression worth the name, no metadata, and no advantage over PNG on any axis a person would care about. Microsoft published it in 1987, the 40-byte header this page writes arrived with Windows 3.0 in 1990, and the world moved on.

What keeps it alive is software that never did. Instrument control panels, kiosk displays, embedded splash screens, firmware image loaders, internal tools compiled once in 2003 and never touched: these read a bitmap because a bitmap is trivial to parse with no library at all. If that is your situation, BMP is not a bad choice, it is the only one, and everything below is about getting the bytes right.

Exactly what this writer puts in the file

A 14-byte file header beginning with the two characters BM, then a 40-byte BITMAPINFOHEADER declaring one colour plane and 24 bits per pixel, then the pixel data. Three bytes per pixel in blue-green-red order, which is the order the specification asks for and not a mistake. Rows are stored bottom to top, which is also the specification.

Each row is padded to a multiple of four bytes. For a width of 4,032 that is 12,096 bytes with no padding needed; for a width of 4,031 it is 12,093 bytes plus three bytes of padding. A parser that assumes rows are contiguous will read every row after the first one skewed, which is the classic failure when somebody writes their own BMP loader.

The size is arithmetic, not an estimate

Because nothing is compressed, you can calculate the output before converting: the padded row length times the height, plus 54 bytes of header. A twelve-megapixel photograph at 4,032 by 3,024 comes to 36,578,304 bytes of pixel data — about 36.6 MB — from a HEIF that was probably two or three.

A factor of fifteen or so is the normal outcome, and it is the reason the maximum-width field matters more here than on almost any other pair. If the software you are feeding displays the picture at 1,024 pixels wide, converting at 1,024 wide gives it what it needs in about 3 MB instead of 36.

No alpha channel, so the fill is a decision

The writer produces 24-bit pixels, so there is no room for transparency. Anything transparent in the source is flattened first and only then encoded, and what it is flattened onto is the background colour above the drop zone. It starts at white; the control was extended to HEIC and HEIF sources in August 2026, having previously been offered only from PNG, WebP and the other formats the site expected to carry alpha.

For a photograph, which is what a .heif file almost always holds, there is nothing to flatten and the point is academic. It matters if the source is an exported graphic with a cut-out, and in that case PNG keeps the transparency and BMP cannot.

Nothing further is lost, and nothing is recovered

Every pixel the HEIF decoder produced is written into the BMP literally, so this direction adds no compression artefacts of its own. In that narrow sense it is a lossless conversion and the file is a faithful record of the decode.

It does not undo anything. The camera compressed the photograph when it wrote the HEIF, and those decisions are baked into the pixels the decoder hands over. A 36 MB bitmap of a 2 MB photograph contains exactly as much picture as the 2 MB did, stored far less cleverly.

Ten bits of source into eight bits of bitmap

HEIF is specified to ten bits per channel and can carry wide colour. A 24-bit BMP holds eight bits per channel and has no concept of a colour space at all — there is nowhere in the header to say what the numbers mean.

So the conversion truncates, and the receiving software will interpret the values as ordinary sRGB because that is the only reasonable default. For the kind of program that requires a BMP this is invariably fine; it is worth knowing only if the picture is a calibrated measurement rather than a photograph.

A format with nowhere to put metadata

The BMP contains no EXIF, no timestamp, no camera model and no GPS coordinates. Two separate reasons converge on that: the conversion decodes to raw pixels and re-encodes, which no metadata block survives, and the format has essentially nowhere to store any of it even if it did.

That is occasionally the whole point. Feeding a picture to a system that will store it, index it or display it publicly, a bitmap is about as inert a container as exists — pixels, dimensions, and nothing that identifies the photographer or the place.

What reads the result

Everything, which is the format's one genuine strength. Microsoft Paint, GIMP and IrfanView all open it, every Windows API since the beginning has understood it, and browsers display it — BMP is one of the few formats here whose browser support is recorded as complete, which makes checking the output as easy as opening it in a tab.

That check is worth doing once per batch. If a picture appears upside down or with its colours swapped in whatever custom software you are feeding, the cause is nearly always a reader that assumes top-to-bottom rows or RGB order, and the file is right.

Converted here, on your machine, without the round trip

The decoder and the bitmap writer both run in the browser tab, so no photograph is uploaded and nothing is queued. That is a practical point for the readers this page is written for, whose files are frequently pictures of a production line, a patient record, a site survey or something else that is not supposed to leave the building.

The free tier takes inputs up to 100 MB, which no HEIF will trouble; the outputs are the large half here. A folder converts with a progress row each, and an "all as ZIP" button appears once two are done — worth using, since uncompressed bitmaps compress well inside a ZIP.

The HEIF stays; the BMP is disposable

There is no way back. This site reads HEIF with libheif under LGPL-3.0 and cannot write the format at all, because that would need an HEVC encoder under a licence a static site cannot satisfy.

Since a bitmap is fifteen times the size and holds strictly less information, the sensible practice is to treat it as output rather than as a copy: generate it for the machine that needs it, use it, delete it, and keep the HEIF, which can produce another one whenever the old software asks again.

If you are writing the reader yourself

A fair number of people converting to BMP are feeding a parser they wrote, because a bitmap is the one image format you can read in thirty lines with no library at all. Three details account for nearly every bug in those thirty lines, and all three are in the file this page produces.

The row stride is the padded length, not the width times three — compute it as the width times three rounded up to a multiple of four, and advance by that between rows. The rows run bottom to top, so the first row in the file is the last row of the picture. The channels are stored blue, green, red, in that order. Get any of the three wrong and the image is skewed, upside down or blue-tinted, and it will look like a corrupted file rather than a wrong assumption.

The case for PNG, made properly

PNG is lossless too, so it discards nothing a bitmap would have kept, and it is a fraction of the size — the same twelve-megapixel picture that becomes 36.6 MB here typically lands under 20 MB as a PNG and often far below that. It also carries an alpha channel and a checksum on every chunk, so a truncated file is detected rather than silently displayed with garbage at the bottom.

The two things BMP has that PNG does not are the reasons to be on this page: the pixel layout is fixed and trivially parseable with no decompression at all, and any software of any age accepts it. If your receiving system is a modern application that merely happens to have BMP in its file dialogue, PNG is the better file. If it is a machine, a firmware image or a program compiled two decades ago, stay here.

How to write a BMP from a HEIF image

  1. Drop the HEIF files here, or click to choose them.
  2. Set the maximum width to whatever the receiving software actually displays.
  3. Download the BMP files, or take them together as a ZIP.

HEIF against BMP: a 2015 codec against a 1987 bitmap

HEIF compared with BMP
HEIFBMP
Full nameHigh Efficiency Image File FormatWindows Bitmap
File extension.heif.bmp, .dib
Media typeimage/heifimage/bmp
CompressionLossy — file size is bought with qualityUncompressed
First published20151987
Published byMPEGMicrosoft
SpecificationISO/IEC 23008-12
LicensingPublished, not standardisedPublished, not standardised
Standing todayCurrentLegacy, still read everywhere
Bit depth108
Colour it can describeYCbCr, wide gamutRGB, indexed palette
Opens in a browserSome browsersEvery browser
Considered insteadJPG, AVIFPNG, TIFF

What is lost

BMP has no alpha channel. A transparent HEIF comes out with those areas filled in — white unless something else is set — and no setting in BMP brings the transparency back.

BMP holds a single still image. An animated HEIF keeps its first frame and loses the rest, so a conversion is a way to take a still out of one, not a way to move it.

HEIF carries up to 10 bits per channel and BMP stores 8. The extra precision is what survives heavy correction without banding, so the conversion is best made after the editing rather than before it.

Opening the result

BMP opens in every current browser. HEIF has narrower browser support than that. If the file is going onto a web page or into a form, that is usually the whole reason for the conversion.

File size and quality

The result is larger than the original and no better. HEIF has already discarded detail, and BMP stores what is left without discarding more — it prevents further loss rather than undoing the first one.

What each format is for

The two are aimed at different work: HEIF at phones and photography, BMP at moving data between programs. That is worth weighing before converting, because the reason one exists is usually the reason the other is awkward.

HEIF is MPEG's format, published in 2015. It records 10 bits per channel.

BMP comes from Microsoft and dates from 1987. Microsoft Paint, GIMP and IrfanView all read it.

BMP was published in 1987 and HEIF in 2015. The older one is generally the safer file to hand to somebody; the newer one usually does the job in fewer bytes.

HEIF to BMP: file size, headers and transparency

Are my HEIF files uploaded anywhere?

No. This conversion runs entirely inside your browser, so the file never leaves your device. You can confirm it yourself: open the network tab of your browser's developer tools and convert something. You will see the page load, plus the analytics and advertising the site is paid for with — and nothing carrying your file. The engine behind this particular pair is libheif, the reference decoder for Apple's HEIC; your browser fetches it once and caches it.

What exactly does the BMP contain?

A 14-byte file header, a 40-byte BITMAPINFOHEADER, and 24-bit pixel data: three bytes per pixel in blue-green-red order, rows stored bottom to top, each row padded to a multiple of four bytes. That is the plain baseline every BMP reader has understood since 1990.

How large will the file be?

Width times three, rounded up to a multiple of four, times the height, plus 54 bytes of header. A twelve-megapixel photograph at 4,032 by 3,024 comes to about 36.6 MB. Nothing is compressed, so the size is arithmetic rather than an estimate.

Does the BMP keep transparency?

No. The writer produces 24-bit pixels with no alpha channel, so anything transparent in the HEIF is flattened before encoding — onto the background colour set above the drop zone, which starts at white.

Is the image quality reduced?

Nothing further is lost — every pixel the HEIF decoder produced is written literally. What the file cannot do is recover what the camera discarded when it compressed the photograph in the first place.

Why does the file claim 72 dpi?

The header records 2,835 pixels per metre, which is 72 dpi. Almost nothing reads the field, but leaving it at zero makes some older viewers refuse the file outright, so a sane value goes in.

Would PNG not be better?

Almost always, yes — it is lossless too and a fraction of the size. BMP is worth choosing only when something downstream insists on it, which is the situation this page assumes you are in.

More about these formats