Last month I imported 800 photos from my iPhone to my Mac. Every single one was HEIC. I needed JPGs to upload to a client’s WordPress site, and the site rejected every file.
Most people hit this wall the same way. Your iPhone shoots HEIC by default since iOS 11. Half the file size of JPG at the same quality, which is genuinely clever. But WordPress, Shopify, email clients, Windows machines, older apps: they don’t know what to do with it. You get a red error banner and a pile of unusable files.
So you need to convert them. And if you have more than a handful, you need to do it in batch.
I’ve tried every method. Here’s what actually works, ranked by how much of your afternoon each one eats.
Picmal — what I built for exactly this
I built Picmal because I got tired of the workarounds I’m about to describe below. Drag your files in, pick a format, hit convert. Done.
What makes it different from the free options:
- Handles thousands of files at once without your fans spinning up or the app going white
- Keeps your folder structure — drag a nested folder of vacation albums and the output mirrors it exactly
- Preserves metadata — GPS coordinates, camera settings, dates all survive
- Works offline — nothing leaves your Mac, ever
- Right-click integration — select files in Finder, right-click, “Convert with Picmal” (see how to enable this)
If you do this regularly (uploading to a CMS, sending files to clients, archiving old shoots), this is the fastest path. $15.99, one-time purchase, no subscription.
For the rest of this post, here are the free alternatives and where each one falls apart.
Preview — fine for a few files
Preview is already on your Mac. It can convert images.
- Select your HEIC files in Finder
- Right-click → Open With → Preview
- In Preview, press Cmd+A to select all
- File → Export Selected Images
- Pick JPEG, choose a destination folder
Where it falls apart: Preview wasn’t designed for batch work. Above ~50 files the progress bar starts crawling. It flattens your folder structure into a single directory. And it strips metadata silently; you won’t notice your GPS data is gone until you’re searching for where a photo was taken and get nothing.
Good enough for 10-20 files. Beyond that, Preview becomes the bottleneck.
Quick Actions — the hidden Finder option
Since macOS Monterey, there’s a built-in option most people miss:
- Select your HEIC files in Finder
- Right-click → Quick Actions → Convert Image
- Pick JPEG and a size
- Done
Faster than Preview for small batches, and it creates copies instead of overwriting originals. But it shares the same blind spots: no metadata preservation, no folder structure, and your only quality options are “small/medium/large/actual size.” That’s it.
Automator — powerful but fragile
You can build a reusable workflow in Automator:
- Open Automator (it’s in Applications)
- Create a new Workflow
- Add “Get Selected Finder Items”
- Add “Change Type of Images” and set it to JPEG
- Save it
Then you can select files in Finder, right-click → Services → your workflow name.
The catch: Automator replaces your originals unless you add a “Copy Finder Items” step first. I found this out by watching 200 HEICs turn into JPGs with no way back. It also doesn’t handle nested folders; everything gets dumped into one flat directory.
If you’re comfortable with Automator, it’s a decent free option for regular use. Just don’t skip the copy step, or your originals are gone.
Command line — for developers
If you’re comfortable with Terminal:
# Install ImageMagickbrew install imagemagick
# Convert all HEIC files in current directory to JPGfor file in *.heic; do magick "$file" "${file%.heic}.jpg"done
# Recursive, preserving folder structurefind . -name "*.heic" -exec sh -c 'magick "$1" "${1%.heic}.jpg"' _ {} \;Fast, scriptable, handles any volume. But there’s no preview, no quality slider, and if you mistype the path you’ll stare at an error message for ten minutes wondering what went wrong. Most people reading this post aren’t looking for a Terminal solution.
Which method to use
| Small batch (<20 files) | Medium batch (20-200) | Large batch (200+) | |
|---|---|---|---|
| Quick Actions | Best free option | Slow, no quality control | Don’t bother |
| Preview | Works fine | Gets sluggish | Crashes or hangs |
| Automator | Overkill | Decent if set up | No folder structure |
| Command line | Overkill | Good if you know it | Great if you know it |
| Picmal | Instant | Instant | Still instant |
A note on online converters
You’ll find dozens of “free HEIC to JPG” websites. They all work the same way: upload your photos to someone’s server, wait, download the results.
Think about what’s in those photos. Location data. Faces. Your living room. Your kids at the park. Your clients’ unreleased product shots. You’re handing all of that to a server you know nothing about, run by people whose privacy policy is a wall of text nobody reads.
Every method in this post runs entirely on your Mac. Your photos stay on your machine.
The real solution to the HEIC problem
You can also tell your iPhone to stop shooting HEIC entirely. Go to Settings → Camera → Formats → Most Compatible. Every photo will be JPG from now on.
The tradeoff: your photos will be roughly twice the size. If your 128GB phone is already at 90%, that’s a problem.
The better approach is to keep shooting HEIC (it really is a better format for storage) and convert when you need to share. That’s the workflow Picmal was built for: keep the originals on your phone, convert copies on your Mac when someone actually needs a JPG.
