Convert HEIC photos to JPG, PNG or WebP
🔒 Your files never leave your device
Drop in the photos your iPhone gave you and get files that open anywhere. The conversion happens inside this page — your photos are not uploaded, so nobody, including us, ever sees them.
or drop them here — several at once is fine
.heic, .heif, .hif
Converted images
Why your photos are HEIC in the first place
Since iOS 11, an iPhone photographs in HEIC by default — a still image stored in Apple's HEIF container and compressed with HEVC, the same codec used for 4K video. It is a genuinely better format than JPEG: roughly half the file size at the same visual quality, with support for 10-bit colour, transparency and depth data that JPEG has no way to represent.
The catch is everything else. Windows needs a paid codec from the Microsoft Store to show a HEIC in File Explorer. Most websites reject the upload. Older Android phones, printing kiosks, insurance claim forms and half the Windows software in any office simply do not know what the file is. So the format that saves space on your phone becomes the format nobody can open the moment it leaves it.
JPG, PNG or WebP?
JPG is the answer almost every time. It is what "convert my HEIC" nearly always means: universally readable, small, and designed for exactly this kind of content. A photograph is continuous tone and slightly noisy, which is what JPEG compression was built for, so the losses are the ones your eye is least likely to catch.
PNG is lossless, and for a photograph that is mostly a downside — expect files five to ten times larger than the JPG with no visible improvement. It earns its place when the image is a screenshot, a scan of a document, or artwork with flat colour and hard edges, where JPEG's blurring around sharp boundaries is actually noticeable. It also keeps transparency, which JPG cannot.
WebP gives you roughly 25–30% smaller files than JPG at matching quality and is supported by every current browser. Choose it when the destination is a website you control. Do not choose it if the file is going into someone else's system, because the same compatibility problem that brought you here applies to WebP in older desktop software.
The quality slider
It sets how aggressively JPG or WebP compresses, from 0.5 to 1. The default of 0.9 is high enough that the difference from the original is very hard to see and low enough that files stay reasonable. Pushing it to 1 does not restore anything — the detail HEIC already discarded is gone — it just stops the second compression from removing more, at a considerable cost in size. PNG ignores the slider entirely, which is why it disappears when you select PNG.
Why Safari converts instantly and Chrome pauses first
Safari 17 and later — meaning any Mac on macOS Sonoma or later, and every iPhone on iOS 17 or later — can decode HEIC itself. On those, this page uses the system decoder, downloads nothing extra, and converts as fast as the file can be read.
Chrome, Edge and Firefox cannot decode HEIC at all, on any platform, in any version to date. For them the page fetches a WebAssembly build of libheif the first time you convert something — around 370 KB compressed. After that it is cached and subsequent conversions start immediately. This is the honest trade of doing the work locally: a server-side converter would spare you the download by making you upload the photo instead.
On an iPhone you will rarely need this tool at all. When you pick an image from the photo library, iOS transcodes it to JPEG before handing it to the page — so what a website receives from your phone is already a JPEG, not a HEIC. The place HEIC actually blocks people is the desktop: files that arrived by AirDrop, over a cable, or as somebody's email attachment, sitting on a Windows machine that cannot open them.
Which means the 370 KB decoder is a download most people here will make. Safari on a Mac is the happy exception — it has both a folder full of HEIC files and a system decoder, so there is nothing to wait for.
What happens to the metadata
Location, camera model, lens, exposure and capture time are not carried across. Browsers re-encode from decoded pixels and emit nothing else, so the output is stripped as a consequence of how the conversion works — not as a feature that could quietly change.
For most people that is what they want: sharing a holiday photo without the GPS coordinates of the house it was taken in. If you are archiving photos and want the capture dates preserved, this is the wrong tool and you should keep the originals.
Stopping your iPhone making HEIC files at all
If you are converting the same photos every week, change the source instead:Settings → Camera → Formats → Most Compatible. The camera then writes JPEG directly. Photos take about twice the space and you give up 10-bit colour, but nothing needs converting again.
There is a subtler setting worth knowing. Under Settings → Photos, theTransfer to Mac or PC option can be set to "Automatic", which converts photos to JPEG as they copy off the phone. Set to "Keep Originals" it hands over the HEIC untouched. If files arrive on your PC as HEIC unexpectedly, that setting is usually why.
Questions
Does converting lose quality?
Converting to JPG or WebP re-compresses, so in the strictest sense yes. At the default quality the difference is not visible at normal viewing size. Converting to PNG loses nothing, at the cost of a much larger file. Either way the original HEIC on your device is untouched — nothing here writes to your files.
How many photos can I convert at once?
There is no fixed limit; the constraint is memory. A batch of a few dozen phone photos is comfortable on a laptop. On an older phone, work in smaller batches, because each photo is held decoded in memory while it is converted.
Why did one photo come out smaller than the original dimensions?
Browsers cap how large a single canvas can be. A 48-megapixel photo from a Pro model exceeds that cap, so it is scaled down proportionally to the largest size that fits and the tool tells you it did.
My file has a .heic extension but it was rejected
The tool checks the actual bytes rather than the extension, so a file renamed to.heic that is really something else gets caught. That check is also why a genuine HEIC with no extension, or one your operating system does not recognise, still works here.
Does it work offline?
On Safari, completely. Elsewhere, once the decoder has been fetched once, yes.
Open source notice
Browsers that cannot decode HEIC natively uselibheif, compiled to WebAssembly and distributed under theGNU Lesser General Public License v3. It is served here as an unmodified, standalone file — libheif.js andlibheif.wasm — rather than bundled into this site's own code, so it can be replaced with a different build. The packaging comes fromlibheif-js.