When You Need Batch HEIC to JPG Conversion
Apple adopted HEIC (High Efficiency Image Container) as the default photo format starting with iOS 11 and macOS High Sierra. HEIC files are roughly 50% smaller than equivalent JPGs at the same visual quality, which saves significant storage on iPhones and iPads. The problem appears the moment you try to share those photos outside the Apple ecosystem.
Windows PCs, older Android devices, many web platforms, printing services, and legacy photo editors do not open HEIC files natively. When you have a handful of images, converting them one at a time is manageable. But after a vacation, a product photoshoot, or a full iCloud library export, you may be looking at hundreds or thousands of HEIC files that all need to become JPGs.
That is exactly what batch conversion solves — processing an entire folder of HEIC images in a single operation rather than repeating the same steps for every file.
Method 1: Convertio.com — Online Batch Converter
The fastest method that works on every operating system — Windows, Mac, Linux, and even mobile devices. No installation required.
How it works
- Open the converter above (or scroll to the bottom of this page).
- Drag and drop multiple HEIC files onto the upload area. You can select an entire folder in your file picker — hold
Ctrl(Windows/Linux) orCmd(Mac) to multi-select. - Click Convert. All files are processed in parallel on our servers.
- Download your JPG files once the conversion is complete.
Privacy note: All uploaded files are transmitted over encrypted HTTPS and automatically deleted from our servers within 2 hours. We do not view, share, or store your photos beyond the conversion window.
Why use the online method
- Cross-platform — works in any modern browser on any OS.
- No software to install — nothing to download, update, or uninstall later.
- Preserves EXIF metadata — camera model, GPS location, date taken, and other tags are carried over to the JPG output.
- High-quality defaults — the converter uses optimized quality settings so you do not have to configure anything.
- Works on mobile — select photos directly from your iPhone or iPad gallery and convert them in Safari or Chrome.
Method 2: Mac Finder Quick Action
Starting with macOS Monterey (12.0), Finder includes a built-in batch image converter. No terminal, no apps — just right-click.
Steps
- Open Finder and navigate to the folder containing your HEIC files.
- Select all files: press
Cmd + Ato select everything, orCmd + Clickto pick specific files. - Right-click (or Control-click) the selection.
- Choose Quick Actions → Convert Image.
- In the dialog, set format to JPEG and choose a size (Actual Size keeps the original resolution).
- Click Convert to JPEG. New JPG files appear alongside the originals.
Tip: If you do not see "Convert Image" in the Quick Actions menu, go to System Settings → Privacy & Security → Extensions → Finder and make sure "Convert Image" is enabled.
Limitations
- Only available on macOS Monterey (12.0) and later.
- No control over JPG quality level — macOS picks its own default.
- Slower than command-line methods for very large batches (1,000+ files).
- Output files are placed in the same directory as the originals, which can clutter the folder.
Method 3: Mac Terminal with sips
The sips (scriptable image processing system) command is pre-installed on every Mac. It handles batch conversion with a simple loop and works from macOS El Capitan onward.
The command
Open Terminal, cd into the folder with your HEIC files, and run:
for f in *.heic *.HEIC; do
[ -f "$f" ] || continue
sips -s format jpeg "$f" --out "${f%.*}.jpg"
done
This iterates over every .heic and .HEIC file in the current directory, converts each one to JPEG format, and saves it with a .jpg extension. The [ -f "$f" ] || continue guard skips the pattern if no matching files exist.
Setting JPG quality
By default, sips uses a high quality setting. To set it explicitly (e.g. quality 90 on a scale of 0–100):
for f in *.heic *.HEIC; do
[ -f "$f" ] || continue
sips -s format jpeg -s formatOptions 90 "$f" --out "${f%.*}.jpg"
done
Saving to a separate folder
To keep your originals clean, output to a subdirectory:
mkdir -p jpg_output
for f in *.heic *.HEIC; do
[ -f "$f" ] || continue
sips -s format jpeg -s formatOptions 92 "$f" --out "jpg_output/${f%.*}.jpg"
done
Note: sips strips most EXIF metadata during conversion. If you need to preserve GPS coordinates, camera model, and date taken, use the online converter or install exiftool to copy metadata separately: exiftool -TagsFromFile original.heic output.jpg
Method 4: Windows PowerShell with ImageMagick
Windows does not include a native HEIC converter, but ImageMagick — a free, open-source image processing toolkit — handles HEIC files with full quality control. After installing ImageMagick (make sure to check "Add to PATH" during installation and install the HEIF delegate), open PowerShell and run:
The command
Get-ChildItem *.heic | ForEach-Object {
magick $_.FullName -quality 92 ($_.DirectoryName + "\" + $_.BaseName + ".jpg")
}
This finds every .heic file in the current directory, converts it to JPG at quality 92, and saves it alongside the original.
Saving to a separate folder
New-Item -ItemType Directory -Force -Path ".\jpg_output"
Get-ChildItem *.heic | ForEach-Object {
magick $_.FullName -quality 92 (".\jpg_output\" + $_.BaseName + ".jpg")
}
Recursive conversion (subfolders included)
To process HEIC files in all subfolders while preserving the directory structure:
Get-ChildItem -Recurse -Filter *.heic | ForEach-Object {
$outDir = $_.DirectoryName -replace 'HEIC_Folder', 'JPG_Output'
New-Item -ItemType Directory -Force -Path $outDir | Out-Null
magick $_.FullName -quality 92 ("$outDir\" + $_.BaseName + ".jpg")
}
Tip: If magick reports "no decode delegate for this image format," the HEIF delegate was not installed. Re-run the ImageMagick installer and check the box for HEIF/HEIC support, or install libheif separately.
Method 5: Linux CLI with libheif
On Linux, the libheif package provides heif-convert, a dedicated HEIC decoding tool. Install it from your distribution's repository:
# Debian / Ubuntu
sudo apt install libheif-examples
# Fedora
sudo dnf install libheif-tools
# Arch Linux
sudo pacman -S libheif
Batch conversion command
for f in *.heic *.HEIC; do
[ -f "$f" ] || continue
heif-convert "$f" "${f%.*}.jpg" -q 92
done
The -q 92 flag sets JPEG quality to 92 (range: 0–100). This provides an excellent balance between file size and visual quality.
Saving to a separate folder
mkdir -p jpg_output
for f in *.heic *.HEIC; do
[ -f "$f" ] || continue
heif-convert "$f" "jpg_output/${f%.*}.jpg" -q 92
done
Speeding up with GNU Parallel
For thousands of files, heif-convert runs sequentially by default. Use GNU Parallel to utilize all CPU cores:
ls *.heic *.HEIC 2>/dev/null | parallel heif-convert {} {.}.jpg -q 92
This distributes the work across all available cores, cutting conversion time roughly proportional to your core count.
Method Comparison
Each method has trade-offs. Choose based on your platform, batch size, and need for quality control.
| Feature | Convertio.com | Mac Finder | Mac sips | Win PowerShell | Linux CLI |
|---|---|---|---|---|---|
| Platform | Any (browser) | macOS 12+ | macOS | Windows | Linux |
| Install required | No | No | No | Yes (ImageMagick) | Yes (libheif) |
| Quality control | Auto-optimized | No | Yes (0–100) | Yes (0–100) | Yes (0–100) |
| EXIF preserved | Yes | Partial | No | Yes | Yes |
| Recursive folders | Manual select | No | With script | Yes | Yes |
| Speed (100 files) | ~1–3 min | ~2–4 min | ~30–60 sec | ~30–60 sec | ~20–40 sec |
| Best for | Quick one-off batches | Small batches | Mac power users | Windows automation | Server pipelines |
Tips for Batch HEIC to JPG Conversion
Choosing the right JPG quality
JPG quality is specified on a scale of 0 to 100. Higher values produce larger files with less compression artifacts. Here is a practical guideline:
- 95–100: Near-lossless. Files are 2–3x larger than the HEIC originals. Only use this for archival or professional printing.
- 88–92: The sweet spot. Visually indistinguishable from the original for most viewers. File size is roughly equal to or slightly larger than HEIC. This is the recommended setting.
- 75–85: Noticeable softening on close inspection, especially in sky gradients and hair detail. Acceptable for web thumbnails and social media posts where platforms will re-compress anyway.
- Below 75: Visible blocking artifacts. Not recommended unless file size is the top priority.
File naming and organization
When batch converting, use a separate output folder to keep originals and converted files apart. All of the command-line methods above include an output folder variant. This makes it easy to verify the results before deleting the HEIC originals.
Verifying the results
After a large batch conversion, do a quick sanity check:
- File count: Make sure the number of JPG files matches the number of HEIC originals. A simple
ls *.jpg | wc -l(or(Get-ChildItem *.jpg).Counton PowerShell) will confirm. - Spot-check quality: Open 5–10 random files and compare them to the originals side by side. Look for color accuracy, sharpness, and detail in shadow areas.
- File size range: Converted JPGs at quality 92 are typically 1.5–2.5x the size of the HEIC originals. If a file is suspiciously small, it may have failed silently.
Preventing HEIC at the source
If you prefer JPG going forward, you can change your iPhone camera settings:
- Open Settings → Camera → Formats.
- Select Most Compatible instead of High Efficiency.
This switches the camera to shoot JPG natively. Note that this increases storage usage by roughly 50%, and existing HEIC photos in your library will not be retroactively converted — you still need batch conversion for those.