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.
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.