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 — see the next section.
- 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.
Quality and metadata
A reasonable question is what changes when HEIC becomes JPG. The honest answer is: very little that you will see, and a few things you might actually want.
Visual quality
Both HEIC and JPEG are lossy formats, so a direct conversion at high quality is effectively transparent — the resulting JPG looks the same as the HEIC original to the eye. HEIC’s compression is more efficient, which is why the HEIC file is usually smaller for the same visual quality, but the photo itself does not visibly degrade when re-encoded. If you re-encode the same JPG many times, generation loss accumulates — but a single high-quality conversion is invisible in practice.
The one caveat is size. A converted JPG will typically be larger than the HEIC it came from, often 2–3× the bytes, because JPEG’s compression is less aggressive. That is the trade-off for compatibility. If you also need a size cap, the next section explains how to combine conversion with compression.
Metadata
When the tool produces the new JPG, it encodes only the pixels. The original HEIC’s EXIF metadata is stripped — that means camera settings, lens information, timestamp, and crucially any GPS coordinates that recorded where the photo was taken.
For sharing, that is usually a feature. The JPG you send to a form, attach to a job application, or share with a relative carries no information about where you were when you took it or what device you used. If you need to keep metadata, you will need a tool that explicitly preserves EXIF; this one does not.
One side-effect to know about: if your original HEIC relied on an EXIF orientation tag to display upright (many phone cameras do), the converted JPG may appear rotated once the tag is gone. Check the before/after preview; if it looks wrong, rotate the photo in your phone’s editor first, then convert.
Convert versus compress
Conversion and compression are related but separate jobs, and understanding the difference helps you pick the right tool.
Conversion means changing the format — from HEIC to JPG — so the photo opens everywhere. The goal is compatibility, not size. The output is a high-quality JPG at the original resolution, usually a few megabytes. If all you need is “make this HEIC readable by humans and forms,” pure conversion is what you want, and this page does that.
Compression means making the file smaller — hitting a specific KB target that a form, portal, or upload imposes. Most online forms do impose one: ≤100KB for government portals, ≤200KB for visa photos, ≤50KB for some exam registrations. A pure conversion ignores size; a compressor always outputs JPG anyway.
If you have an iPhone photo and a form with a KB limit, you need both: convert the format and hit the size. That is what the compressor pages do in one step — type the KB target, get a JPG that fits, locally. Pick a target if you also need a size limit:
- Compress HEIC to 50KB — strict caps, exam registrations, small avatars.
- Compress HEIC to 100KB — the most common ceiling, government and ID forms.
- Compress HEIC to 200KB — visa and document scans with a generous allowance.
- Compress HEIC to 500KB — high-quality uploads with a loose ceiling.
For a deeper walkthrough of getting the file size down — what trade-offs are involved, what to expect visually, and how the compressor works under the hood — see Reduce HEIC file size.
Privacy: nothing leaves your device
The privacy claim deserves to be stated plainly, because the photos people convert are often personal — family shots, document scans, photos meant for a specific recipient.
Your image never leaves your device. There is no upload, no cloud processing, no server that sees your photo. Decoding and re-encoding happen locally inside your browser through a WebAssembly module. When you close the tab, the data is gone — there is no account, no storage, no analytics applied to your image, no copy kept anywhere.
This is a meaningful difference from most “HEIC to JPG” websites. The typical pattern is that you upload your photo, the site’s server converts it, and the result is sent back to you. That works, but it means a copy of your photo existed on someone else’s computer, even if briefly, and you have no way to verify it was deleted. Some services keep uploads for hours or days; some use them for analytics; a few have been caught training models on user uploads.
Running everything locally closes that question entirely. The conversion cannot leak what was never transmitted. There is no server breach that could expose your photo, no logging accident, no policy change that retroactively changes what a service can do with files you uploaded years ago.
It is also faster — no round trip to a server and back — and works the same way on a slow connection as a fast one, because the only thing that needs to move over the network is the small WebAssembly module itself, downloaded once.
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.
- 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?
The decoded pixels are re-encoded as-is. If your original relied on an EXIF orientation tag to display upright (many phone photos do), the converted JPG may appear rotated when the tag is gone. Check the before/after preview; if it looks wrong, rotate the photo in your phone's editor first, then convert.
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.
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.