This page's code did not start.

Opening index.html directly from a folder blocks JavaScript modules, so nothing will happen when you choose a photo. Serve the folder over http instead:

powershell -ExecutionPolicy Bypass -File serve.ps1

Then open http://localhost:8080/.

HEIC to JPG — convert iPhone photos

The photos an iPhone makes, in a format everything opens.

Language: English
View source
Your photos are processed in your browser. No processing upload.

The decoding runs in your own browser, on your own hardware. HEIC is the one picture format a browser will not open by itself, so this page carries the decoder with it — about 1.4 MB, served from this site, cached after the first visit. That is the entire reason every other HEIC converter asks you to upload: they put the codec on a server and your photos have to go to it. This one puts the codec here instead. There is no network feature on this page at all, and no server on the other end of it to send a photo to.

Live check: checking…

Offline: checking…

Don't take our word for it: open DevTools, watch the Network tab, and convert a photo. You will see this page's own files load, the decoder among them, and not one request carrying a photo, a thumbnail, a filename, or a byte of what you chose. Or load the page once, unplug from the internet, and convert a folder of them anyway.

1 Choose your HEIC and AVIF photos

Straight off the phone, out of a backup, or copied from a memory card. The file is read here, on this machine, and the picture is decoded here too — there is no upload step in this page and no server behind it.

opens the file picker natively. Calling .click() on a display:none input is refused by Safari and by some Chrome configurations, so the input stays in the layout: visually hidden, still focusable, and reachable by keyboard. There is no JavaScript in that path at all. --> Drop HEIC and AVIF pictures here or click to browse — .heic, .heif, .avif, identified by their contents AVIF uses the browser decoder and does not load the HEIC engine. Output remains JPEG, PNG or WebP. Only the first decoded image is written; color or HDR may change. AVIF metadata is always left out: the metadata checkbox applies only to HEIC. The original file stays unchanged.

2 Say what you want back

Keep the date, the camera and the settings Copied across exactly as the phone wrote them, so the converted photo still sorts by the day it was taken rather than the day it was converted. This includes the GPS coordinates when the photo has them — the list above says which of yours do. Turn this off and the JPEG comes out with nothing in it but the picture.

Either way, nothing here is read out to anybody: the choice is about what goes into the file you get back, not about what this page does with it. If you want to look through the tags in detail, or strip them from photos that are already JPEGs, the EXIF Viewer & Remover is the tool for that.

The format
92

The photo details

3 Convert

View as Markdown

How to convert HEIC photos to JPG

  1. Choose your HEIC and AVIF photos. Drop them onto the picker or select them by hand, straight out of a phone backup or a folder on the desktop. They are read off your disk by the browser; nothing is sent anywhere while you do it. The list says what each one is and what it has inside it.
  2. Check what the photos carry. Each row names the date it was taken, the camera, and — in green, because it is the part worth noticing — whether the file holds GPS coordinates. That is read out of the container without decoding the picture, so it costs nothing and appears immediately.
  3. Pick a format, and decide about the details. JPEG unless you have a reason: it is the format that opens everywhere, which is the whole point of converting. The quality slider is at 92, which is the setting at which a photograph is hard to tell from the original. The checkbox decides whether the date, camera and location come along.
  4. Press "Convert", and download. The decoder arrives on the first conversion — about 1.4 MB, once — and every photo after that is decoded and written on your own machine. One file gives you a download button; several give you a zip as well.

The longer version

The photo your phone saved, and the format nothing will open iPhones save photos as HEIC, and half the internet cannot open one. What the format is, why only Safari decodes it, what converting costs the picture, and how to do it without uploading the photos to anyone.

Questions

Is my photo uploaded anywhere?

No. The file is read, decoded and written by your own browser on your own hardware. This tool has no network feature of any kind — it never fetches anything and never sends anything — and the page's Content-Security-Policy names every address it may contact, none of which belongs to this site. The one thing that does load is the decoder itself, and that comes from this site, once, before your photo is ever involved.

Why does this page download 1.4 MB the first time?

Because HEIC is the one picture format a browser will not open. It is an HEVC frame in a box container, and only Safari, on Apple hardware, has a decoder for it; Chrome, Firefox and Edge simply refuse the file. So a HEIC converter needs a decoder from somewhere, and there are two places it can come from: a server, or the page. Every other converter chose the server, which is exactly why they all need your photos uploaded. This one carries libheif compiled to WebAssembly instead. It is served from this site, cached after the first visit, and it is the entire price of your photos not going anywhere.

Does the JPEG keep the date, the camera and the location?

If you want it to, and it is a checkbox on the page. Left on, the EXIF block is copied out of the HEIC and written into the JPEG exactly as the phone wrote it, so the converted photo still sorts by the day it was taken rather than the day it was converted — which is the usual complaint about HEIC converters. One tag is changed and only one: the orientation, which is set to "upright", because the rotation has already been applied to the pixels and a viewer that applied it again would turn every portrait photo on its side. Turn the checkbox off and the JPEG comes out with the picture and nothing else.

Does it strip GPS coordinates?

It tells you they are there, and then it does whatever you ask. The row for each photo says whether the file carries coordinates before you convert anything, which is more than the phone does. Unticking "keep the date, the camera and the settings" leaves them out of the JPEG along with everything else; leaving it ticked carries them across. If what you want is to look through the tags in detail, or to strip them from photos that are already JPEGs, the EXIF Viewer & Remover is the tool for that, and it does it without re-compressing the picture.

Is the picture re-compressed?

Yes, and it has to be: HEIC and JPEG are different codecs, so there is no way to move from one to the other without decoding the picture and encoding it again. What you can control is how much that costs. The quality slider defaults to 92, at which a photograph is very hard to distinguish from the original, and PNG is on the menu for the case where you want no loss at all and do not mind the file being five to ten times the size.

What if the file is called .jpg but is really a HEIC?

It still works. Every file dropped here is identified by its first bytes rather than by its name, because the name is whatever the last app to touch the file decided to call it — and a HEIC that arrived called ".jpg" is one of the commonest ways people end up looking for a tool like this. A file that genuinely is a JPEG or a PNG is refused with a message saying so, rather than being converted into a copy of itself.

Can it convert a Live Photo, or a burst?

The still pictures in it, yes. A HEIC can hold more than one picture, and every one it holds is converted and named after the original with a number on the end. The video half of a Live Photo is a separate file that the phone keeps beside the HEIC, so it is not in here to convert. Depth maps and thumbnails are in the container but are not pictures anybody asked for, and are left alone.

Can I also convert AVIF pictures?

AVIF uses the browser decoder and does not load the HEIC engine. Output remains JPEG, PNG or WebP. Only the first decoded image is written; color or HDR may change. AVIF metadata is always left out: the metadata checkbox applies only to HEIC. The original file stays unchanged.

Is it free, and do I need an account?

It is free, and there is no account, no sign-in, no trial and no watermark. There is no limit on the number or the size of the files either, because there is no server paying for them — the work happens on your own machine. The site carries advertising, which is what pays for it; the ads are not given anything about your photos.

Does it work offline?

Yes, decoder included. Load the page once, then disconnect from the internet and it keeps working on your photos exactly as before. That is also the strongest proof available that nothing is being uploaded: a converter that sent your HEICs away to be decoded would stop the moment you unplugged, and this one does not.