Converter · No upload

HEIC to PNG, in your browser

Convert supported HEIC photos to PNG locally without another lossy encoding step. The output keeps transparency but is limited to eight-bit colour. Complete one conversion online to prepare the decoder before testing offline use. For ordinary photo sharing, HEIC to JPG often produces a smaller copy.

Statusidle Files OutputPNG Network since file read

A HEIF the decoder cannot open (AV1/JPEG payloads or damage) is refused as undecodable; no-image files are refused by name. Exports supported top-level stills returned by the decoder; multiple PNGs are numbered. A row counts detected decode failures, not all omissions. 10-bit/HDR becomes 8-bit; alpha is kept; source EXIF, GPS and capture time are not copied. Takes HEVC-coded .heic and .heif.

How this converter works

When you choose a file, the browser's File API hands this page the bytes in memory — no transfer is involved, because the file is already on your machine. A WebAssembly build of libheif, the open-source decoder used here, turns the HEIC's HEVC-compressed image into raw pixels inside this tab. Those pixels go onto a canvas, and the canvas re-encodes them as a PNG. This tool has no PNG quality setting. PNG encoding is lossless, although the decoder and canvas limit the colour and precision of the pixels being encoded. Unlike the JPG converters on this site, nothing is flattened onto a white background first — PNG keeps an alpha channel, so any transparency in the source survives.

HEIC decoding and PNG encoding happen in the browser without uploading your photos. The HEIC tools share a decoder file that the browser can cache for reuse, including across different output formats. If it is not already cached, complete one conversion online before using this tool offline. A cleared or replaced cache can require another download. The methodology page explains how to check network activity and offline conversion.

PNG camera photos can be ten to twenty times the size of the HEIC. For a smaller sharing copy, HEIC to JPG is often suitable; use PNG when its lossless encoding or alpha channel is needed. Image resolution is a major memory cost; high-resolution captures can strain a low-memory phone. This route also holds a multi-image container's decoded frames before export and retains completed outputs for download. Processing files one at a time within a submitted batch does not remove those costs. Ten-bit and HDR captures are reduced to 8-bit colour, and an embedded colour profile is not carried: a wide-gamut (Display P3) iPhone photo is written as sRGB with its numbers unconverted. The original EXIF, including GPS location and capture time, is not copied. Note the capture date first if you need it. A rotation recorded in the container is applied during decode, so photos come out upright. The tool exports supported top-level still images returned by the decoder, numbering downloads from a multi-image container. It does not preserve a Live Photo's full still/video resources or all motion data. Returned images that fail to decode are skipped, and a row counts those detected failures. If the decoder cannot obtain an image handle, it can omit that image before the page receives it, so that omission is not counted. This decoder supports HEVC-coded HEIC files. The decoder cannot tell a codec it lacks from damage, so a HEIF it cannot open — an AV1 or JPEG payload, or a damaged file — is refused as undecodable with both causes named, and a file with no image in it is refused by name. The decoder (about 1.4 MB) loads before file reading; prepare it online before testing offline use.

Frequently asked questions

Is my photo uploaded anywhere?
No. File reading, WebAssembly decoding and canvas PNG encoding happen locally. The meter counts resource-timing entries after file reading begins; earlier decoder/page downloads and WebSocket traffic are not included. The methodology page explains the network-panel and warmed offline checks and their limitations.
Is the PNG really lossless?
PNG encoding is lossless for the pixel values it receives, which is why there is no quality dial. The whole conversion is not necessarily bit-exact: this decoder/canvas pipeline produces 8-bit output and can change colour or translucent-pixel values. It also does not restore detail discarded by any earlier lossy encoding. Keep the HEIC original for its original precision, profile and metadata.
Why is the PNG so much bigger than the HEIC?
PNG encoding avoids an additional lossy-compression step, which can make photographic output much larger. For example, a 2 MB HEIC can become a 15–40 MB PNG; that is a size illustration, not a guaranteed ratio. Compare the actual result. JPG may be more convenient for photo sharing when transparency is unnecessary, but inspect its quality and retain the original.
Does the PNG have transparency?
The output keeps transparency when the decoder supplies an alpha channel. Many camera photos are opaque, so conversion alone does not create a transparent background. PNG can retain transparency added later in an editor, but this converter does not cut objects out.
Why is the first conversion slower than the rest?
An uncached run must load the approximately 1.4 MB WebAssembly libheif decoder before reading the file. This tool uses that decoder rather than relying on native HEIC support, which varies between browsers. The cached decoder can be reused while available. Complete an online conversion before testing offline use; clearing or updating the cache can require a fresh download.

Related tools