Convert HEIC to JPG on a Mac: keeping the originals intact
The task arrives from somewhere else. A form will not accept the upload. A client says the photos will not open. A content management system silently rejects half a batch. The files came off an iPhone, they end in .heic, and something downstream wants .jpg. What makes this annoying is not the conversion itself, which takes one command, but the decisions around it: whether the originals survive, whether the batch is a hundred files or five thousand, and whether this will happen again next month.
Most guides answer only the first part. The part worth getting right is the second, because the usual quick fix converts files in place and leaves nothing to go back to.
The Mac is not what is refusing the file
HEIC is a container, specifically an HEIF file holding a still image compressed with HEVC. Apple documents the format and the settings that produce it on its HEIF and HEVC page, and describes the trade it makes: better compression than JPEG at the same visual quality, so the photos take less space on the device and in iCloud Photos.
macOS reads it natively. Quick Look shows it, Preview opens it, Photos imports it, and the command line tool that ships with the system converts it. The refusal is always further down the chain: an upload form checking file extensions, a print service, a Windows machine without the codec, an older version of some application, an image library in a language runtime that was last updated before 2017.
This matters for one practical reason. Converting the whole photo library "so the Mac can read them" is wasted work and costs storage. The right amount of conversion is the files that are actually leaving, at the moment they leave.
Four routes, and what each one is for
| Route | Handles a large batch | Quality control | Originals kept | Setup needed |
|---|---|---|---|---|
| Preview export | Yes, but sluggish past a few hundred | Slider, no numeric value | Yes, if a new folder is chosen | None |
sips in Terminal |
Yes, thousands | Numeric, 0 to 100 | Only with --out |
None, ships with macOS |
| Shortcuts or Quick Action | Yes | Limited | Depends how it is built | Built once |
| Third-party converter app | Varies | Varies | Varies | Install and trust it |
The two that ship with the system cover almost every real case. A converter app is worth it mainly for formats macOS does not handle, which HEIC is not.
Preview, when the batch is small and you want to see it
Preview handles this without any setup, and it is the right choice when the photos need looking at before they go out.
Open all the files in one Preview window, show the sidebar, and select the thumbnails to convert. The File menu's export item then names how many images are selected, and the export sheet offers a format menu with JPEG in it, along with a quality slider. Choosing a different destination folder is the step that protects the originals, and it is the step most often skipped. If the destination already holds files with those names, Preview asks whether to replace them, which is the last chance to notice a mistake.
Two limits are worth knowing before starting. Preview holds every selected image in memory, so several hundred large photos at once becomes slow and occasionally stops responding. Working in batches of fifty or a hundred is faster than one large selection that has to be abandoned halfway. And the quality slider has no numeric readout, so the same visual setting cannot be reproduced exactly next time. For a one-off that does not matter. For a monthly job it does.
sips, when it will happen again
sips is the scriptable image processing system, and it has been part of macOS for years. It needs nothing installed. A full list of what it can read and write comes from:
sips --formats
public.heic and public.jpeg both appear there marked writable. The conversion itself is one line, and the important part is --out:
mkdir jpg
sips -s format jpeg *.heic *.HEIC --out jpg
Everything lands in the new folder and the originals are untouched. It prints a warning that the output suffix was changed to jpg, which is the tool telling you it did the sensible thing. Listing both extension cases matters more than it looks: photos arrive as .heic from some paths and .HEIC from others, and a pattern matching only one silently skips the rest of the batch.
Quality is a number rather than a slider:
sips -s format jpeg -s formatOptions 85 *.heic *.HEIC --out jpg
The value runs from 0 to 100. Writing it down means next month's batch matches this month's.
Checking what you have before converting thousands of files is worth the extra second:
sips -g format -g pixelWidth -g pixelHeight IMG_3188.HEIC
The single most damaging mistake is running sips without --out. Without it the tool rewrites the file in place, and it warns rather than refuses. The result is a file still named .heic whose contents are now JPEG data, with the original gone. Some applications then read it correctly, some refuse it because the extension lies, and the original resolution and colour data cannot be recovered. Every batch deserves a destination folder.
A right-click that does it, for the people who will not open a terminal
The third route in the table deserves its own explanation, because it is the one that survives being handed to somebody else. Both the Shortcuts app and Automator can wrap the conversion in a Quick Action, which then appears in the Finder context menu for any selected file.
In Shortcuts, a new shortcut set to appear as a Quick Action in Finder takes the selected files as its input, runs a convert-image step set to JPEG, and saves the result. Automator does the same thing with a Quick Action workflow containing a change-type action. Either way the finished item lives in the Finder menu, and converting a selection becomes a right-click rather than a remembered command. For a shared machine, or for a colleague who will never open Terminal, this is the version that actually gets used.
The judgement call is where the output goes. A Quick Action that writes alongside the originals fills the folder with pairs, which is fine for five files and a mess for five hundred. A Quick Action that writes into a fixed subfolder stays tidy but needs that folder to exist. Building the folder creation into the workflow, rather than assuming it, is what stops the thing failing silently the first time someone runs it somewhere new.
There is also a folder-based variant that removes the click entirely. A Folder Action watches a directory and runs a workflow on anything dropped in it, so a folder named for the purpose becomes the conversion step: drop HEIC files in, collect JPEG files from the output folder. For a recurring handoff to the same destination every week, that is less to remember than any command, and it keeps the rule in one place instead of in somebody's head.
What none of these do is change the underlying trade-offs. The size still grows, the metadata still travels, and the originals are still only as safe as the destination the workflow was pointed at.
What the converted file actually is
Two things about the output surprise people, and both are measurable rather than theoretical.
The first is size. Converting to JPEG makes files bigger, not smaller, because the source was more efficiently compressed to begin with. On a photo from an iPhone 14 Pro at 4032 by 3024 pixels, the HEIC original measured about 1.2 MB. The default JPEG export from the same file came out around 1.9 MB. Asking for quality 100 produced roughly 3.2 MB, and quality 80 landed near 1.9 MB as well. The practical reading is that quality 80 to 90 is where the size stops growing for no visible return, and that a folder of ten thousand photos converted at full quality needs planning for rather than discovering.
The second is metadata. The conversion carries the photo's information across rather than stripping it. On that same file, the capture date, the camera make and model, the orientation and the GPS coordinates all appeared unchanged in the JPEG. That is usually what you want, because the shooting date is what keeps a library sortable. It is also worth pausing over before sending photos to someone outside the household, since the location where each one was taken travels with it. Converting the format and removing the location are separate jobs, and the conversion does not do the second one for you.
Stopping the supply at the camera
If the same conversion keeps coming up, the cheapest fix is upstream. On the iPhone, Settings has a Camera section with a Formats option, and choosing Most Compatible makes new photos and videos capture as JPEG and H.264 instead. Apple documents the switch and its effect on the same HEIF page.
Two things to be clear about. It only affects new captures, so nothing already in the library changes, and the existing folder still needs converting once. And it gives up the compression advantage, which on a phone with a nearly full storage tier is a real cost rather than a theoretical one. For someone who sends photos to a Windows-based office every week it is the correct trade. For someone who hits this twice a year it is not.
There is a second upstream setting people try and find unreliable. Settings has a Photos section with a transfer option for a Mac or PC, and its automatic mode is aimed at destinations that cannot read the format. A Mac can read it, so this is not a dependable way to make JPEG appear on a Mac. Capturing in the compatible format, or converting deliberately, are the two routes that behave the same way every time.
Where the conversion belongs
The reason this task stays irritating even after the command is known is the shuffling around it. Find the folder in one window, open a terminal, remember where the folder was, type the path, go back and check the output, then select and send the results. The conversion takes two seconds. The window juggling takes two minutes, every time.
Collapsing that is the actual improvement. A file manager with a built-in terminal means the shell is already in the folder that is on screen, so the --out path is a name rather than a path, and the results appear in the same view. The panes this is built from are described in Features, and the trade-offs against other tools are laid out in Compared with other file managers. For the recurring version of the job, where a folder of photos needs the same treatment every week, a saved command is better than a remembered one, and the questions that come up most often are collected in the FAQ.
What to change first
Make a destination folder a habit before anything else, because --out is the difference between a conversion and a loss. Then write down the quality number that looked right, so the next batch matches. If the friction is the path typing and the window switching rather than the command itself, that is the part Atriens was built to remove.
Frequently asked questions
Does converting HEIC to JPG on a Mac delete the originals?
Only if you let it. Preview keeps them as long as the export goes to a different folder, and sips keeps them as long as --out names a destination. Running sips without --out rewrites each file in place and the original is gone, so the destination folder is the safeguard.
Why are the JPG files larger than the HEIC files they came from?
Because HEIC compresses more efficiently at the same visual quality. On a 4032 by 3024 photo measured for this article, a 1.2 MB HEIC original became about 1.9 MB as JPEG at the default setting, and about 3.2 MB at quality 100. Budget for the batch growing rather than shrinking.
Do the shooting date and location survive the conversion?
Yes. The capture date, camera make and model, orientation and GPS coordinates all carried across unchanged in testing. That keeps the library sortable, and it also means the location travels with any photo sent to someone else, which is worth a thought before sharing.
How do you convert a whole folder at once without installing anything?
sips ships with macOS. Make an output folder, then run sips -s format jpeg *.heic *.HEIC --out jpg from the folder holding the photos. Listing both extension cases matters, because photos arrive with either one depending on how they reached the Mac.
Can the iPhone just stop producing HEIC files?
Yes. Settings, then Camera, then Formats, then Most Compatible makes new photos capture as JPEG. It changes nothing already in the library, and it gives up the storage saving, so it suits people who send photos onward regularly rather than occasionally.