Convert iPhone HEIC to JPG — 100% in your browser
Your iPhone saves photos as HEIC since iOS 11, but the format breaks on Android, Windows, most web CMSes, and corporate email. This converter turns any HEIC into a universally compatible JPG — entirely inside your browser, using WebAssembly, so your photos never leave your device.
Convert to JPG →Why convert HEIC to JPG?
Apple switched iPhones to HEIC as the default camera format in iOS 11 (September 2017) because HEIC stores the same visual quality at roughly half the file size of JPG. Inside the Apple ecosystem, HEIC is invisible — Photos, Preview, and macOS all handle it natively. Outside it, HEIC is a compatibility wall. Here is where HEIC typically fails: WhatsApp on Android (pre-2.22 and many older installs) shows a broken image or won't send the file at all. Outlook on Windows displays a generic thumbnail instead of the photo. Most web CMSes — WordPress media upload, Squarespace, Wix — reject the MIME type. Print kiosks at pharmacies and photo labs still only accept JPG. Slack desktop on Windows cannot preview HEIC attachments inline. Corporate email servers frequently block attachments with non-standard MIME types, and HEIC's video/hevc type hits that filter. Apple's own services sometimes help — AirDropping a HEIC to a Windows PC triggers an automatic conversion to JPG in transit, and emailing a HEIC to a non-Apple address usually converts it too. But sharing via iCloud Drive, the Files app, or SMB leaves the HEIC as-is, which is where most people run into problems.
What you lose and what you gain
Both HEIC and JPG are lossy codecs. Every re-encode discards a small amount of image data, but the amount discarded at high quality settings is invisible in practice. At JPG quality 90, a conversion from HEIC produces output that is visually identical to the source in blind A/B testing — no visible banding, no added blockiness. The tradeoff is file size: a typical 12MP iPhone photo that is 2.4 MB as a HEIC becomes roughly 4.5 MB as a JPG at quality 90, and about 7.2 MB at quality 95. JPG is simply a less efficient codec than HEIC — it was standardised in 1992, long before the compression techniques HEIC uses were developed. What you gain is total compatibility. Every device, operating system, browser, CMS, email client, and print lab that has existed for the past 30 years can open a JPG. That universal reach is the entire reason to convert. You do not recover any detail lost during the original iPhone encode — re-encoding from one lossy format to another never improves an image, it only preserves more or less of what is already there.
How to convert HEIC to JPG
The entire process runs inside your browser. No server receives your photo. No account is needed. Works offline once the page has loaded once — the WebAssembly decoders are cached by the service worker:
- Get the HEIC file onto your computer. On a Mac, use AirDrop, the iCloud Drive desktop app, or plug the iPhone in via USB and use Image Capture. On Windows, connect via USB — Windows 11 (and Windows 10 with the HEIF Image Extensions from the Microsoft Store) can see HEIC files, and you can copy them directly. Alternatively, email the photo to yourself from the iPhone Files app and save the attachment.
- Click "Convert to JPG →" at the top of this page, or drag your HEIC file onto the drop zone on the homepage. Both routes open the same in-browser conversion tool.
- ConvertMyPic decodes the HEIC using libheif (github.com/strukturag/libheif), the open-source HEIC/HEIF decoder compiled to WebAssembly via Emscripten. libheif reads the HEVC-compressed bitstream inside the HEIC container and produces a full-resolution uncompressed image in memory. Your photo never leaves the device during this step.
- The decoded image is immediately re-encoded to JPG using mozJPEG (github.com/mozilla/mozjpeg), Mozilla's optimised JPEG encoder. mozJPEG produces files 5–10% smaller than the standard libjpeg-turbo at the same quality setting by using trellis quantisation and smarter quantisation tables. Both the libheif decode and the mozJPEG encode run in a Web Worker, so the browser UI stays responsive throughout.
- Click the download button. The JPG saves to your Downloads folder with the original filename and the .jpg extension — photo.heic becomes photo.jpg. Your original HEIC file is untouched. To verify that nothing was uploaded, open DevTools → Network while converting: you will see zero outbound data requests.
File size comparison: HEIC vs JPG at matched quality
Measurements from a real iPhone 15 12MP photo (outdoor scene, 4032×3024 pixels). HEIC source was the camera default. JPG outputs were encoded using mozJPEG.
| Source | Quality | File size | Visual notes |
|---|---|---|---|
| HEIC (source) | Camera default | ~2.4 MB | Original, no visible artifacts |
| JPG | 95 | ~7.2 MB | Visually identical to HEIC source; largest output |
| JPG | 90 | ~4.5 MB | Best quality/size balance; recommended default |
| JPG | 75 | ~1.8 MB | Slight banding in sky gradients; good for web/email |
| JPG | 50 | ~720 KB | Visible blockiness; only for thumbnails or previews |
When to convert, and when to keep HEIC
Convert to JPG when you are emailing to a recipient on Windows or Android — especially Outlook users, who see HEIC attachments as generic file icons or broken thumbnails. Convert when uploading to any web CMS that does not accept HEIC: WordPress, Squarespace, Wix, Shopify, and most legacy media libraries fall into this category. Convert when sending to a print kiosk, photo lab, or design agency — JPG is the universal input format for print workflows. Convert when sharing via messaging apps to non-Apple users: WhatsApp on Android, Telegram desktop, and Slack on Windows all handle JPG reliably. Keep HEIC when you are archiving photos in Apple Photos — the library handles HEIC natively and losslessly, and keeping HEIC saves roughly half the storage. Keep HEIC when you are editing in Lightroom, Capture One, or Affinity Photo on a Mac, all of which support HEIC directly. Keep HEIC when sharing within the Apple ecosystem — iPhone to Mac via AirDrop, iPad to iPhone via Messages — where the format is never a problem. A practical rule: if the destination is another Apple device or an Apple-aware application, keep HEIC. If the destination is anything else — a person on Windows, an Android phone, a web form, a print service — convert to JPG first. Never convert HEIC to JPG and then back to HEIC for archiving; each lossy encode step loses detail that cannot be recovered.
Under the hood: which codecs are used
HEIC decoding uses libheif, the open-source HEIC and HEIF library maintained by Struktur AG at github.com/strukturag/libheif. libheif implements the ISO 23008-12 HEIF container spec and uses an underlying HEVC (H.265) video codec to decompress the image data. The version compiled here runs entirely in WebAssembly via libheif-js — no native binary is installed on your machine, and the decoder executes inside a sandboxed Web Worker in the browser. JPG encoding uses mozJPEG, Mozilla's optimised JPEG encoder at github.com/mozilla/mozjpeg. mozJPEG applies trellis quantisation, improved quantisation tables, and progressive scan optimisation to produce files that are 5–10% smaller than standard libjpeg-turbo at the same SSIM quality score. Both codecs are compiled to WebAssembly and run inside a dedicated Web Worker thread. The decode → encode pipeline executes entirely locally. No network request carries image data at any point — you can confirm this by opening DevTools → Network during a conversion. The only outbound requests are for the initial page and WASM module load, which are cached by the service worker after the first visit.
FAQ
Does this work for iPhone Live Photos?
Only the still image component converts. A Live Photo is stored as two files: a still HEIC and a short MOV video clip that plays when you press and hold in the Photos app. When you export the HEIC from a Live Photo and convert it here, you get a static JPG of the still frame. The motion video component is not included and cannot be carried into a JPG — JPG is a single-frame format. Your original Live Photo remains in the Photos library untouched with both components intact.
Will this work on iPhone Safari?
Yes. The converter runs on Safari for iOS 16.4 and later, which ships full WebAssembly support including the memory model the libheif WASM module requires. Drop your HEIC directly from the Files app into the browser drop zone. Processing happens on-device, so your photo never leaves your iPhone.
Why does ConvertMyPic exist when iLoveIMG and TinyPNG already convert HEIC?
iLoveIMG and TinyPNG both upload your files to their servers to convert them. For a photo of your home interior, your children, or a document, that means your image passes through a third-party server — subject to their data retention and privacy policies. ConvertMyPic does not have a server. The decode and encode both run inside your browser using WebAssembly. Open the Network tab in DevTools while converting: you will see zero outbound image data. Your HEIC photo stays on your device entirely. That privacy guarantee is genuine and verifiable, not a marketing claim.
Will GPS and EXIF data carry over to the JPG?
Yes, by default. The converter copies the full EXIF block — GPS coordinates, timestamp, camera model, aperture, shutter speed, and ISO — from the HEIC into the output JPG. If you want to strip location data before sharing a photo taken at home or at a sensitive location, the advanced options on /convert include an EXIF-strip toggle. Stripping EXIF also reduces the output file size by a small amount.
How do I get the HEIC photo onto my computer?
On a Mac: AirDrop is the fastest path. Open AirDrop on your iPhone (Control Center → AirDrop), select the photo in Photos, tap Share, and choose your Mac. The HEIC arrives as-is. iCloud Drive also works — enable iCloud Photos, then access the photo on your Mac via the Photos app or iCloud.com. On Windows: connect your iPhone via USB (trust the computer prompt), then open Windows Explorer — the iPhone appears as a camera device. Navigate to DCIM and copy the HEIC files. Alternatively, email the photo to yourself from the iOS Files app and save the .heic attachment. The iCloud for Windows app also syncs the HEIC files directly to a folder on your PC.
Can I convert a 48MP iPhone HEIC?
Yes. iPhone 15 Pro and later can shoot at 48MP using the main sensor, producing HEIC files that are typically 10–25MB. ConvertMyPic handles these — the libheif WASM decoder allocates memory proportional to the image dimensions, not the file size. At 48MP, expect the decoded in-memory bitmap to be around 550MB (48 million pixels × 4 bytes RGBA), so conversion on a desktop with 16GB of RAM is comfortable. On a phone with less RAM, a 48MP conversion may trigger a browser memory warning on older devices. The output JPG at quality 90 is typically 18–28MB.
What about HEIC depth maps and portrait mode?
The converter processes only the primary RGB image layer. HEIC files from iPhone Portrait mode contain multiple image items: the main photo, a depth map derived from the dual cameras or LiDAR, and sometimes an auxiliary gain map for HDR. The libheif decode extracts the primary image item — the full-resolution colour photo — and passes that to mozJPEG. The depth map and auxiliary layers are dropped. The resulting JPG looks identical to the main photo, but depth-based re-blurring or portrait effect re-editing in third-party software will not be possible from the JPG.
Why is my JPG so much larger than the HEIC?
HEIC is a newer and substantially more efficient codec than JPG. HEIC uses HEVC (H.265) compression, which was designed in 2013 with modern hardware and algorithmic advances. JPG uses a DCT-based compression scheme standardised in 1992. At the same visual quality, HEIC consistently produces files roughly half the size of JPG for photographic content. A 2.4MB iPhone HEIC at quality 90 JPG output is typically 4–5MB — the larger size is expected and normal. If you need a smaller JPG, reduce the quality to 75 in the advanced settings: a quality-75 JPG from a 12MP HEIC is typically around 1.8MB with no visible quality loss at normal viewing sizes.
Can I batch-convert a vacation album of HEIC photos?
One file at a time today. For a small set of photos, open /convert in multiple browser tabs and process them in parallel — each tab runs an independent WebAssembly instance with no interference. For a large album on a Mac, macOS Preview offers a quick batch option: select multiple HEIC files in Finder, right-click → Open With → Preview, then File → Export Selected Images → JPG. True batch conversion with a drag-and-drop queue and bulk download is on the ConvertMyPic roadmap.
Do my photos actually never leave my device?
Yes. Open your browser's DevTools (F12 on Windows/Linux, Cmd+Option+I on Mac), click the Network tab, and clear existing entries. Then drop a HEIC into the converter and watch the requests. You will see the WebAssembly module and page assets load from the CDN on the first visit — but during the actual decode and encode steps, zero bytes of image data are sent outbound. The conversion happens entirely in WebAssembly inside a Web Worker in your browser process. There is no ConvertMyPic server receiving files, no image ever stored on our infrastructure. This is verifiable, not a policy statement.