Converter · No upload
HEIC to JPG, without uploading anything
Choose iPhone photos and download JPGs. Conversion runs in your browser without uploading your files. The HEIC decoder must download first; complete one conversion online before using this tool offline.
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 JPGs are numbered. Quality defaults to 0.92. A row counts detected decode failures, not all omissions. 10-bit/HDR becomes 8-bit; transparency is flattened onto white; EXIF/GPS are not copied. Takes HEVC-coded .heic and .heif.
How this converter works
The browser reads your selected file into memory. A WebAssembly build of libheif decodes the HEVC-compressed image into pixels, which are drawn to a canvas and encoded as a JPG at your chosen quality. The page then provides a download link. These steps take place in the tab, without uploading the photo.
To check offline conversion, first complete a conversion online so the HEIC decoder is downloaded and cached. Disconnect from the internet, then convert another photo. A successful conversion confirms that this conversion does not need a server. The methodology page explains two other ways to check network activity.
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. The output is 8-bit colour, so ten-bit and HDR detail is reduced. Embedded colour profiles are not carried over: a wide-gamut (Display P3) iPhone photo is written as sRGB with its numbers unconverted. Re-encoding removes metadata, including GPS location and the capture timestamp; note the date first if you need it. Rotation recorded in the container is applied during decoding. The quality dial affects every file not yet encoded, and transparency is flattened onto white. 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. Only HEVC-coded files can be decoded. The decoder cannot distinguish an unsupported AV1 or JPEG payload from a damaged HEIF, so its error names both possibilities. A file containing no image is refused by name. The decoder download is about 1.4 MB and finishes before the tool reads your first file. The quality dial applies to every file not yet encoded when it moves; completed outputs are unchanged.