How to convert HEIC to JPG
The fix on the phone, on Windows and on a Mac, why a browser is the one place this is awkward, and the setting that stops it happening again.
Free toolImage ConverterPNG, JPG, WebP and AVIF, converted by the same codecs your browser uses to show them.Open the converterThe short answer
Use the tool already on the machine the photo is on. Every operating system that can open a HEIC can also write a JPG, and none of them need an app installing.
- iPhone: Share, then Copy Photo, then paste it anywhere. You get a JPG.
- Mac: select the files in Finder, right-click, Quick Actions, Convert Image.
- Windows: open it in Photos, then Save as, and pick JPG.
- Safari, on a Mac or an iPhone: a browser converter works, including this site's.
- Chrome or Firefox: no browser converter can open a HEIC. See below for why.
If you want it to stop happening, the setting is in Settings → Camera → Formats, and it is covered at the end.
What a HEIC file actually is
HEIC is a picture stored inside a HEIF container, compressed with HEVC. HEVC is a video codec, also called H.265, and that detail explains nearly every strange thing about these files. A HEIC is closer to a one-frame video than to a JPG.
It buys you a lot. Roughly half the file size at the same quality, 16 bits of colour per channel instead of 8, transparency, depth maps for portrait mode, and several images in one file, which is how a burst is stored. Apple moved the iPhone camera to it in iOS 11 and has not looked back.
The cost is that HEVC is covered by a large pool of patents, licensed per device by a group of holders. Apple pays that licence across macOS and iOS, which is why Safari and Preview open these files without being asked twice. Google and Mozilla did not, which is why Chrome and Firefox never shipped a HEIC decoder and almost certainly never will.
On an iPhone or iPad
One photo, no app
Open the photo, press Share, and choose Copy Photo. Then paste it into Files, Notes, Mail or any app that accepts an image. What lands is a JPG, because iOS converts on the way out to whatever the receiving app can read. It is the fastest route for one or two pictures and it needs nothing installed.
A batch, with Shortcuts
Shortcuts is already on the phone and has a Convert Image action. Make a shortcut that takes images as input, converts them to JPEG, and saves the result to Files. Run it from the Share sheet with fifty photos selected and it will work through the lot. This is the only method on iOS that scales without an App Store download.
Sending them to a computer
There is a setting that does the conversion during the transfer. Under Settings → Photos, at the very bottom, Transfer to Mac or PC offers Automatic and Keep Originals. Automatic converts to JPEG as the photos come off the phone over a cable. Keep Originals sends the HEIC untouched. Automatic is the setting you want if the computer at the other end is a PC.
Note that AirDrop ignores this and always sends the original. So a photo AirDropped to a Mac arrives as a HEIC, which is fine, because the Mac reads them.
On a Mac
Select the files in Finder, right-click, and choose Quick Actions → Convert Image. Pick JPEG and a size, and the converted copies appear beside the originals. It handles hundreds of files at once and it is built into macOS.
Preview does the same job one file at a time through File → Export, with a quality slider, which is the better choice when you care about the exact size of one particular image.
In Terminal, sips is already installed and needs no arguments you have to look up twice:
sips -s format jpeg photo.heic --out photo.jpg
# every HEIC in the current folder
for f in *.heic; do sips -s format jpeg "$f" --out "${f%.heic}.jpg"; doneOn Windows
Windows 11 opens most HEIC photos out of the box. If yours will not, install HEIF Image Extensions from the Microsoft Store, which is free. Then open the photo in the Photos app, press the three dots, choose Save as, and pick JPG from the file type list.
If a particular file still refuses to open, it almost certainly contains video: a Live Photo, or a burst. Those need HEVC Video Extensions as well, which is the one Microsoft charges for. Paint and IrfanView both read HEIC once the extensions are in, and IrfanView will batch convert a folder, which the Photos app will not.
On Linux, or in a script
libheif is the reference implementation and packages as libheif-examples on Debian and Ubuntu:
heif-convert photo.heic photo.jpg
# ImageMagick, if it was built with libheif
magick photo.heic photo.jpgCheck magick -list format | grep -i heic before relying on ImageMagick. A build without HEIC support will fail on the file rather than tell you why, and distribution packages disagree about whether to include it.
Why a browser is the awkward case
Nearly every "convert HEIC online" site uploads your photo to a server, converts it there, and sends a JPG back. That works on any browser precisely because your browser is not doing the conversion. It also means a photo with a face and a location in it has been copied onto a machine you do not control, and you are taking the site's word for what happens next.
A converter that runs in the page, like the one this guide sits beside, has the opposite trade. Nothing is uploaded, and it can only do what the browser can already do. On Safari, on a Mac or an iPhone, that includes HEIC, and it works. On Chrome and Firefox it does not, because those browsers have no HEIC decoder to borrow. The tool says so on the file rather than failing quietly.
Ship a HEIC decoder with the page and it would work everywhere, at a cost of a megabyte or two of WebAssembly downloaded by everyone who opens the page. For a format the operating system in front of you already handles, that is a bad trade, and it is why this guide starts with the tool you already have.
Stopping it happening again
Go to Settings → Camera → Formats. High Efficiency shoots HEIC. Most Compatible shoots JPEG.
Before you switch, know what it costs. Every photo from that moment on takes roughly twice the space, and 4K60 and 1080p240 video are unavailable in Most Compatible because they require HEVC. It also does nothing at all to the photos already on the phone.
For most people the better answer is to leave it alone. Sharing a photo through Messages, WhatsApp, Instagram or email already hands over a JPG, so the format only surfaces when you copy files off the phone by hand. If that is rare, convert the handful that need it and keep the storage.
What you lose in the conversion, whichever method you use
- The motion in a Live Photo. JPG cannot hold video. You keep the still.
- Depth and portrait data. The blur that is already rendered stays. The map that let you re-edit it does not.
- HDR. A JPG is 8 bits per channel, so the extra highlight range is compressed into that.
- Roughly half your storage. The JPG will be noticeably larger than the HEIC.
- A little detail. Two lossy formats in a row always costs something, even where you cannot see it.
What survives is the picture itself and, on most methods, the EXIF data with it. The exception is any converter that re-encodes through a canvas, including browser-based ones, which drop the metadata entirely. That is worth knowing in both directions: it is a loss if you wanted the timestamp, and a feature if you were about to post the photo somewhere and would rather not publish where you took it.