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.

  1. Select your HEIC files in Finder
  2. Right-click → Open With → Preview
  3. In Preview, press Cmd+A to select all
  4. File → Export Selected Images
  5. 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:

  1. Select your HEIC files in Finder
  2. Right-click → Quick Actions → Convert Image
  3. Pick JPEG and a size
  4. 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:

  1. Open Automator (it’s in Applications)
  2. Create a new Workflow
  3. Add “Get Selected Finder Items”
  4. Add “Change Type of Images” and set it to JPEG
  5. 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 ImageMagick
brew install imagemagick
# Convert all HEIC files in current directory to JPG
for file in *.heic; do
magick "$file" "${file%.heic}.jpg"
done
# Recursive, preserving folder structure
find . -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 ActionsBest free optionSlow, no quality controlDon’t bother
PreviewWorks fineGets sluggishCrashes or hangs
AutomatorOverkillDecent if set upNo folder structure
Command lineOverkillGood if you know itGreat if you know it
PicmalInstantInstantStill 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.