HEIC explained: why your iPhone photos won't upload
Your phone saves photos in a format that is genuinely better than JPEG and that most of the internet cannot read.
Last reviewed
What HEIC is
HEIC stands for High Efficiency Image Container. It is a container format holding images compressed with HEVC, the same video codec used for 4K streaming. Apple made it the default for iPhone photos in iOS 11, released in 2017.
The switch was well justified. HEIC produces roughly half the file size of JPEG at equivalent visual quality, supports transparency and higher bit depths, handles image sequences — which is how Live Photos work — and stores depth data from portrait mode. On the merits it beats a format designed in 1992, which is not a surprising outcome.
Why almost nothing accepts it
HEVC is covered by a large and complicated set of patents, administered by multiple licensing pools. Anyone shipping a decoder may owe royalties, and it is not always clear to whom or how much.
That uncertainty was enough to stop HEIC becoming universal. No major browser ships a HEIC decoder. Most web upload handlers do not support it. Windows required a paid codec from the Microsoft Store for years. Plenty of desktop software and print services still cannot open one.
So you have a photograph in a technically superior format that a great deal of the world treats as an unknown file. That is not your fault and there is nothing wrong with the file.
Why it sometimes works and sometimes does not
This is the genuinely confusing part. iOS converts HEIC to JPEG automatically in some situations and not others.
Share a photo through the standard share sheet — into a message, an email, most apps — and iOS will usually hand over a JPEG, having converted it silently. Attach the file from the Files app, transfer it with a cable, or upload it through a web form using the file browser, and you get the original HEIC.
So the same photograph can upload perfectly one way and fail the other, which makes the problem look random when it is not.
Three ways to fix it
Convert the file you have. Fastest for a photo you have already taken. FileBelow does this in the browser using a compiled HEIC decoder, so the photograph is never uploaded anywhere. If the destination also has a size limit, set it at the same time and both requirements are met in one pass.
Change the camera setting. On iOS, open Settings, then Camera, then Formats, and choose Most Compatible. New photographs will be JPEG. You lose the efficiency and gain never thinking about this again. Existing photos are unaffected.
Change the transfer setting. Settings, then Photos, then scroll to Transfer to Mac or PC and pick Automatic, which converts to a compatible format when moving files off the device. Keeps the space saving on the phone while giving you usable files elsewhere.
What conversion costs
Converting HEIC to JPEG makes the file larger — often two to three times — for the same picture. That is simply the efficiency gap between the formats, not a fault in the conversion.
There is also a small quality cost, because you are decoding one lossy format and encoding into another. At a sensible quality setting it is not visible. Live Photos lose their motion, keeping only the still frame, and depth data used for portrait effects is dropped since JPEG cannot store it.
Rotation is preserved properly: HEIC files carry the same orientation metadata as JPEGs, and FileBelow bakes it into the pixels during conversion so the result is upright everywhere.
Need to actually do this?
The tool takes the limit as its input and works out the rest. Free, no sign-up, and the image never leaves your device.
Open FileBelow