How it works under the hood

The technology behind local HEIC conversion

This converter turns iPhone HEIC photos into JPG, PNG, or WebP entirely inside your browser. This page explains exactly what happens to your files, what the tool can and cannot do, and which open-source components make it work — in plain language, with no marketing claims.

The conversion pipeline

A HEIC file is a photo stored in the High Efficiency Image File Format (HEIF), usually with its pixels compressed using HEVC. Opening or converting it takes more than renaming the extension — the image has to be genuinely decoded and then re-encoded. Here is the full path a file takes:

01

You choose a file

The browser reads your HEIC or HEIF photo through the standard File API. Nothing is sent anywhere at this step — the file is read into memory on your own device.

02

The image is decoded locally

A HEIC decoder (the open-source libheif library, compiled to JavaScript and run inside a background Web Worker) turns the compressed HEIF/HEVC image data into raw pixels. This keeps the heavy decoding work off the page’s main thread so the interface stays responsive.

03

Pixels are drawn to a canvas

The decoded pixels are drawn into an in-memory canvas. This is where the target format and quality are applied.

04

A new image is encoded

The browser encodes the canvas to your chosen format — JPG, PNG, or WebP — and hands you a file to download. The original HEIC is never modified.

Privacy model: no upload

Every step above runs in your browser. Your photos are read, decoded, and re-encoded locally and are never uploaded to our servers — there is no server-side conversion step to send them to. When you download the result, it is written straight from your browser’s memory to your device.

The only network requests the site makes are to load the page and its code, and — only with your consent — standard analytics and advertising scripts. Those scripts do not receive your image files. Because conversion is local, the page even continues to work for the files you have already loaded if your connection drops after the converter code has loaded.

Plain statement of the model.

Files in → decoded and re-encoded in your browser → file out. No image upload, no account, no server-side copy of your photos.

Limitations worth knowing

A browser-local tool has real trade-offs. We would rather state them clearly than overpromise:

01

Metadata is not carried over

Because the output is re-encoded from raw pixels, EXIF and other embedded metadata (camera model, GPS location, capture time) are not copied into the converted file. For most sharing and upload tasks this is fine, and it can even be a privacy benefit — but if you need the original metadata, keep the original HEIC.

02

Transparency handling differs by format

JPG has no transparency, so any transparent areas are flattened onto a white background. PNG and WebP outputs preserve transparency.

03

Very large files can hit browser memory limits

Decoding happens in your device’s memory, so extremely large images or long batches on a low-memory phone may fail. Files up to about 50 MB each are supported; if a conversion fails, try fewer files at once.

04

It is JavaScript, not native code

The decoder is the libheif codec compiled to run in the browser as JavaScript. It is not a native app and does not use a separate WebAssembly (.wasm) module in the current build. It is fast enough for everyday photos but slower than a native desktop tool on very large batches.

Open-source components

The HEIC decoding is powered by libheif, the widely used open-source HEIF/HEIC library, via the heic2any browser wrapper. Encoding to JPG, PNG, and WebP uses the browser’s own built-in canvas encoders. We rely on these open components rather than a proprietary black box, and we keep the tool aligned with their capabilities and licenses.

Technology FAQ

Do my photos ever leave my device?

No. Reading, decoding, and encoding all happen in your browser on your device. The converter does not upload your images to a server. The only network activity is loading the page itself (and, with your consent, standard analytics and advertising scripts).

Do I need to install anything?

No. Everything runs in a standard modern web browser. There is no app, extension, or account required.

Which browsers work?

Any current version of Chrome, Edge, Firefox, or Safari on desktop or mobile can run the converter. Very old browsers without support for the required file and canvas APIs may not work.

Is the conversion lossless?

PNG output is lossless. JPG and WebP are re-encoded and use a quality setting, so they are not bit-for-bit identical to the source, but the visible difference at the default quality is minimal for normal photos.