HEIC to PNG Converter

Turn an iPhone .heic photo into a lossless PNG in your browser. The right choice when the image is going into an edit, and the wrong one for a camera roll.

Your file is processed by your own browser and never uploaded. The engine itself is a one-time 1.4 MB download the first time you use it, and after that it comes out of your browser cache.

How to use HEIC to PNG

  1. 1Drop your .heic files onto the box above, or click it to pick them.
  2. 2Each photo is decoded and written out as a PNG. There is no quality setting, because PNG is lossless.
  3. 3Download them individually, or take the batch as a single .zip.

When PNG is the right answer

Most people converting an iPhone photo want a JPG, and our HEIC to JPG page is the one for that. This page exists for the other case: the image is going into work rather than into a photo album.

Choose PNG when the file is heading for a design tool, when it will be edited and re-exported several times, when it needs to sit on a transparent background, or when something in your pipeline refuses compressed input. In all of those, a lossless intermediate saves you from stacking JPEG artifacts every time you save.

Choose JPG for anything that is simply a photograph on its way somewhere. If you came here to convert HEIC to PNG for a phone camera roll, JPG is almost certainly what you actually want.

What lossless actually buys you

Not quality. This is the part that catches people out. A HEIC file is already lossy: it stores its pixels as an HEVC frame, and whatever that encoder discarded is gone before this page ever sees the file. PNG preserves exactly what the HEIC decodes to, artifacts included.

So the PNG is a faithful copy, not an improved one. What it gives you is a stopping point. From here nothing further is lost, however many times you crop, adjust and re-save.

The size, which is the real cost

Expect five to ten times the original. A 2 MB HEIC routinely becomes a 10 to 20 MB PNG. That is because PNG spends its bytes on exactness while HEIC got small by throwing away detail nobody would notice, and photographs are the worst case for lossless compression: there is almost no flat colour for it to exploit.

For a graphic with large areas of solid colour the ratio is far kinder. For a beach photo it is not.

What comes through

The primary image, at full resolution, correctly rotated, with any alpha channel intact. Live Photo motion, portrait-mode depth maps and HDR gain maps are not carried over, because PNG has nowhere to store them.

Everything runs on your own device. The decoder is libheif compiled to WebAssembly, downloaded once and then cached, and it works in a background thread so the page stays responsive while a batch of full-resolution photos goes through.

Frequently asked questions

Should I pick PNG or JPG?
PNG when the image is going into an edit, a design tool, a screenshot-style graphic, or anywhere transparency matters. JPG for photographs you are sending, uploading or archiving, because a PNG of a photo is enormous for no visible benefit. If you are converting a camera roll, you want JPG.
How much bigger will the PNG be?
A lot. Five to ten times the HEIC is normal, so a 2 MB photo commonly lands between 10 and 20 MB. PNG describes every pixel exactly rather than discarding detail, and photographs have a great deal of detail to describe.
Is the quality better than converting to JPG?
The PNG is a faithful copy of what the HEIC decoded to, and the JPG is a very slightly lossy one. But neither recovers anything: the HEIC was already lossy, so its compression artifacts are baked in and PNG will preserve every one of them perfectly. Lossless means faithful, not better.
Does it keep transparency?
Yes, where there is any. HEIF can carry a real alpha channel, and PNG can too, so a cut-out graphic exported as HEIC comes through with its transparency intact. Photos from a phone camera are always fully opaque, so for those there is nothing to keep.
Are portrait photos rotated correctly?
Yes. Phones store orientation as a tag rather than rotating the pixels, and the tag is applied here before the PNG is written, which is why nothing comes out sideways.

More free tools