Convert HEIC to JPG Online — Single or Batch

iPhone photos to JPG — batch convert, no upload, completely free

100% private — files never leave your device

Drop your iPhone HEIC photos into the converter below and get JPG files back in seconds. The converter runs entirely in your browser using WebAssembly — your files never leave your device. No account required, no server uploads, no popup ads, no fake download buttons. Just drag, convert, download. Supports batch conversion: drop 50 photos at once and download them all as a ZIP.

heic_to_jpg.sh
$convert --input
📁
Drop HEIC/HEIF files here or browse files
iPhone photos • .heic • .heif
output
0
Files
0 MB
Original
0 MB
Converted
0%
Saved
🔒 Privacy first: All conversion happens locally in your browser using WebAssembly. Your HEIC files are never uploaded to any server. Unlike most converters, nothing is uploaded anywhere — not even temporarily.

Your Files Never Leave Your Browser

100% Client-Side Processing

Conversions run locally in your browser using the Canvas API, with Web Workers used when supported. Your image data stays on your device and is never uploaded to any server.

No Account. No Tracking of File Contents.

We use Google Analytics and Google AdSense for aggregated traffic stats and contextual ads when consent allows it. Theme and language preferences stay in your browser. We never see, read, or store the images you convert.

Open About Our Limits

Browser-based conversion has trade-offs: large files (>50 MB) may hit memory limits; animated GIF output flattens to a single frame; EXIF metadata is stripped; ICC color profiles may differ across browsers.

> how_to_convert

  1. Upload your HEIC files
    Drag and drop your iPhone photos into the converter above, or click "browse files". Multiple files are supported — drop an entire album at once.
  2. JPG is pre-selected
    The output format is set to JPG by default. Adjust the quality slider — 92% gives excellent quality with significant file size reduction. Select PNG for lossless output (larger files, no quality loss).
  3. Convert and download
    Click "Convert All". Conversion takes 2–5 seconds per file (the WebAssembly decoder runs in the background). Download files individually or as a ZIP archive.

> convert_a_whole_iphone_library

Switching to a new phone, backing an album up to a Windows PC, or handing a folder of photos to someone who can't open HEIC — none of these are one-photo jobs. This converter is built for the whole-library case: queue as many HEIC files as you like in a single pass and get every JPG back, with nothing ever uploaded to a server.

Select the whole batch at once

Click the dropzone (or "browse files") and multi-select every photo — hold Shift or Ctrl/Cmd in your file picker, or drag a whole selection straight onto the page. You can keep growing the queue with "+ Add more" before you convert. The tool then processes the files one after another and shows live progress (Converting 3 of 50…) so you always know where it is. Every file is decoded on your own device's CPU through the WebAssembly engine, so there is no upload queue and no per-file cap set by a server — the practical ceiling is your device's memory. On a phone or an older laptop it's worth splitting a very large library into a few smaller batches rather than dropping thousands of photos in one go.

Download everything as one ZIP

As soon as two or more files convert successfully, a Download All (ZIP) button appears and packages every result into a single converted-heic.zip archive — no clicking "Save" fifty times. Each result also keeps its own "Save" button if you only want a few. Choose JPG (the default, with a quality slider set to 92%) for universal compatibility, or switch to PNG for lossless output before you start. Two practical notes for big libraries: Live Photos and multi-frame HEICs keep their main still frame; and some iOS 18+ photos use a newer encoding — if one won't convert, open it on the iPhone and choose "Export Unmodified Original", or set Settings → Camera → Formats → Most Compatible to capture JPG going forward.

> heic_vs_jpg

FeatureHEICJPG
File size~50% smaller than JPGBaseline
Image qualityBetter at same file sizeGood
Transparency (alpha)✓ Yes✗ No
Browser supportSafari only (natively)All browsers, all apps
Windows supportRequires codec installUniversal
Social media uploadOften rejectedUniversally accepted
Email attachmentMay not display inlineAlways works
Best use caseiPhone local storageSharing, web, apps

The Technical Reality of HEIC → JPG

This is a compatibility tool, not a compressor — and we will prove it with real numbers instead of marketing claims. We encoded genuine HEIC files with macOS sips, then converted them through this exact tool (heic2any 0.0.4 / libheif WebAssembly, quality 92 — the same library and setting the converter above uses). The pixel dimensions are preserved exactly. In both samples the JPG comes out larger than the HEIC.

Sizes from converting real HEIC samples to JPEG at 92% through tooldev.app's heic2any pipeline. KB rounded to one decimal; percentages computed from exact bytes.
Sample Source HEIC Output JPG @ 92% Size change Dimensions
photo (1920×1280)123.1 KB227.5 KB≈ +85%1920×1280 — unchanged
screenshot (1440×900)23.4 KB62.1 KB≈ +166%1440×900 — unchanged

Why did the file get bigger? HEIC stores pixels with HEVC (H.265) intra-frame coding — variable block sizes up to 64×64 px and strong spatial prediction. JPEG uses the older, less efficient 8×8 Discrete Cosine Transform. HEIC is roughly twice as space-efficient, so re-encoding the same pixels as JPEG almost always produces a bigger file. You convert to JPG for universal compatibility (Windows, email, social, every browser), not to save space. If saving space is the goal, keep the HEIC or convert to WebP instead.

Methodology & honest caveats

Source HEIC files were encoded from our repository's benchmark PNGs with macOS sips -s format heic, then fetched same-origin and passed to window.heic2any({ blob, toType: 'image/jpeg', quality: 0.92 }) — the identical call src/js/heic-converter.js makes — inside headless Chromium. Output sizes are byte-exact from the returned Blob; dimensions were read back via createImageBitmap. The script is in our repository at scripts/heic-proof.mjs. Honest caveats: (1) Both HEIC and JPEG are lossy, so this is a transcode — microscopic generation loss occurs; 92% keeps it visually imperceptible, not mathematically lossless. (2) Real iPhone HEIC is often 10-bit Display-P3 / HDR; the browser pipeline outputs 8-bit sRGB, so wide-gamut and HDR detail is clamped to standard range. (3) Live Photo motion, Portrait depth maps, and Apple semantic masks are not part of a JPEG and are dropped — the primary still frame is kept. (4) For a multi-image HEIC, the converter takes the first (main) frame. (5) Conversion runs on your own device's CPU via WebAssembly; very large 48 MP files take a moment, with no server upload. (6) If you specifically need metadata stripped, run the result through our EXIF remover.

> frequently_asked_questions

Why are all my iPhone photos HEIC now — and how do I fix it?
Apple switched iPhones to HEIC format by default in iOS 11 (2017) to save storage space — HEIC files are about half the size of equivalent JPGs. The downside: Windows, older apps, and most websites don't support HEIC natively. To fix it permanently, go to iPhone Settings → Camera → Formats → Most Compatible. This makes the camera shoot JPG instead. Or use this converter to batch-convert your existing HEIC photos to JPG.
Is this one of those sketchy converters that secretly uploads my files?
No. This converter runs entirely in your browser using WebAssembly — your HEIC files never leave your device, not even for a millisecond. There is no server, no upload queue, no "free tier that uploads anyway". The conversion engine (libheif) loads once from a CDN on your first conversion; after that the actual decoding of your photos happens locally, and your image data is never sent anywhere.
Does converting HEIC to JPG lose quality?
At 90%+ quality settings, the difference is invisible to the human eye. HEIC and JPG are both lossy formats — the conversion is a re-encode, not a direct transcoding, so there is a small quality reduction. At 92% quality (the default), converted files look identical to the originals in normal viewing. Use 95–100% if you need to preserve maximum detail for professional editing.
Can I convert multiple HEIC files at once?
Yes. Drop multiple HEIC files at once or click to select multiple files. The converter processes them one by one and shows progress for each file. When done, download all results as a ZIP archive with one click.
My HEIC file won't convert — what's wrong?
Some newer iPhone HEIC files use encoding profiles the conversion library doesn't fully support yet. Two reliable workarounds: (1) On your iPhone, open the photo, tap Share, then Save to Files — this can write out a JPG copy you can convert. (2) To capture future photos as JPEG directly, go to Settings → Camera → Formats → Most Compatible. Older HEIC files generally convert without issues.