Convert HEIC to PNG in your browser

The photo your iPhone wrote, in a format everything opens. PNG is lossless, so nothing is thrown away on the way, and the file never leaves this tab.

HEIC
No HEIC selected
Drop a file to start
Drop HEIC files here

or browse your device. Everything is processed on this device

No HEIC to hand?

How to convert HEIC to PNG

01
Drop the HEIC files

Straight off the phone or out of the Files app. HEIF files work identically. Nothing is uploaded at any point.

02
Pick a width, or do not

Leave it at Original for a full-resolution PNG. Set a width if the file is going somewhere with a size limit, because a lossless PNG of a phone photo is large.

03
Save the PNG

The download is a .png. Every operating system, editor and upload form made in the last twenty years will open it.

PNG or JPG for an iPhone photo?

For a photograph, JPG is almost always the better answer, and it is worth saying so on a page built to give you the other one. A PNG of a 12 megapixel photo runs to twenty or thirty megabytes, against two or three for a JPG that looks the same at any normal viewing size. If you are emailing it, uploading it or putting it on a website, that difference matters far more than the theoretical quality does.

PNG earns its place when the image is not really a photograph, or when it is going to be edited further. It is lossless, so nothing is discarded on the way in and nothing accumulates if you convert it again later. A screenshot taken on the phone, a photo of a document or a whiteboard, anything with text or hard edges in it, all survive better as PNG. So does anything you are about to composite, retouch or crop repeatedly.

Either way, converting is not optional: no mainstream browser can write a HEIC, so this page decodes yours and writes something else. That is also why the download is a .png rather than a smaller .heic.

HEIC to PNG FAQ

Why is the PNG so much bigger than the HEIC?

Because HEIC is a modern lossy format and PNG is a lossless one. HEIC stores a photograph in roughly half the bytes of a JPEG by discarding detail your eye is worst at noticing; PNG records every pixel exactly and cannot discard anything. Ten to twenty times larger is normal. If that is a problem, converting to JPG instead is the answer, not a setting on this page.

Does converting lose any quality?

No. PNG stores exactly what the decoder handed it, so nothing is lost in this step. What was already discarded when your phone wrote the HEIC is gone for good, and no conversion recovers it, but this page adds nothing on top of that.

Why is there no quality slider?

Because PNG is lossless and there is nothing for it to control. A slider that moved and changed nothing would look like a setting and be a decoration. Width is the one control that genuinely changes the file, so width is the one control here.

Can I convert a whole camera roll at once?

Yes. Drop as many as you like. There is no account, no daily limit and no queue, because every file is decoded on your own machine and costs us nothing. The practical ceiling is your device memory.

Are my HEIC files uploaded to convert them?

No. The HEIC is decoded and the PNG is written by your own browser, in this tab. There is no upload endpoint in the site for a file to go to, which you can check in your network tools: convert something and watch that no request carries it. Disconnect from the network after the page loads and it still works.

Does this remove EXIF, GPS and AI metadata?

Yes, every time, and there is no way to turn it off. The image is decoded to pixels and encoded again from those pixels alone, so EXIF and GPS, the XMP packet, embedded colour profiles, and any Content Credentials or AI-generation tags the file arrived with do not survive. There is no switch for this, because there is no way to keep them. What no compressor can remove is a watermark written into the pixels themselves, such as the invisible marks some image generators add: those survive re-encoding here and everywhere else.

Drop more files

Same format joins the queue. Anything else re-routes to its own tool.