You took the photo on your iPhone. You tried to upload it to a government portal, a job application, a landlord form, or a bank’s “verify your identity” page. The site rejected it. Sometimes it says invalid file type. Sometimes it says nothing useful at all.
Nine times out of ten, the file is HEIC (or HEIF), Apple’s default photo format since iOS 11, and the website still only accepts JPG/JPEG or PNG.
Search demand around this exact problem is enormous. People are not looking for a photography lecture. They are looking for: make this file work so I can finish the form.
Why HEIC Exists (and Why Websites Hate It)
HEIC compresses better than JPEG at similar quality, which is why Apple switched. Your phone stores more photos in less space. The downside: HEIC is still poorly supported outside Apple’s ecosystem. Many government systems, HR platforms, insurance portals, and older upload validators simply check the extension or MIME type against a short allow-list that never included HEIC.
So the photo is fine. The gatekeeper is not.
Convert It Yourself (Free Methods First)
We’d rather you know the free routes than pretend they don’t exist. Depending on your device:
- iPhone (before you shoot): Settings → Camera → Formats → Most Compatible makes your phone capture JPG instead of HEIC going forward. Doesn’t fix photos you’ve already taken.
- iPhone (existing photo): email or AirDrop it to yourself (iOS often converts to JPG on export) or drop it into an app that saves JPG.
- Mac: open in Preview → File → Export → Format: JPEG.
- Windows 11: Photos app → open the HEIC (you may need the free HEIF extension) → Save as JPG.
These work for one or two files when you’re at a computer with the right software. They’re fiddly for a batch, on a phone, mid-form, on a deadline, which is where a one-click paid converter earns its dollar.
What “Convert HEIC to JPG” Actually Means
A proper conversion does three things:
- Decodes the HEIC container into pixel data
- Re-encodes as JPEG with a quality setting that won’t turn your face into soup
- Renames the file with a
.jpgextension and aimage/jpegcontent type the server expects
It does not need to be a full desktop app, a free trial that emails you forever, or a site that makes you watch ads for sixty seconds. For a one-off upload, you want a transaction: file in, JPG out, done.
The one-dollar shortcut
We built HEIC → JPG as a pay-per-use tool: upload the photo, pay $1 with a card, download a JPG websites accept. Same endpoint is also available to AI agents over HTTP 402 / x402 if a bot is doing the conversion for you.
If Conversion Alone Is Not Enough
Some portals also enforce size and dimension rules: “JPG under 2 MB,” “600×600,” “passport-style crop.” In that case you do not want a generic converter; you want an upload fixer that applies the target limits in one pass.
Quick Checklist Before You Re-Upload
- Extension is
.jpgor.jpeg, not.heic. - File is under the site’s max size (often 1–5 MB for ID photos); if not, get it under the cap.
- If they ask for square or exact dimensions, resize to those pixels first with exact image fit.
- Strip location metadata with the privacy cleaner if it’s an ID going to a stranger’s portal.
Quality, decoders, and switching HEIC off for good
The quality question answers itself once you know the numbers above: JPEG is lossy, so a conversion costs you something, but at a sensible quality setting the loss is invisible on a form or an ID photo. Faces and text stay sharp. It is only repeated conversions and aggressive size-cutting that show.
The reason your phone displays the file happily while the website refuses it is less about capability than about effort. Your phone has an Apple decoder built in. The website, in most cases, never opens the image at all: it compares your file extension against an allow-list written before HEIC existed and stops there.
If you would rather not do this again: Settings → Camera → Formats → Most Compatible switches the camera to JPEG permanently. New photos are fine from then on; the ones already in your library still need converting.
What you give up in the conversion
Converting is the right call when a site refuses HEIC, but it is not lossless and it is worth knowing what leaves the file.
Colour depth. HEIC stores 10 bits per channel; baseline JPEG stores 8. In most photographs you will never see the difference. Where it shows is smooth gradients (a clear sky, a studio backdrop), which can develop faint banding where the original held a continuous gradation.
Everything that was not the main image. An iPhone HEIC is frequently a container holding more than one photograph. Live Photos carry a short video; portrait shots carry a depth map that makes the background blur adjustable after the fact; burst shots carry multiple frames. Convert to JPEG and you keep exactly one still image. The depth map is gone, so the blur is baked in permanently, and the Live Photo is just a photo.
A generation of quality. HEIC is already lossy, so converting re-compresses data that has been compressed once. One conversion at high quality is visually harmless. Converting repeatedly, or at aggressive settings to satisfy a size limit, accumulates artefacts around edges and fine detail.
The practical advice that follows: convert a copy and keep the original. Once you have flattened a portrait shot to JPEG, the depth information is not recoverable from the result, and the situation where you want it back is exactly the situation where you no longer have it.
The practical upshot
HEIC isn’t broken; the upload form is outdated. If you’re at a computer with the right software, the free export routes above work. If you’re on a phone, mid-form, or converting a batch and just want it done, use our $1 HEIC to JPG tool, or browse the full $1 tools catalog.
