An iPhone photo in HEIC that simply will not open — on a Windows PC, an Android phone, an older Mac, or in a web form — is one of the most common frustrations people hit the moment they move a photo off their phone. The file is fine. The world around it cannot read it. This tool converts HEIC to JPG entirely inside your browser, so the result opens everywhere: in any browser, on any device, in any upload form, with anyone you share it with.
What makes it different is that nothing is uploaded. Decoding and re-encoding happen locally through WebAssembly. Your photo stays on your device, the conversion runs in a second or two, and you download a JPG that behaves the way JPGs always have — universally, predictably, anywhere.
Why convert HEIC to JPG
The reason to convert HEIC to JPG is simply that JPG works everywhere and HEIC does not. That is the whole of it.
HEIC has been the default photo format on iPhones since iOS 11 (released in 2017). Every photo your iPhone has taken in the last several years is most likely HEIC unless you changed the camera setting. On the phone itself, that is invisible — iOS displays HEIC natively and you never notice. The moment you send that photo somewhere non-Apple, the trouble starts. Windows PCs historically needed a HEIC codec from the Microsoft Store, and on Windows 10 often still do. Most Android phones cannot open HEIC at all without a third-party app. Many older macOS versions, photo editors, content management systems, and online services either fail silently or reject the file outright.
Converting to JPG sidesteps all of it. A JPG made from your HEIC opens on any operating system from the last thirty years, in any browser, in any app that reads images, on any form that accepts a photo upload. It is the closest thing digital photography has to a universal format.
The point is not that JPG is technically superior to HEIC — HEIC produces smaller files at the same visual quality, which is exactly why Apple adopted it. The point is that JPG is universally accepted where HEIC is not. For anything that leaves your phone, JPG is the safe choice.
Why HEIC won’t open everywhere
HEIC’s compatibility problem has a specific history, and understanding it helps you avoid the dead-ends.
HEIC was standardized as part of MPEG’s HEIF (High Efficiency Image File Format) family, built on the same HEVC (H.265) video codec that powers modern video compression. Apple adopted it as the default photo format in iOS 11 because the compression savings over JPEG are real — roughly half the file size for the same visual quality. For a phone producing thousands of photos a year, that is a meaningful saving in storage and iCloud bandwidth.
The reason the rest of the industry did not follow is a mix of patents and politics. HEVC licensing is notoriously tangled, with multiple patent pools claiming royalties on implementations. Browser makers and OS vendors outside Apple largely chose to avoid the format rather than pay. AVIF, a newer royalty-free alternative, is what much of the non-Apple world has settled on instead — but AVIF has its own support gaps, and HEIC remains Apple’s default.
Today’s reality looks like this. On iOS and modern macOS, HEIC works natively. On Windows, support arrived in Windows 10 but requires HEIF and HEVC extensions from the Microsoft Store, and many users never install them — so files appear broken. On Android, native support varies by version and manufacturer. In browsers, Safari reads HEIC; Chrome, Firefox, and Edge generally do not, and an <img> tag pointed at a raw HEIC file shows nothing.
That is why people hit the wall at the worst possible moment: when they email a photo to a Windows-using relative, attach it to a job application, upload it to a government form, or paste it into a document. The photo looks fine on their phone and broken everywhere else. Converting to JPG before you share removes the question entirely.
Why JPG is the universal choice
JPG (more formally JPEG, after the Joint Photographic Experts Group that defined it in 1992) is the most compatible image format in existence. Every browser, every operating system, every image-handling app, every form upload, every CMS, every chat client, and every email program reads it. There is no platform on Earth that handles images and does not handle JPG.
That is the reason forms and websites specify JPG. When an upload field says “JPG or PNG only” — or, more bluntly, rejects your HEIC without explanation — it is not being awkward on purpose. The system behind it needs to guarantee it can read whatever you upload, and JPG is the one format it can safely assume. Building HEIC support into every form backend would be expensive and fragile, so most simply do not bother.
For photographs specifically, JPG is also a better fit than PNG. PNG is lossless but inefficient — a full iPhone photo as a PNG can be tens of megabytes, several times the HEIC original, with no visible quality gain over a sensibly-encoded JPG. JPG was designed for photographs and produces small, good-looking files; that is why it has survived for thirty years as the default.
When you convert HEIC to JPG, then, you are not “downgrading” in any sense that matters. You are putting the photo into the format the rest of the world actually uses. Your original HEIC stays untouched — the tool reads it and produces a new JPG alongside it — and the JPG behaves the way you expect an image to.
How to convert HEIC to JPG, step by step
The tool is deliberately simple — no account, no settings menu, nothing to install.
- Open the converter on this page. The engine loads once, the first time you visit, and then runs locally.
- Drop your HEIC photo into the box, or click to select it from your device. The moment you choose a file, the tool decodes it and shows you a preview — useful, because most browsers cannot display HEIC natively, so without this step you would be guessing what you uploaded.
- Leave the target KB field alone if all you want is a straight conversion. The tool produces a high-quality JPG at the resolution of your original. If you also need a size cap — many forms do — use a compressor page instead (50KB, 100KB, 200KB or 500KB), linked under Related below.
- Click Convert. Decode and re-encode run locally, usually within a second or two for a phone photo.
- Compare the before and after side by side, so you can see exactly what the converted JPG looks like.
- Download the result. You get a standard
.jpgfile, ready to share, upload, or attach.
Your original HEIC is never modified or deleted — the tool reads it and produces a new JPG. Nothing is uploaded; nothing leaves your device. Close the tab and both files are gone from memory, with the downloaded JPG the only trace.
How the conversion works
It helps to understand what happens during conversion, especially since the privacy claim — nothing leaves your device — depends on it.
The conversion runs in two stages, both inside your browser, both executed by a small WebAssembly module.
1. Decode the HEIC
HEIC is a container holding image data compressed with HEVC. To turn it into something else, you first have to decode it into raw pixels. The browser cannot do this on its own outside Safari, which is why a plain <img> tag pointed at a raw HEIC shows nothing. This tool loads a WebAssembly module containing a pure-Rust HEIC decoder; the module runs inside your browser’s sandbox, reads your file locally, and produces a raw pixel buffer for the next stage. The pixels never leave the browser.
2. Re-encode as JPG
With raw pixels in hand, the tool runs a JPEG encoder and produces a standard .jpg file, byte for byte compatible with anything that reads JPG. Quality is set high by default, since the goal is faithful conversion rather than size reduction. The output is then handed back to you as a download.
That is the whole of it. Two passes, one decode and one encode, both running as WebAssembly inside your browser. No server round trip, no upload, no analytics on the image, no copy kept anywhere. WebAssembly is the piece that makes this possible — it lets real, fast image-processing code run in the browser at near-native speed, without the privacy cost of sending your photo away to be processed.
Related
If your problem is size rather than format, the same engine hits any target KB:
- Compress HEIC to 50KB — small caps and exam photos.
- Compress HEIC to 100KB — the most common form ceiling.
- Compress HEIC to 200KB — visa and document scans.
- Compress HEIC to 500KB — generous allowances.
- Convert HEIC to PNG — lossless conversion, or when a form requires PNG.
- Reduce HEIC file size — a deeper walkthrough of getting HEIC smaller.
Frequently asked questions
Can it convert HEIC to JPG?
Yes. Drop in an HEIC file from your iPhone (or anywhere else) and the tool produces a standard JPG, decoded and re-encoded entirely in your browser. The output opens everywhere JPG is supported, which is effectively everywhere.
Is my photo uploaded to a server?
No. Decoding and re-encoding run entirely in your browser via WebAssembly. Your HEIC file never leaves your device, nothing is stored, and no analytics are applied to your image. Close the tab and it's gone.
Why won't my HEIC photos open on some devices?
Because HEIC support outside Apple is uneven. HEIC became the iPhone's default format with iOS 11, and Apple's ecosystem reads it natively, but most non-Apple software — Windows without the right extensions, many Android phones, older macOS versions, Chrome and Firefox — cannot decode HEIC on their own. Converting to JPG sidesteps the problem entirely.
What is HEIC and why does iPhone use it?
HEIC (High Efficiency Image Container) is an image format built on the HEVC video codec. Apple adopted it as the default photo format in iOS 11 (2017) because it produces files roughly half the size of JPEG at the same visual quality — a real storage and bandwidth win for phones that shoot thousands of photos. The trade-off is uneven support outside Apple's ecosystem.
Why is JPG the safe choice for sharing and forms?
Because JPG has been the default photo format since 1992 and is supported by essentially every device, browser, app, and form upload in existence. When you send a JPG, you do not have to wonder whether the recipient can open it. Forms that specify 'JPG only' do so precisely because they can guarantee reading it.
Does converting reduce the quality?
Not visibly. Both HEIC and JPEG are lossy, and a single conversion at high quality is effectively transparent — the resulting JPG looks the same as the HEIC original to the eye. The HEIC file will usually be smaller at equal visual quality, so the JPG is typically 2–3× the bytes for the same picture, but you will not see a difference.
Will it work on my device/browser?
Yes — it runs in any modern browser (Chrome, Edge, Firefox, Safari) on any device with WebAssembly support, which means anything made in the last several years. The HEIC file itself can come from an iPhone, an Android, a DSLR, an email attachment, or a download.
Is it free?
Yes — completely free, with no signup, no watermark, no account, and no plan to upgrade. There is nothing to buy.
Can I convert several HEIC photos at once?
One at a time. This keeps the tool simple, fast, and entirely local. If you have several photos to convert, repeat the process — each takes a second or two on a typical phone photo.
Does the converted JPG keep my photo's metadata?
No — and for sharing, that is usually a feature. The result is a freshly encoded JPEG with none of the original's EXIF data: camera settings, lens info, timestamp, and any embedded GPS location are stripped. Nothing identifying where or how the photo was taken travels with the file.
Will my photo stay the right way up?
After decoding, use Left 90°, Right 90°, or Reset beside the preview. Compression and full-resolution conversion use the rotated pixels, so the downloaded file keeps the orientation shown.
What's the difference between converting and compressing?
Conversion changes the format — HEIC to JPG — so the photo opens everywhere; the goal is compatibility. Compression makes the file smaller, hitting a specific KB target that a form or upload imposes; the goal is size. This page converts. If you also need a size cap, pick a target: 50KB, 100KB, 200KB or 500KB.
Can I also make the file smaller?
Yes. If you need both a format change and a specific file size — most forms impose a KB limit — use the compressor instead: compress HEIC to 50KB, 100KB, 200KB or 500KB. It does the HEIC-to-JPG conversion and the size reduction in one step, locally in your browser.
Can I convert HEIC to PNG instead of JPG?
Yes — if a form requires PNG, or you want a lossless copy, see Convert HEIC to PNG. It re-encodes to PNG losslessly at full resolution. Note that full-resolution photo PNGs are large (often tens of megabytes), so for photographs JPG is usually the more practical choice; PNG is better for graphics, screenshots, and PNG-only forms.
Do I need to install anything?
No. It runs in the browser. There is no app, no plugin, no software to install, and no account to create.
Is it safe to convert private photos here?
Yes. Your photo never leaves your device — there is no upload, no server processing, no copy kept anywhere. Decoding and re-encoding happen locally via WebAssembly, and when you close the tab the data is gone. There is no breach surface, because nothing was ever transmitted.
Does it work offline?
Once the page has loaded, the engine runs locally on your device. An internet connection is only needed to open the page initially; after that, conversion works without one.
Why is HEIC a problem for websites and forms?
Because websites and form backends need to guarantee they can read whatever you upload, and HEIC support is not universal — outside Apple's ecosystem, many systems cannot decode it. Rather than build and maintain HEIC support, most forms simply require JPG or PNG and reject HEIC outright. That is also why an HEIC upload often fails silently with no helpful error.
Will the converted JPG look the same as the original?
To the eye, yes — a single conversion at high quality is effectively transparent. The JPG will typically be larger than the HEIC (because JPEG compression is less aggressive), and metadata will be stripped, but the picture itself is visually identical. If you also need it smaller, use the compressor pages instead.