HEIC to JPG converter
Convert the HEIC photos an iPhone takes into a JPG or a PNG that any machine will open. It happens inside this browser, and nothing is uploaded.
Nothing is uploaded
Every conversion runs in this browser tab, on your own machine. No file is sent to this site or to anyone else — there is no server here to send one to — so a confidential image stays confidential, and you can watch your browser’s network tab while you convert it and see for yourself.
WebP here is never lossless
WebP has a lossless mode, and a browser canvas cannot write one — there is no way to ask it for one. Every WebP produced here is a lossy encode, at the top of the quality control just as much as below it, so the result is never a lossless copy of what went in.
Colors may shift
The picture is redrawn here and written out as ordinary sRGB, carrying no embedded color profile. A photograph taken in a wider space — Display P3 on a recent phone, or Adobe RGB — comes out looking the same in most places, but its most saturated colors can end up a little duller.
Why your phone took a HEIC, and why your computer will not open it
A HEIC is what a recent iPhone writes when you press the shutter, and it is not a picture file in the way a JPG is. It is a small container: one photograph, plus whatever else the camera thought worth keeping beside it, packed together with an index at the front saying what is where. The photograph inside is squeezed by the machinery that squeezes video — it is stored as a single frame of it — and that is where the saving comes from. The same picture takes up a good deal less room than it would as a JPG, and on a phone holding thousands of them that adds up to something genuinely worth having.
It is also where the trouble comes from, and the trouble is legal rather than technical. The video compression a HEIC leans on is licensed, so software that has not licensed it cannot decode one however modern it is. That is why a format the iPhone has written by default for years is still met with a grey box on a Windows desktop, a refusal from an upload form, or a print counter that lists every format except this one. Nothing is wrong with your photograph, and nothing is old about your computer. The part that reads this particular kind of file was simply never handed to it.
- A HEIC holds pictures rather than being one. Beside the photograph it is about, it can carry the small copy your gallery scrolls through, a depth map from a second lens, a description of how bright the bright parts really are for a screen that can show them, and — where the shot was a Live Photo — the few seconds of video the phone recorded around the moment you pressed.
- The photograph inside is coded as a frame of video. That is the whole of why the file is small and most of why so little reads it: the older image formats can be implemented by anybody for nothing, and this one rests on video machinery that cannot.
- HEIC is one filling of a wider standard rather than a format on its own. The container is HEIF; what makes a particular file a HEIC is the way the picture inside it is coded, so a file of the same family carrying something else — an AVIF, most often — is a different thing and is not read on this page.
- Your phone is still making them. Every shot you take goes on being written this way until a setting is changed, and that setting is what the third section below is about: it is the fix that outlasts the file you came here with.
Getting the photograph you already have into a JPG
This page arrives set to JPG because JPG is what turned your file away will take — a school portal, an insurance claim, a print shop’s uploader, a document you are assembling in something older than the format. A HEIC is very nearly always a photograph off a camera, which settles most of the choice before you have to make it: for a photograph, JPG is the one format nobody has ever had to argue for. The other two stay on the control all the same, and one of them has a real errand here rather than being a leftover from another door.
- JPG for a photograph you are sending, uploading, printing or attaching to something. Everything reads it, the file stays small, and a phone photograph has already been through this kind of compression once, so one careful further pass takes very little that a person looking at the picture would ever find.
- PNG for a photograph of something written down — a receipt, a form, a page of notes, a whiteboard. Lettering and flat areas are exactly what lossy compression smears first, and PNG keeps the edges of letters clean. It will be much the larger file, and it earns that on this one errand and on almost no other.
- WebP for a picture going onto a page you are building yourself. At a comparable quality it is the smallest of the three, and it is also the format most likely to be turned away by whatever turned the HEIC away — so for the errand that probably brought you here it is usually the wrong answer.
- One photograph comes out, whichever of the three you pick. Where a container really does hold more than one, the one it marks as its own subject is what gets converted, and the rest are written nowhere.
A quality control appears for JPG and for WebP and never for PNG, which has nothing to trade away. Wherever you leave it, the row under your file reports what the photograph weighed before and after — and on this page that comparison holds a surprise often enough to be worth warning about, because the JPG is frequently the bigger of the two. That is not the conversion going wrong. It is an older format doing the same job with a generation-older tool, and it is the trade you are making on purpose: room in exchange for a file that everything can open.
Stopping the phone from making them at all
Converting the file in front of you solves today. The photograph you are converting is one of however many thousand the phone is going to write exactly the same way, and there is a setting behind that on both kinds of phone. It is worth the half a minute even when you are in a hurry, because the alternative is being back here in a fortnight with another one.
- On an iPhone, open Settings, then Camera, then Formats, and choose Most Compatible. From that moment the camera writes an ordinary JPG instead, and what it records as video changes with it.
- What that costs is room, mostly. The same photograph as a JPG takes up appreciably more, so a phone that was comfortable on storage may stop being. A few of the video modes go as well: the highest frame rates and the largest sizes need the efficient coding and are simply not offered while Most Compatible is the setting.
- It changes nothing about the photographs already taken. Everything in the library stays exactly as it was written, so a switch made today still leaves a back catalogue behind it — and this page will take a whole selection of them in one go rather than one at a time.
- There is a second setting worth knowing about, in the phone’s own settings for its photo library, governing what happens when pictures are copied to a computer over a cable. Left to convert automatically, the phone hands over a JPG copy and you never meet the format at all; told to keep the originals, it hands over the HEIC itself. When photographs arrive on a desktop and will not open, this is very often the reason rather than the camera setting.
- Android has no single path for any of this, because the camera is the manufacturer’s software rather than the operating system’s. Most Android phones write JPG anyway and there is nothing to change; on the ones that do offer the efficient format, the switch lives in the camera app’s own settings under a name like picture format or high efficiency, and turning it off makes the same trade of room for compatibility.
The honest version of the advice is that the efficient format is genuinely better at its job, and there is a case for leaving it alone. Sharing a photograph out of the phone — into a message, an email, most apps — usually hands over a converted copy rather than the original, which is why some of your pictures open everywhere and only the ones you copied off the phone wholesale do not. If that is your situation, leaving the setting where it is and converting the occasional awkward file here costs you less than doubling what every photograph you ever take will occupy.
What a HEIC holds that a JPG has nowhere to put
A JPG is one picture and its own compression, and that is the whole of it. A container is not, so converting one is a narrowing rather than a translation, and there are four narrowings worth understanding before you delete the original. Each is announced under the file it happened to, and under no other file, which is what keeps those announcements worth reading.
- The range of brightness. A recent phone records more of it than an ordinary screen can show, either by keeping more than the ordinary eight bits for each channel or by storing a separate description of the bright parts to be applied where a screen can take it. Nothing here applies that description — deciding how a bright sky ought to look on a screen that cannot show it is a judgement with no single right answer, and this is a converter rather than an editor — so what comes out is the ordinary eight bits in the ordinary range, and a sunset or a lit window can arrive flatter than the phone showed it.
- Everything the camera wrote down beside the picture. Where you were standing, which lens, which exposure, the date, the color profile, whatever an editing app left behind: all of it sits alongside the photograph rather than inside it, and the conversion carries the photograph and not its neighbours. For a picture about to be handed to a stranger or an insurance company that is usually the point rather than the price, and it holds whichever of the three formats you convert to.
- The other things in the file. A depth map, the gallery copy, the description of the bright parts and a Live Photo’s video are attachments to the photograph rather than photographs in their own right, and none of them is extracted here — so the movement, the blurred background and the small copy all stay behind in the original. A file that genuinely holds a second photograph is rarer; there, the one the file names as its subject is converted and you are told how many were inside.
- The turn. A phone that took the picture sideways records which way up to look at it instead of turning the pixels, and where a JPG carries that as a note for the next program to honour, a container carries it as an instruction already acted on by the time this page sees any pixels at all. Either way what you download is upright and needs nothing told to it afterwards, and either way its width and height have traded places against the way the picture was stored — which is why the swap is said out loud rather than left as two unexpected numbers on the row.
All four of those are read out of the file’s own structure by this page’s own code, before the photograph has been opened and before a byte of the decoder has been fetched. That is deliberate, and it is why the row under your file is already complete — its format, its dimensions and every notice above — while the machinery that will actually open the picture is still on its way.
The decoder that arrives when you choose a file, and why nothing here writes a HEIC
Every other conversion this converter makes is done with the picture machinery already sitting inside your browser, and a HEIC cannot be, for the reason the first section gives: a browser that will not show you the file cannot open it on our behalf either. So this page carries a decoder of its own — a compiled library that is handed the coded photograph and hands back pixels — and it is fetched the first time you choose a file that needs one. Never when the page loads, and never on a page that has not been given such a file, so a visit that involves no HEIC never fetches it. It is the format rather than the page that decides: drop one of these onto any of the three sibling converters and it converts there too, fetching the same library to do it.
What that library is allowed to do is narrow, and the narrowness is the point of it. It opens pictures and does nothing else: the format you are converting to, the size, the quality, the color behind a lost transparency, the name of the file you download and every word of the account under it are this page’s own, and they are the same tested path the other three converters have always taken. It writes nothing at all, and neither does anything else here. This page does not make HEIC files, and no page on this site makes one: every picture this converter hands back is written by the browser’s own encoder, which offers JPG, PNG and WebP and has never been able to produce a HEIC. There is no setting, no other door and no page here that goes in that direction, and that is a decision rather than a gap waiting to be filled.
- Some files are turned down before a single byte of the decoder is fetched. Where the picture is stored in a construction this particular library builds nothing out of, that can be told from the file’s own structure, so you are told immediately — and told it as a fact about the library, because nothing was found wrong with your photograph and the photograph was never opened.
- A picture too large for this browser to hold is settled first as well. Whether a canvas of that size can exist here at all is asked before the decoder is fetched, so a photograph that could never have been drawn does not cost you the wait.
- A file of the same family that carries something other than the coding this page reads is not accepted in the first place. It is refused as a file that is none of the formats read here, which is the honest answer: it is not a HEIC, and half-accepting it would be a promise this page could not keep.
- Where the library does not arrive — a dropped connection, a network that blocks it, a proxy with opinions — the row says so about the download and not about your photograph, and offers you another go. On a browser too old to run it at all there is nothing a second attempt could reach, so no second attempt is offered rather than one that could not work.
- And where it does arrive, is handed the picture and makes nothing of it, that is said in words of its own. Your file may be damaged, or it may be stored in a way this library does not follow, and nothing here can tell which — so neither is claimed.
Two things about it are worth knowing while you wait. It is considerably larger than the page it belongs to, which is exactly why it is not part of the page, and why the first photograph you convert takes a moment that the ones after it do not — the library is started once and kept for as long as the tab is open. And it is somebody else’s work rather than ours: the licence notice linked at the foot of every page on this site names it, the exact release, the terms it is under and where its source can be read.
Why the photograph itself never leaves your machine
This is the one format on the site whose conversion really does fetch something while you work, so the promise is worth making precisely rather than broadly. What travels for the conversion is the library, and it travels one way: from this site to you. Your photograph travels nowhere. There is no server behind this page that could accept one — the pages here are static files with no code of ours running anywhere else — so this is a description of how the tool is put together and not an undertaking about how somebody chooses to run it.
It is also the one format for which watching the network panel of your browser’s developer tools is genuinely interesting rather than merely reassuring. Open it, choose a HEIC, and what your file asks for is the decoder — the small piece of code that runs it, and then the compiled library itself, which that code fetches. Nothing carrying any part of your photograph goes out with either. Everything after that — reading the container, working out what to do, opening the picture, writing the JPG — happens on your own processor, which is the whole reason those downloads exist at all.
- A photograph you would not hand over to anybody — a passport page, a medical scan, a picture of a document with your address on it — is opened and converted without ever leaving the machine it is sitting on.
- Once the library is here, the converting itself asks the network for nothing further. A queue of a hundred holiday photographs sends nothing out on their behalf, however long it takes to work through them.
- None of it is remembered. Your file, the picture made from it and every notice under the row exist in this tab and nowhere else, and they go when the tab goes rather than waiting for you to clear something.
Frequently asked questions
- Why will my computer not open a photograph my own phone took perfectly well?
- Because the picture inside a HEIC is compressed the way video is, and that compression is licensed. Software that has not paid for the licence cannot open one however new it is, which is why the situation looks so absurd: the phone writes the file, the phone reads it back instantly, and a desktop that handles everything else in the world offers you a grey rectangle or an invitation to buy an add-on. It is not a sign of a damaged file and not a sign of an old machine. Converting the photograph to JPG hands whatever refused it a format it has been able to read since long before any of this existed, and nothing about the picture has to be mended for that to work — it was intact the whole time.
- Is the JPG a worse picture than the HEIC was?
- A little, and probably not in the way you are expecting. The compression is a second lossy pass over a photograph that had already been through one, and at a high setting that is hard to find at ordinary viewing size in an ordinary picture. What is far more likely to be visible is the brightness: a phone stores more range than a JPG can hold, so the brightest parts — a sky behind a building, sun on water, a lamp in a dark room — can arrive looking flat where the phone showed them glowing. That is a limit of the format you are converting to rather than a control you can turn up, and the row says so for the files it is true of.
- My converted photograph looks duller than it did on my phone. What happened?
- Almost certainly the description of the bright parts. A recent phone keeps the picture and, beside it, an account of how much brighter its brightest areas really are, which the phone’s own screen applies while you look at it. A JPG has nowhere to keep that account and no way to act on it, so what you download is the picture without it. Applying it during the conversion would mean deciding on your behalf how a sky that cannot be shown ought to be squeezed into what can — an artistic judgement with no correct answer, and not something a converter should be making quietly. The other half of the same answer is the color profile: what comes out is ordinary sRGB with no profile attached, so the most saturated colors in a photograph taken in a wider space can come back a shade less intense.
- The converted file is bigger than the photograph was. How can that be right?
- It is right, and it is the ordinary result rather than a fault. The compression inside a HEIC is a generation newer than JPEG’s and gets more out of the same picture, so going the other way costs room almost every time, sometimes by a great deal. You are not getting a worse picture in exchange for the extra bytes; you are getting the same picture in a format everything can open, which is the entire trade the conversion exists to make. If size matters more than compatibility and whatever you are feeding will accept it, WebP is the smallest of the three formats offered here — and the row shows you the figures for your own file rather than a rule of thumb about files in general.
- How do I stop my iPhone taking these in the first place?
- Open Settings, then Camera, then Formats, and choose Most Compatible. That is the whole of it: from then on the camera writes an ordinary JPG, and what you take will open wherever you take it. Two things are worth knowing first. Your library will grow, because the same scene as a JPG is a good deal heavier than the phone has been storing it. And a handful of the video modes vanish while the setting is on, since they need the efficient coding to exist at all. It is also not retrospective — everything already in the library stays exactly as the camera wrote it, so a switch made today still leaves you whatever you have. On an Android phone there is no equivalent path at all, the camera app being the manufacturer’s software rather than Android’s, and most of them write JPG in any case.
- I renamed the file to end in JPG and it still will not open. Why not?
- Because a name is not a format. Renaming changes the label and not one byte of what is behind it, so what the next program meets is still a photograph compressed the way video is, wearing a name that promises otherwise — and it will either refuse the file or, worse, show you something broken. It is also the reason this page pays no attention to the ending at all: what a file is gets read out of the file itself, so a HEIC named as a JPG is converted correctly as the HEIC it really is, and you are told that the two disagree, because that is a true thing about your file you had no way of seeing.
- What happened to the movement in my Live Photo, and to the blurred background?
- Both were kept beside the photograph rather than inside it, and neither survives into a JPG. A Live Photo is a still picture with a short video stored alongside it in the same file; the portrait blur your phone applies on demand is worked out from a depth map stored alongside it in the same way. A JPG holds one flat grid of pixels and has no room for either, so what you download is the still frame the file is actually about, carrying whatever blur was already baked into those pixels and none that was not. Nothing here pulls the video or the depth map out into files of their own. If either matters, keep the original: what this page makes is a copy for somewhere that would not take the HEIC, and it is not a replacement for it.
- Is my photo uploaded, and what is the one thing the conversion downloads?
- Your photo is not uploaded. There is no server on this site that could take it, and every step of the conversion runs on your own machine. What crosses the network for the conversion is the decoding library, and it comes to you rather than from you: it is fetched the first time you choose a file that needs one, and it is precisely what makes converting on your own machine possible for a format your browser cannot read by itself. Watch the network panel of your developer tools while you convert something and that is what you will see — your file asking for the decoder and for the compiled library behind it, nothing at all carrying the picture itself, and nothing further asked for on its behalf however many files you queue up after it.
Related tools
- Color converter
Convert between color formats and check WCAG contrast.
- JPG to PNG converter
Turn a JPG into a PNG in your browser, and see what changed.
- WebP converter
Make a WebP to save bytes, or turn one back into a PNG or JPG.
- SVG to PNG converter
Turn an SVG into a PNG at whatever pixel size you need.