HEIC to JPG Converter
Drop the .heic files your iPhone or iPad produced and get standard JPGs back. Photos keep their correct rotation, and the location and camera data Apple embedded does not survive the conversion. Everything runs in this browser tab — your photos are never uploaded, which matters more for camera-roll pictures than for most files you convert.
Drop your HEIC photos here
Straight off an iPhone or iPad — .heic and .heif, up to 30 at a time. Each one comes back as a JPG.
Nothing queued yet. Drop your files above — they are decoded and re-encoded in this browser tab, so they never leave your device.
Put the photo to work
Drop the JPG into Moda to build the post, invite, or deck it was destined for.
Try Moda free →Why your iPhone made a file nothing can open
Since iOS 11, iPhones default to HEIC — a container around HEVC-compressed stills that gets a photo to roughly half the size of the equivalent JPG at the same visual quality. Apple's ecosystem handles it end to end, so most people never notice until a photo leaves it: Windows Photos wants a paid codec extension, plenty of web upload forms reject the extension outright, Slack and many email clients show nothing but a filename, and older Android builds shrug. The picture is fine. The container is the problem, and JPG is the container that has worked everywhere for thirty years.
Rotation, and why HEIC photos so often land sideways
Phone cameras do not rotate the sensor — they save the pixels as captured and write an orientation flag alongside. Software that reads the flag shows the photo upright; software that ignores it shows your portrait shot lying on its side. Half the "my converted photo is rotated" complaints come from converters that drop the flag without rotating the pixels. This one reads the orientation during decode and bakes it into the JPG, so the output needs no flag to look right anywhere.
What happens to the EXIF data
A HEIC straight off a phone carries a lot besides the image: GPS coordinates precise enough to locate a house, the capture timestamp, the device model, and the full camera-settings block. Converting here rebuilds the image from decoded pixels, so none of that metadata is written into the JPG — the output is a clean picture. That is usually exactly what you want before posting a photo publicly or sending it to a stranger. Note the flip side honestly: if you needed the capture date or the geotag preserved, this is not the tool for that job, and you should keep the original HEIC alongside the JPG.
How HEIC decoding works with no server involved
No browser ships a HEIC decoder — Apple never licensed HEVC decoding to the web platform, which is the whole reason HEIC files break on the web. This page loads a WebAssembly HEIC decoder the moment you drop your first file (and not before, so pages that never see a HEIC never pay for it). It runs inside the tab like any other script. The practical consequence is that the first photo takes a second or two longer than the ones after it, and that your camera roll never travels anywhere.
Frequently asked questions
How do I stop my iPhone making HEIC files in the first place?
Settings → Camera → Formats → Most Compatible switches the camera to JPG for new photos. It does not convert anything you have already taken, and it roughly doubles the storage each photo uses, which is the trade Apple made when they picked HEIC. Many people leave the camera on High Efficiency and convert the handful of photos that actually need to leave the ecosystem.
Can I convert Live Photos?
The still frame, yes — a Live Photo is a HEIC plus a separate .mov file, and dropping the HEIC gives you the JPG of that frame. The motion lives in the .mov and cannot come along; this page will decline the .mov as not an image. To keep the movement, share the Live Photo as a video from the Photos app instead.
How many photos can I convert at once?
Thirty per batch, up to 50 MB each and 200 MB in total — which comfortably covers a full afternoon of iPhone shooting, since HEIC photos usually run 1–3 MB. Anything past those limits is declined by name with the limit stated, so you know exactly which files to run in a second pass rather than wondering which ones silently vanished.
Will the JPG look worse than the HEIC?
Slightly, in principle: HEIC compresses more efficiently, so a JPG matching it visually is a bigger file, and re-encoding always costs something. At the default 85% quality — the slider is there if you want to push it higher — the difference is invisible on a phone or laptop screen for ordinary photos. Expect the JPG to be roughly one and a half to two times the size of the HEIC — the price of a file that opens everywhere.
One of my photos failed to convert. Why?
Usually the file is not really HEIC: a renamed .jpg, a partially synced iCloud placeholder that has no pixels in it locally, or a .mov from a Live Photo. Occasionally it is a HEIC variant the decoder does not handle, such as a multi-image burst container. The row tells you which file failed and why, and the rest of the batch converts regardless.