How to open a HEIC file, and turn it into a JPEG, without uploading it
A HEIC is a photograph in a container most software still cannot open. It is not damaged and it is not exotic; it is a good picture in a box that needs a particular key. This is what the box is, what is inside it, and how to get a JPEG out of it without handing the photo to a website.
A HEIC file is an ordinary photograph compressed with the HEVC video codec and wrapped in a container called HEIF. Windows, Android and most browsers do not include an HEVC decoder for still pictures, which is why the file will not open. It can be turned into a JPEG in this browser tab, on your own machine, with SHRINK; the photo does not have to be uploaded anywhere to do it.
What a HEIC actually is
Open one in a hex viewer and the first thing after four length bytes is the word ftyp, then a brand: heic. That is the signature of an ISO base media file, the same family of container as an MP4 video, and it is why the format is described as a video codec used for a photograph. The file this was checked against begins:
00 00 00 1c 66 74 79 70 68 65 69 63 ....ftypheic 00 00 00 00 6d 69 66 31 68 65 69 63 ....mif1heic 6d 69 61 66 miaf
After ftyp come the boxes that describe the picture, and then the picture itself:
Apple's phones have written this format by default since iOS 11 in 2017, and the reason is the codec: HEVC compresses a photograph more effectively than the JPEG scheme, which dates from 1992. That is a claim about photographs. On a synthetic picture of coloured noise built to check it, the HEIC was 2.1 times larger than the JPEG at the same quality setting, because noise is the one thing a video codec is worst at. On a real photograph the saving is real; it is not a law.
Why nothing will open it
HEVC is covered by patents, and a program that decodes it either pays for a licence or does not ship a decoder. Apple ships one, so Safari, Photos and Preview open HEIC files on Apple hardware. Chrome and Firefox do not include an HEVC decoder for images, so they show a broken picture or offer to download the file. Windows opens it only if the HEVC extension has been installed from the Microsoft Store, which is why a HEIC sent to a colleague on a PC so often comes back with the question this page answers.
None of that is the file's fault. It is a complete, correct photograph. It is the software around it that is missing a piece.
What is inside, besides the picture
The same things a JPEG carries. A HEIF file stores its Exif block as an item of type Exif inside meta, and in the file checked for this page that item began at byte 176 and held the camera model in plain text. The tags are the JPEG tags: the model, DateTimeOriginal, and on a phone with location on, the GPS latitude and longitude of where the shutter was pressed. If the photo shows where it was taken, the HEIC says so as precisely as a JPEG would; that page covers what the numbers mean.
Rotation is handled differently. A JPEG records the orientation as an Exif tag and leaves it to the viewer; HEIF stores it as a property of the image (irot) that a decoder is expected to apply. The practical result is that a properly decoded HEIC comes out the right way up.
Turning it into a JPEG here
The conversion sites do the obvious thing: you upload the photo, their server decodes it, and you download a JPEG. Every one of those uploads is a copy of your picture, with its location tag, on a computer you do not control. It is not necessary. A decoder for HEVC pictures can run inside a browser tab, and this site carries one: the same libheif library the open-source world uses, compiled to WebAssembly and fetched from obscuraos.com the first time you open a HEIC, about 1.4 MB, then kept on your device.
- Open SHRINK and drop the HEIC files in. Any number at once.
- Choose JPEG as the format, and a quality. 85 is a sensible default for a photo you will look at; 92 if it is going to be printed.
- Leave the longest side empty to keep the full size, or set one if the point is to send it.
- Press Shrink. Save them one by one, or all as a zip.
Two things to know about what comes out. The JPEG carries no metadata at all, because SHRINK draws the decoded picture onto a canvas and encodes that, and a canvas has no camera model or GPS to give. For most people that is the point. If you need the Exif kept, that is a different job and SHRINK is not the tool for it. And any HEIC that holds more than one picture gives you its primary image; a burst is not unpacked.
The same decoder is behind PHOTO, which opens a HEIC to crop, straighten and mark it up, and OPTIC, which reads the text out of one, so a photograph of a document taken on an iPhone can be read without converting it first.
Not opening it at all
If the phone is yours and you would rather never see the format again, it can stop writing it. In Settings, under Camera, then Formats, Most Compatible records JPEG instead of HEIF from then on. Pictures already taken stay as they are. Under Settings, Photos, the transfer option Automatic converts to JPEG when copying to a PC, and Keep Originals does not, which is usually what has happened when a folder of HEICs turns up on a Windows machine.
What this does not cover
AVIF uses the same HEIF container with a different codec, AV1, and browsers open AVIF natively; a file that starts ftypavif does not need any of this. A HEIC written at ten bits of colour depth decodes to the eight bits a canvas holds, so a HDR photograph loses that range on conversion, which is true of every route to JPEG. And none of this recovers a file that is damaged: a HEIC that fails to decode here is usually one that has been truncated in transfer, and the fix is to copy it again.
What this is, and what it is not
The container was read, not described from memory. The box names and the bytes shown above came from a HEIC written and examined for this page. The claim about size was tested the same way, and the honest result, that a video codec does badly on noise, is in the text rather than left out.
Converting here means the photo stays here. The decoder is fetched once from this site and runs in the tab. The picture goes nowhere, and the network can be watched while it converts to confirm that.
A JPEG made this way has no metadata. That is a property of how the tools on this site encode a picture. It is what most people converting a photo want and it is said plainly because a few people want the opposite.
Questions people ask
Why will Windows not open my HEIC file?
Windows needs an HEVC decoder to read the picture inside a HEIC, and it does not ship one. Microsoft sells it as an extension in the Store, or the file can be converted to JPEG. Converting in this browser tab keeps the photo on your machine.
Is HEIC better than JPEG?
For photographs, HEVC usually compresses better than JPEG at the same visible quality, which is why Apple chose it. It is not universal: on a test picture of coloured noise the HEIC was more than twice the size of the JPEG. The real cost of HEIC is not quality but compatibility.
Does a HEIC file contain my location?
It can. HEIF carries an Exif block just as a JPEG does, and a phone with location on writes the GPS coordinates into it. Converting with SHRINK produces a JPEG with no metadata at all; CLOAK can check and strip a JPEG that already exists.
Will converting lose quality?
Any conversion to JPEG re-encodes the picture, so it is not lossless, but at quality 85 or above the difference is not visible at normal size. What is lost outright is anything beyond eight bits of colour depth, and the Exif block.
Can I stop my iPhone making HEIC files?
Yes. In Settings, under Camera, then Formats, choose Most Compatible, and the camera records JPEG from then on. Under Settings, Photos, set transfers to Automatic and the phone converts when copying to a PC.
What about HEIF, HIF or AVIF?
HEIF is the container; HEIC is that container with an HEVC picture inside, and HIF is a name some cameras use for the same thing. AVIF is the same container with an AV1 picture, and browsers open AVIF without any help.