How I Stopped Delivering HEIC Files: A Practical HEIC-to-JPG Workflow for Photographers

Deliver Client-Ready JPGs in 30 Minutes: What You'll Achieve

What will you have after following this tutorial? Quick answer: a repeatable workflow that turns HEIC originals into client-ready JPGs with correct color, preserved metadata, sensible filenames, and web-optimized sizes. Expect consistent exports, fewer "I can't open this" emails, and faster delivery times. Can you do it in 30 minutes for a 50-photo gallery? Yes, if you set up the right presets and use batch tools. Want full-resolution deliverables for archives and smaller JPGs for web galleries? You can automate both.

Before You Start: Required Files, Software and Hardware for HEIC Conversion

What do you actually need on day one? Here's the checklist I use before I touch a single file.

    A copy of your HEIC originals. Always keep originals backed up. Do not overwrite them. Computer with enough free disk space. Rule of thumb: allow 3x the size of the folder you're processing for temp files and exports. One of these conversion tools or apps installed (pick at least one desktop and one backup method): Lightroom Classic, macOS Preview/Photos, ImageMagick or heif-convert (libheif), or a dedicated HEIC-to-JPG app like iMazing HEIC Converter. ExifTool for metadata preservation and reattachment when necessary. Color profile file(s) if you plan to force conversion to sRGB (sRGB IEC61966-2.1 is standard). Optional: jpegoptim or MozJPEG for final compression and optimization.

Quick Tools and Resources Table

Tool Platform Why it matters Lightroom Classic macOS, Windows Batch export, presets, metadata handling, color management Preview / Photos macOS Fast manual export for a few files, color profile options ImageMagick (magick) macOS, Windows, Linux Scriptable batch conversion, integrate into pipelines heif-convert (libheif) macOS, Linux, Windows builds available Accurate HEIF/HEIC decoding, fast single-file converts ExifTool All Read/write metadata, copy EXIF/IPTC between files jpegoptim / MozJPEG All Efficient JPEG compression for client-delivered web galleries

Your HEIC-to-JPG Workflow: 8 Steps from Import to Client Delivery

Ready to stop guessing and start delivering? Here’s my step-by-step process tested on weddings, portraits and brand shoots. Each step includes commands or app settings you can copy.

Step 1 — Import and Verify Originals

Ask yourself: are the HEICs straight off a phone or exported from a camera? Either way, copy them into a project folder and checksum them if you care about validation. Example command for checksums:

shasum -a 256 *.HEIC > checksums.sha256

Why checksum? If a batch fails during conversion you'll know which file changed.

Step 2 — Decide Deliverable Types and Sizes

What does your client expect? Full-res JPGs and web-sized copies? I typically export two sets: archive-quality (JPEG quality 90, long edge at original) and web delivery (quality 80, long edge 2048 px, progressive). Numbers I use: quality 90 for final prints, quality 80 for web. These numbers balance size and visible fidelity.

Step 3 — Convert Color Profile to sRGB

Ever seen a client open a photo and complain about odd colors? Many HEICs use Display P3. Convert to sRGB to avoid surprises. In Lightroom, set Export > Color Space: sRGB. With ImageMagick:

magick input.heic -profile sRGB.icm output.jpg

If you don't have sRGB.icm, use the export profile in Lightroom or Preview to force sRGB.

Step 4 — Batch Convert Using Your Chosen Tool

Pick your weapon. Here are fast examples.

    Lightroom Classic: Import HEICs. Apply keyword, star, or color-label. Export with preset: JPG, quality 90, color space sRGB, metadata: Copyright and contact only (or full, if needed). macOS Terminal quick-loop:

for f in *.HEIC; do sips -s format jpeg "$f" --out "$f%.*.jpg"; done

    ImageMagick batch (preserve folder structure):

magick mogrify -format jpg -quality 90 -path ./out *.HEIC

    heif-convert single file:

heif-convert IMG_8558.heic IMG_8558.jpg

Step 5 — Reattach or Verify Metadata

Did your conversion strip EXIF, IPTC, cloud converter tool or copyright? Use ExifTool to copy metadata from the HEIC originals back to the JPGs:

exiftool -TagsFromFile %d%f.HEIC -all:all -overwrite_original %d%f.jpg

This command copies all tags from same-name HEIC to JPG file in the same folder. Want to only copy copyright and contact? Replace -all:all with -Copyright -Artist -Contact.

Step 6 — Optimize and Resize for Delivery

After you confirm color and metadata, compress for web. Try jpegoptim for a fast pass:

jpegoptim --max=80 --strip-all --all-progressive *.jpg

Or use MozJPEG for slightly better quality at the same file size. Example pipeline: convert to ppm, compress with cjpeg, wrap back to jpg. Yes, it sounds nerdy; it works.

Step 7 — Rename Files and Produce a Delivery Set

Clients appreciate readable filenames. My rule: include date and short slug. Example:

IMG_8558.heic becomes 2025-06-12_wedding-jones_001.jpg or 20250612_Jones_wed_001.jpg

Use exiftool to batch rename by date shot:

image

exiftool '-FileName

Add a suffix for edited vs unedited: _final or _edit01.

Step 8 — Final QA and Delivery

Open a random sample of 10-20 exported JPGs at 100% zoom, check color, check metadata (File > Get Info or exiftool -G1 -a file.jpg), confirm filenames. Create ZIP or upload to delivery platform like Pixieset or Google Drive. Send client download link and include a short README: what they received and usage rights.

Avoid These 7 HEIC Conversion Mistakes That Ruin Client Deliveries

Want to avoid the embarrassment of a client complaining about washed-out photos at 3 a.m.? Don't make these mistakes.

Skipping color-profile conversion. Result: colors look wrong on non-Apple devices. Over-compressing everything. Quality 60 looks terrible on prints. Use 85-90 for prints, 75-80 for social/web if you must save bytes. Deleting originals. Never overwrite or delete HEIC originals before backup. Stripping metadata without intention. Clients often need timestamps for organization and vendors need IPTC for licensing. Not checking for HEIC alpha channel cases. Some HEICs have transparency that JPG does not support; these need flattening onto a white or black background. Using inconsistent filenames. Avoid IMG_1234.jpg and IMG_5678-final.jpg chaos. Choose a pattern and stick to it. Assuming all clients can open HEIC. Many Windows users and older software fail to open HEIC without extra codecs.

Pro Photographer Hacks: Speed and Quality Tricks for HEIC to JPG Conversion

Want to go beyond the basics? Here are optimizations I use to save time, disk space, and sanity.

    Create an export preset in Lightroom: two outputs in one pass using export multiple copies with different settings. Save time and maintain consistent settings. Use GNU Parallel for multi-core batch conversions. Example: ls *.HEIC | parallel heif-convert ..jpg Run jpegoptim after export to strip unnecessary markers and reduce size by 10-30% without visible loss. Automate filename generation with exiftool templates so every delivery has consistent naming. For weddings I use: %Y%m%d_%EventName_%03c.jpg. For color-critical work, embed an sRGB profile during conversion and keep a single, documented workflow so prints match the screen. Use a WatchFolder tool or Automator/Shortcuts on macOS: drop HEIC files into a folder and let the Mac convert and upload automatically.

When Conversions Break: Fixes for Color Shifts, Metadata Loss, and Corrupted Files

What do you do when a batch produces odd colors or missing data? Here are quick fixes I count on.

Problem: Colors look dull or oversaturated on Windows

Fix: Convert to sRGB during export. If you already exported, reconvert by applying a color profile. Use ImageMagick or Lightroom to force sRGB, then re-export.

Problem: Metadata missing after conversion

Fix: Use ExifTool to copy metadata from original HEIC to JPGs. Example for a folder:

exiftool -tagsfromfile %d%f.HEIC -all:all -overwrite_original *.jpg

Problem: Some HEICs fail to convert or are corrupted

Fix: Try heif-convert for those files or open in Photos/Preview and export one-by-one. If the file is truly corrupted, check backups and the camera phone's cloud sync.

Problem: Files are huge after conversion

Fix: Resize long edge to 2048 or 2500 px for client web delivery. Compress with jpegoptim using --max=80 or MozJPEG for better size/quality.

Problem: JPEG loses transparency from HEIC

Fix: Flatten with a background color. ImageMagick example:

magick input.heic -background white -alpha remove -alpha off output.jpg

image

Final Checklist and Quick FAQ

Before you hit send, answer these questions to avoid common follow-ups.

    Do the JPGs use sRGB? If not, change it. Is metadata present (date, copyright)? If not, reattach with ExifTool. Are filenames consistent and searchable? Rename if needed. Are files optimized for the delivery medium? Resize and compress for web, export high-quality for prints. Have you backed up the HEIC originals? If not, do that now.

Questions you might still have: How many images per hour can you expect to convert? On a laptop with a modern CPU, a scripted ImageMagick or heif-convert pipeline can handle 500 images in under 15 minutes plus optimization time. Want to speed it up further? Use parallel processing and SSD storage.

Final thought: HEIC is fine for capture, but clients rarely want it as the deliverable. Set up your conversion presets once, automate where possible, and run a short QA pass before delivery. Your future self, and your clients, will thank you.