Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
Converting HEIC to BMP produces an uncompressed 24-bit Windows bitmap from an iPhone photograph, which is what an old desktop program wants when its import dialogue has never heard of HEIC. Expect around 36 MB from a 12-megapixel frame, and read the note on PNG before you commit a folder to it.
Up to 100 files at once. Mixed formats are fine.
They convert one after another and download together as a ZIP.
HEIC to BMP
Nobody chooses BMP. The searches that land here come from a file dialogue: a stock control system, a warehouse label printer, an ID badge suite, a microscope or gauge camera utility, a knitting or embroidery design package, or something a contractor wrote in Visual Basic in 2003 and nobody has touched since. The list of extensions it offers was written when JPEG was new, and BMP is on it because BMP has been on every such list since Windows 3.0.
That is the whole reason for this page. If the program will take a PNG, take the PNG route and stop reading — it is the same pixels in a third of the space. If the list really does stop at BMP, JPG and TIF, then BMP is the option that does not compress your photograph a second time, and the rest of this page is about what that costs.
A BMP is a header followed by pixels. Fifty-four bytes describe the width, the height and the colour depth, and everything after that is the picture, in order. A program can read one without any library at all, which is why the format has outlived four decades of Windows and why every ancient importer supports it.
HEIC is the opposite kind of thing. It is an ISO base media container — the same box-and-atom structure as an MP4 — holding image data compressed with HEVC, the video codec. Opening one means shipping an HEVC decoder and dealing with the patent pool behind it, which is why support arrived late even in Microsoft’s own products and never arrived at all in the long tail of small desktop software. The gap is not laziness; it is a genuine dependency that a bitmap does not have.
Three bytes per pixel, one row after another, each row padded up to a multiple of four bytes, plus 54 bytes of header. A 12-megapixel iPhone photograph at 4,032 by 3,024 needs 12,096 bytes a row, which is already a multiple of four, so it comes to 36,578,304 bytes of pixel data and 36,578,358 bytes in total — 36.6 MB. The HEIC it came from was very likely between 1.5 and 2.5 MB.
That factor of roughly twenty is the point of the format and the price of it. A 48-megapixel frame from an iPhone 14 Pro or later, 8,064 by 6,048, lands near 146 MB. Anything at that size will move slowly through a program that was expecting a scanned form, and some older importers have their own limits well below it — which is the argument for setting a maximum width during the conversion rather than discovering the ceiling afterwards.
A 14-byte file header, a 40-byte BITMAPINFOHEADER, then the pixels: 24 bits each, blue before green before red, rows running bottom to top. All three of those look like mistakes and all three are in the specification — BMP was designed around how a display adapter of the period wanted to be fed, and the layout never changed.
Both resolution fields are written as 2,835 pixels per metre, which is 72 dpi. Nothing much reads them, but a zero there makes some older viewers reject the file outright, so a real number goes in. There is no colour table, no compression field in use and no ICC profile, because the format as written here has nowhere to put one.
A HEIC file can hold ten bits per channel and your iPhone uses that headroom, particularly in the smooth gradients where eight bits show their steps — a clear sky, a wall lit from one side, skin in soft light. The bitmap written here is eight bits per channel, so those extra levels are quantised away on the way through.
On a photograph destined for a label printer or a measurement tool this is invisible and irrelevant. It matters only if the receiving program is going to stretch the tones a long way, because banding that was not visible in the source can become visible once the range is pulled apart. If that is the job, keep the HEIC as well; the eight-bit bitmap is the copy you feed the machine, not the copy you edit.
An iPhone tags its photographs with the Display P3 colour space, which is noticeably wider than sRGB in saturated reds and greens. A BMP has no field for a colour profile, so that tag does not travel, and whatever reads the file will treat the numbers as sRGB.
In practice the result is slightly muted saturated colour rather than anything dramatic, and most industrial or utility software would have ignored a profile anyway. If exact colour matters — matching a product to a swatch, for instance — this route is the wrong one, and a format that carries a profile should be used instead.
HEIC can carry an alpha channel, and a few iPhone-adjacent workflows produce one. The bitmap cannot: the writer here emits 24 bits per pixel with no alpha, so anything transparent is composited before the pixels are written, onto the background colour set above the drop zone, which starts at white.
For an ordinary camera photograph there is nothing transparent to fill and the control is academic. If you have a HEIC with a genuine cut-out and need a specific colour behind it, set that colour before converting rather than relying on the white default — or convert to PNG instead, which keeps the transparency rather than asking you to settle it with one colour.
The maximum width setting is the one control on this pair that changes the outcome by an order of magnitude, because the file size is directly proportional to the pixel count. Cutting 4,032 pixels to 1,024 takes the 36.6 MB result down to about 2.4 MB, and for a badge, a label, a parts catalogue entry or a form attachment that is more than enough resolution.
Decide the number from what the program does with the picture rather than from the phone’s output. A photograph shown at 300 pixels on a screen does not benefit from 4,032, and a bitmap is the one format where every unused pixel is paid for in full, every time the file is opened or copied.
Drop the whole selection rather than one file at a time. Each is decoded and written separately with its own progress, and the finished bitmaps can be taken together as a single ZIP, which also happens to be the sensible way to move thirty 36 MB files across a network.
The free tier accepts input files up to 100 MB, which every HEIC clears with a wide margin — the constraint on this pair is the output rather than the input. The work runs on your own processor, so a large batch is limited by your machine rather than by a queue behind other people’s jobs.
The bitmap is a delivery format, not a copy worth keeping. It carries no timestamp, no camera information, no location and no colour profile, and it occupies twenty times the space of the file it came from, so an archive of BMPs is the worst of both.
Keep the HEIC files where they are, in the Photos library or wherever they were exported to, and treat each BMP as disposable output that can be regenerated in seconds. If the old program later gains a PNG importer, or gets replaced, you will still have the originals with their dates and their full colour intact.
| HEIC | BMP | |
|---|---|---|
| Full name | High Efficiency Image Container | Windows Bitmap |
| File extension | .heic | .bmp, .dib |
| Media type | image/heic | image/bmp |
| Compression | Lossy — file size is bought with quality | Uncompressed |
| First published | 2015 | 1987 |
| Published by | MPEG | Microsoft |
| Specification | ISO/IEC 23008-12 | — |
| Licensing | Published, not standardised | Published, not standardised |
| Standing today | Current | Legacy, still read everywhere |
| Bit depth | 10 | 8 |
| Colour it can describe | YCbCr, wide gamut | RGB, indexed palette |
| Opens in a browser | Some browsers | Every browser |
| Considered instead | JPG, AVIF, WebP | PNG, TIFF |
BMP has no alpha channel. A transparent HEIC 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 HEIC 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.
HEIC 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.
BMP opens in every current browser. HEIC 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.
The usual programs do not overlap: HEIC opens in Apple Photos and Adobe Lightroom, BMP in Microsoft Paint, GIMP and IrfanView — so whoever receives the result needs something from the second list.
The result is larger than the original and no better. HEIC has already discarded detail, and BMP stores what is left without discarding more — it prevents further loss rather than undoing the first one.
The two are aimed at different work: HEIC 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.
HEIC 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 HEIC in 2015. The older one is generally the safer file to hand to somebody; the newer one usually does the job in fewer bytes.
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.
Because BMP is not really a compressed format at all — it is a header followed by the pixels, and any program can read it in thirty lines of code. HEIC is an ISO container holding HEVC-compressed image data, published in 2015, and reading one means shipping a video decoder. Software written before 2015, or written since by anyone who did not want that dependency, has no path to it.
It is arithmetic rather than an estimate. A standard 12-megapixel iPhone frame is 4,032 by 3,024, three bytes a pixel, which is 36,578,304 bytes of pixels plus a 54-byte header — about 36.6 MB from a HEIC that was probably under 2 MB. A 48-megapixel frame at 8,064 by 6,048 comes to roughly 146 MB.
The picture itself is not compressed again, so no new compression artefacts appear. What is lost is everything around it: the EXIF block, the timestamp, the GPS coordinate, the Display P3 colour profile and the ten bits per channel your iPhone recorded, which become eight. Nothing is recovered either — a BMP made from a lossy source still contains the lossy picture, only written out at full size.
No. The file written here is 24-bit BGR with no alpha channel at all, so anything transparent in the source is composited onto white before the pixels are written. For an ordinary camera photograph this makes no difference, since there is nothing transparent in it.
Almost always, yes. PNG is lossless in exactly the same sense — the pixels come back bit for bit — and is typically a third to a half the size. Convert to BMP only when the program on the other end genuinely will not take a PNG. If its dialogue lists PNG, use that page instead.
No. The HEIC is decoded by libheif compiled to WebAssembly and the BMP is written by JavaScript, both inside the tab. You can watch the network tab during a conversion, or pull the network cable and convert anyway.