In short
This converts a HEIC (or HEIF) photo to a standard JPG entirely on your machine. Drop the file and the tool asks your browser's own decoder to render the picture; if it can, the pixels are re-encoded to JPG at high quality and offered as a download. It is deliberately honest about one thing most converters gloss over: HEIC photos are HEVC-coded, and not every browser can decode HEVC. Where yours can, you get a real JPG. Where it can't, you get a clear explanation and a route that will — never a fake result. Nothing is uploaded, and if the file turns out to be damaged rather than just un-decodable, the tool points you to repair.
Why HEIC is different from JPG
HEIC is the container Apple has used by default since iOS 11. Inside it, the photo is stored as an HEVC-coded image (the same codec as H.265 video), wrapped in an ISO base-media box structure — the same kind of box layout as an MP4. That is why HEIC files are roughly half the size of an equivalent JPG at similar quality: HEVC is a far more modern compressor. The trade-off is decode support. JPG has been universally decodable for thirty years; HEVC is patent-encumbered, so many platforms don't ship a decoder. A JPG opens everywhere; a HEIC only opens where something can decode HEVC.
This converter does the honest thing: it hands the file to the browser'screateImageBitmap decoder — the same native path a <img> tag would use — and only claims success when that decoder actually returns pixels. There is no bundled HEVC decoder pretending to do the job; the conversion is real or it doesn't happen.
Where it works, and where it won't
Converts here
- Safari on macOS and iOS — HEVC decoding is built in
- iPhone and iPad browsers — the photo decodes natively
- Windows with the HEVC Video Extensions codec installed — Chrome and Edge can then decode it
Falls back honestly
- Most Chrome and Firefox builds on Windows without the codec, and on Linux — no HEVC decoder, so no JPG is produced
- Rather than a broken download, you get a plain message and are pointed to a device that can decode it
- If a structural scan finds real damage, you're sent to repair the HEIC first
The most reliable path when your browser can't decode HEVC is simply to open the photo on the device that took it — an iPhone or iPad can export JPEG directly from the share sheet — or to reopen this page in Safari on a Mac.
What the JPG will and won't keep
Converting HEVC to JPG is a re-encode, not a copy, so a little quality is always lost; we encode at 0.92 to keep that minimal and imperceptible in normal viewing. JPG cannot store transparency, so any alpha is flattened onto a white background. Because HEIC compresses more efficiently, the resulting JPG is frequently larger on disk than the HEIC it came from — that's expected, not a fault. The still image converts; extras that a JPG can't hold — depth maps, auxiliary images, or a Live Photo's paired movie — do not carry over. If you need a pixel-exact copy, don't convert: keep the HEIC and use the HEIC viewerto look at it.
Why "no upload" is verifiable, not a slogan
Almost every "HEIC to JPG" site on the web uploads your photo to a server to convert it there. This one doesn't. The file is read with the browser's file APIs, decoded by the browser, and re-encoded on a canvas — all on your device. The page makes no request that carries your bytes. Don't take it on faith: open DevTools, select the Network tab, drop a file, and watch that nothing leaves. It's the same zero-upload principle as the rest of IntactFile, applied to conversion — which matters most for exactly the private photos people are wary of uploading.
If the file is damaged, not just un-decodable
There's a real difference between "my browser can't decode HEVC" and "my HEIC is broken." The first is a codec gap — the file is fine and opens on an Apple device. The second is structural damage: a truncated transfer, an interrupted iCloud sync, or a recovery tool that guessed the file's boundaries can leave the container corrupt so no decoder can reach the picture. Conversion can't fix that, because there's nothing decodable to convert. When the tool's structural scan spots damage it stops pretending and links you straight torepair the HEIC container first — re-anchoring offsets and salvaging the surviving tiles — after which conversion becomes possible again.