Convert HEIC to JPG Online — Single or Batch
iPhone photos to JPG — batch convert, no upload, completely free
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.
Your Files Never Leave Your Browser
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.
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.
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
- Upload your HEIC filesDrag and drop your iPhone photos into the converter above, or click "browse files". Multiple files are supported — drop an entire album at once.
- JPG is pre-selectedThe 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).
- Convert and downloadClick "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
| Feature | HEIC | JPG |
|---|---|---|
| File size | ~50% smaller than JPG | Baseline |
| Image quality | Better at same file size | Good |
| Transparency (alpha) | ✓ Yes | ✗ No |
| Browser support | Safari only (natively) | All browsers, all apps |
| Windows support | Requires codec install | Universal |
| Social media upload | Often rejected | Universally accepted |
| Email attachment | May not display inline | Always works |
| Best use case | iPhone local storage | Sharing, 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.
| Sample | Source HEIC | Output JPG @ 92% | Size change | Dimensions |
|---|---|---|---|---|
| photo (1920×1280) | 123.1 KB | 227.5 KB | ≈ +85% | 1920×1280 — unchanged |
| screenshot (1440×900) | 23.4 KB | 62.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.