iPhone photos save as HEIC by default since 2017. The format is 30-50% smaller than JPEG at the same quality, which is great for iCloud storage and Apple-to-Apple sharing. But the moment you send those photos to a Windows PC, an Android phone, an older CMS, an email recipient on Outlook 2019, or paste them into Slack from the desktop — half of those tools either can't display HEIC or strip the file silently.
The fix is converting HEIC to JPEG. The hard part is doing it for a whole folder of photos, not one at a time.
This post covers the four practical approaches on Mac, ranked from "easiest" to "most powerful".
When you actually need to convert
You generally don't. iPhone photos in HEIC are fine for:
- Sharing with other Apple users via iMessage, AirDrop, Photos sharing
- Backing up to iCloud Photos
- Editing on Mac in Photos, Preview, or any modern Mac photo app
You only need conversion when the destination tool can't read HEIC:
- Old CMSs (WordPress without an HEIC plugin, older Wix/Squarespace setups)
- Microsoft Office before 2024 (Word, PowerPoint inserting images)
- Some print services, photo-book vendors, or government upload forms
- Android (most modern Android phones now read HEIC, but older ones don't)
- Image hosting services that resize or thumbnail with older libraries
- Slack desktop on Windows (the iOS version handles HEIC; the desktop is inconsistent)
If the destination handles HEIC, save yourself the conversion step and the file size.
Option 1: Photos app → Export (no install, slow)
Apple's Photos app on Mac has a built-in HEIC-to-JPEG export. Best for occasional one-off conversions, slow for batches.
1. Open Photos.app 2. Select your photos (Cmd+A for all, Cmd+click for multiple) 3. File → Export → Export N Photos… 4. Photo Kind → JPEG 5. Quality → "High" or "Maximum" 6. Pick the output folder
Pros: zero install, native, preserves location and date metadata. Cons: slow on 100+ photos. The export dialog hangs noticeably on libraries over ~500 photos. Also requires the photos to already be in your Photos library, which isn't always the case if you just received a Dropbox of someone's iPhone shots.
Option 2: Preview → Export (no install, one-at-a-time-but-better)
Preview can batch-export a folder selection via Cmd+A. Reasonable for a folder of 20-50.
1. Select all HEIC files in Finder 2. Right-click → Open With → Preview 3. In Preview's sidebar (Cmd+Opt+2 if hidden), Cmd+A to select all 4. File → Export Selected Images… 5. Format → JPEG, Quality → adjust slider 6. Pick output folder
Pros: faster than Photos for small batches, no install. Cons: still has UI overhead per file. Larger batches (200+) get sluggish.
Option 3: macOS sips command line (fastest free option)
sips is the command-line image processor built into every macOS install since 2003. For batch HEIC-to-JPEG conversion, it's the fastest and lightest tool you have.
```bash
Convert all HEIC files in current folder to JPEG, output to ./_jpeg/
mkdir -p _jpeg for f in .heic .HEIC; do [[ -f "$f" ]] || continue sips -s format jpeg "$f" --out "_jpeg/${f%.*}.jpg" done ```
Add quality control:
```bash
Same, but quality 85 (good balance) and resize to max 2400px
mkdir -p _jpeg for f in .heic .HEIC; do [[ -f "$f" ]] || continue sips -s format jpeg -s formatOptions 85 -Z 2400 "$f" --out "_jpeg/${f%.*}.jpg" done ```
That handles 100 photos in roughly 10 seconds on an Apple Silicon Mac.
Make it a reusable command — save as ~/bin/heic2jpg:
```bash #!/usr/bin/env bash
Usage: heic2jpg <folder> [quality]
set -euo pipefail INPUT="${1:-.}" QUALITY="${2:-85}" mkdir -p "$INPUT/_jpeg" shopt -s nocasematch for f in "$INPUT"/.heic; do [[ -f "$f" ]] || continue name="$(basename "$f")" out="${name%.}.jpg" sips -s format jpeg -s formatOptions "$QUALITY" "$f" --out "$INPUT/_jpeg/$out" >/dev/null echo " → $out" done ```
chmod +x ~/bin/heic2jpg, add ~/bin to PATH, and then:
``bash heic2jpg ~/Downloads/iphone-photos heic2jpg ~/Downloads/iphone-photos 95 # higher quality ``
Pros: fastest, scriptable, zero ongoing dependencies, free forever, ships with macOS. Cons: Terminal-based. If you're not comfortable in a shell, this isn't the right path.
For the full sips reference, see macOS sips command — the complete guide.
Option 4: QuickPix (GUI on top of sips, with extras)
If you do this weekly and don't want to remember shell flags, QuickPix wraps sips with drag-and-drop UI plus features sips doesn't have:
1. Drop folder into QuickPix 2. Pick "Convert to JPEG" 3. Adjust quality preset 4. Save
What QuickPix adds on top of bare sips:
- Before/after slider to verify quality visually
- Format options panel showing exactly what's being changed
- Batch progress with file counts and ETA
- Folder watching (Pro) — point at a folder, anything dropped in gets converted automatically
- Preserves color profile by default (Display P3 → Display P3 in JPEG, sRGB → sRGB)
- EXIF + date metadata preserved (so timeline / Photos library imports stay sorted)
If you're a designer / photographer with iPhone source assets that need to go to a non-Apple CMS or design tool, the folder-watching mode is the actual time saver — drop assets in Dropbox/Slack share folder, get JPEGs in the parallel folder ready for the CMS.
Quality and metadata: things to think about
A few non-obvious traps when converting HEIC to JPEG:
EXIF and GPS data
By default sips and Photos preserve EXIF and GPS in the output JPEG. If you're publishing photos to a public site, strip these unless you mean to share the location:
``bash sips -s format jpeg -d all input.heic --out output.jpg ``
-d all deletes EXIF, ICC profile, and GPS. Test with exiftool output.jpg to confirm.
Color profile drift
iPhones since the X capture in Display P3 (wider gamut than sRGB). When converting HEIC to JPEG, the color profile is typically preserved by sips and Photos, but some lower-quality online converters silently convert to sRGB without ICC tagging — which makes colors look slightly off on color-accurate displays.
To preserve P3 explicitly in sips: the default behavior already does this. To force sRGB (if the destination doesn't support P3):
``bash sips -m /System/Library/ColorSync/Profiles/sRGB\ Profile.icc input.heic --out output.jpg ``
Burst photos and Live Photos
iPhone Burst photos export as multiple HEICs (one per shot in the burst). Live Photos are HEIC + MOV pairs — converting just the HEIC loses the motion. If you need to keep the motion as MP4:
```bash
Convert the still
sips -s format jpeg photo.HEIC --out photo.jpg
Convert the live photo motion to MP4 (uses ffmpeg)
ffmpeg -i photo.MOV -c:v libx264 -crf 23 photo-motion.mp4 ```
File size
A typical 12MP iPhone HEIC is ~2-3 MB. The JPEG equivalent at quality 90 is ~4-5 MB; at quality 80 it's ~2.5 MB; at quality 70 it's ~1.5 MB. Quality 85 is the sweet spot — visually indistinguishable, similar file size to the source HEIC.
Quick recipe table
For the laziest reference:
| Number of HEIC files | Recommended tool | Time | |---|---|---| | 1-5 (one-off) | Preview Export | 30 sec | | 5-50 (occasional) | Photos.app Export | 1-3 min | | 50+ (recurring) | QuickPix or sips script | 10 sec / 100 photos | | 100+ (daily) | QuickPix folder-watching | automatic |
What about iOS shortcuts?
There's also an iOS Shortcuts route: a "Convert HEIC to JPEG" shortcut can run on your iPhone before AirDropping to Mac. It works, but the round trip is slower than doing it on Mac after you transfer, and quality control is limited.
If you're on iPhone trying to send a HEIC to a Windows friend, the simpler fix is iOS Settings → Camera → Formats → Most Compatible — which captures new photos as JPEG by default. (Existing HEIC photos still need conversion.)
Closing
For most Mac users, sips in a shell loop is the right answer — free, fast, scriptable, no install. If you find yourself running the same loop weekly or want GUI feedback, QuickPix puts the same engine behind drag-and-drop with batch and folder-watching. Free tier handles unlimited single-format batches.
FAQ
How do I convert HEIC to JPEG on Mac for free?
Use macOS's built-in tools: Photos.app (File → Export → JPEG), Preview (File → Export → JPEG), or the sips command line (sips -s format jpeg input.heic --out output.jpg). All three are free and ship with macOS. For batch conversion of 50+ files, the sips shell loop is fastest.
Why can't Windows open HEIC files?
Windows can open HEIC since Windows 10 with the HEIF Image Extensions package installed, but older Windows versions and many third-party tools on Windows still don't support it natively. Converting to JPEG before sending to Windows users is the safest path.
Does converting HEIC to JPEG lose quality?
Yes — both formats are lossy, and re-encoding from HEIC to JPEG involves a second compression step. Quality 85 JPEG looks visually indistinguishable from the HEIC source on most displays. Quality 95+ is overkill and produces files much larger than the HEIC original.
Will the JPEG conversion preserve photo date and location?
By default yes — both sips and Photos preserve EXIF date and GPS data when converting. If you don't want location data in the JPEG (e.g., for public sharing), strip it with sips -d all or use a metadata-removal tool after.
What's the difference between sips and a third-party converter?
sips is Apple's native Core Graphics-based image processor that ships in every macOS install. Output quality matches Preview's Export. Third-party converters (online tools, Mac apps) often use the same Core Graphics engine, ImageMagick, or libavif under the hood. The main differences are batch convenience, format breadth (AVIF, WebP support), and whether processing happens locally or in the cloud.