Nifty Tools

HEIC to PNG

Convert heic to png in your browser. Batch up to 50 iPhone photos at a time. No upload, signup, or watermark. Lossless from the decoded pixels.

Processing mode: Local Browser-local

  • No file leaves your browser
  • Mode: Browser-local
  • 250+ files processed in the last 24h
Waiting for HEIC photos.

How to use it

HEIC to PNG Converter — Free, In Your Browser

  1. Drop your HEIC files onto the workspace, paste from the clipboard, or pick them with the file picker. Up to 50 photos per batch, 100 MB per file.
  2. Click Convert. Each photo decodes through libheif (compiled to WebAssembly, running in this tab) into pixel data, the heic-to vendor helper paints that ImageData onto a canvas, and `canvas.toBlob("image/png")` writes the PNG — no extra app-level Canvas pass beyond the vendor helper. Download individually or grab the whole batch as a single ZIP.

Good for

Common use cases

HEIC is what iPhones save photos as by default — Apple shipped HEIC as the iOS 11 capture format in September 2017 — and it stores roughly the same image quality as JPEG at about half the file size. The trade is portability. HEIC travels cleanly inside Apple's ecosystem and through the iOS Share-sheet's automatic JPEG fallback, but the moment a saved HEIC file leaves that path it lands in front of older Office builds, design tools that pre-date late-2020, marketplace upload flows, and Windows installs where HEIC support depends on Microsoft's HEIF Image Extensions (which is not always present on enterprise or older builds — Microsoft's own OneDrive guidance acknowledges that machines may need additional HEIF/HEVC components or apps before HEIC media renders). The sibling tool HEIC to JPG handles the photographic-content default cleanly. HEIC to PNG is the right target when the destination wants a raster format that does not add another lossy quantisation step on top of the source HEIC — design hand-offs into tools that read PNG more reliably than HEIC, or downstream pipelines where you want to avoid stacking a JPEG re-encode after the HEIC's existing compression. PNG via canvas.toBlob is lossless for the decoded canvas pixels, so no further compression artefacts are introduced; the encoded PNG does not, however, carry the source HEIC's embedded colour profile, EXIF, or container metadata, so if any of those matter to your workflow keep the original HEIC alongside as the archival master. The conversion happens in the browser tab — the HEIC source never leaves the device, the PNG materialises locally, and the only network traffic is the page load itself.

Processing mode

Browser-local

Files are processed by your browser. They never reach our servers.

Questions

HEIC to PNG Converter — Free, In Your Browser FAQ

Why convert HEIC to PNG instead of JPG?

Two reasons cover the most common cases. First, no second lossy step: `canvas.toBlob("image/png")` writes the decoded canvas pixels without a further quantisation, so the only image-quality consideration is whatever is already baked into the source HEIC. JPG adds one more lossy round on top, which is fine for delivery copies but unwanted for design hand-offs and fine-art print pipelines where each compression step compounds through colour separations. Second, compatibility: many older perpetual-licence design tools added HEIC support late or not at all, while PNG has been universal in mainstream raster editors for decades. If your destination is Windows recipients, email clients, marketplace listings, or general-purpose photo viewers, the JPG sibling (HEIC to JPG) is the smaller and more conventional target. If your destination is design pipelines, fine-art print fulfilment, or older tools that struggle with HEIC, PNG is the better fit. (For colour-managed archival, keep the source HEIC alongside the PNG — the canvas pipeline does not propagate the HEIC's embedded ICC profile or EXIF.)

Is the conversion lossless?

Lossless for the decoded canvas pixels, with two caveats worth being explicit about. The pipeline is: libheif/WASM decodes the HEIC into ImageData, the heic-to vendor helper paints that onto a canvas, and `canvas.toBlob("image/png")` writes the PNG. PNG via canvas.toBlob does not apply further quantisation to those canvas pixels, so the conversion does not add a second lossy step on top of the HEIC. Caveat one: HEIC encodes lossily by default (that is how iPhones get half the JPEG file size at similar quality), so the PNG carries forward whatever lossy compression the camera or editor already applied — the conversion does not add new loss, but it does not remove the loss that was already there. Caveat two: the canvas pipeline carries pixels but not the surrounding container — embedded ICC colour profiles, EXIF, and HEIC-specific metadata do not propagate to the PNG. If colour-managed handoff or shoot metadata matter, keep the source HEIC alongside the PNG as the archival master; the PNG is the portable delivery copy.

How big are PNG files compared to the HEIC source?

Larger, often substantially. HEIC is tuned for photographic content and lands roughly half the file size of an equivalent JPEG; PNG carries the canvas pixels losslessly and pays the file-size cost. For typical iPhone-shoot content the PNG is often 3-5x the size of the source HEIC, and 1.5x to 2.5x the size of the equivalent JPEG sibling. This is expected behaviour: PNG is a portable, universal format that does not apply lossy quantisation, and the file size is the price you pay for that property. If file size matters more than avoiding a second lossy step — email attachments, marketplace uploads, social posts — use HEIC to JPG instead. If avoiding a second lossy quantisation matters more than file size, take the PNG.

Which devices' HEIC photos can the converter handle?

HEIC and HEIF photos from any capture source. iPhones default to HEIC since iOS 11 (September 2017). Samsung Galaxy phones offer HEIC as a capture option in their camera app. Some Huawei models also use HEIC. HEIF appears as the export format from some image-editing apps (Affinity Photo v2, GIMP 2.10+ via libheif, recent Photoshop versions) and some cloud-photo backups. The decoder inspects the file's actual format markers, not the device that produced it, so any valid HEIC or HEIF file routes through the same libheif decode path regardless of origin.

Is there a file size or batch limit?

Each HEIC must be under 100 MB and a single batch can hold up to 50 photos. The 100 MB cap protects lower-RAM devices from running out of memory during the libheif decode step, which materialises the full pixel grid in memory before encoding. The 50-file batch cap keeps the ZIP build responsive — for large batches the bottleneck is browser memory, not the conversion itself, since each photo processes sequentially. If you need to convert more than 50 photos, run the tool twice and stack the resulting ZIPs — the conversion is deterministic, so the second batch produces output identical to what one continuous run would have written.

How long does converting 50 HEIC photos to PNG take?

On a recent laptop the full 50-photo run usually finishes in 25 to 60 seconds — slightly slower than the JPG sibling because PNG encoding writes more data, but the bottleneck is still the libheif decode step rather than the encode. Older devices and 4K iPhone Pro photos shift the upper end. Progress shows in the status line as each photo is decoded.

Will this tool stay free?

The basic workflow is designed to stay free. Paid upgrades later will focus on bigger limits, batch work, OCR, saved presets, and ad-free use.