Convert images, HEIC included
The usual case: iPhone photos in HEIC that a website, a form or a piece of software refuses to open. Papyx converts them to JPG, PNG or WebP without the photo leaving your machine — which, for personal photos, is the only difference that matters against an online converter.
HEIC is the one format the rendering engine cannot read: it holds HEVC, and Chromium ships no HEVC decoder. Papyx compiles libheif to WebAssembly and loads it only when the first HEIC file turns up.
- Reads
- HEIC · PNG · WebP · AVIF · JPG
- Writes
- JPG · PNG · WebP
- Engine
libheif- Protected documents
- not supported
Convert HEIC to JPG offline, without uploading your photos
-
Drop the images in
HEIC, PNG, WebP, AVIF or JPG, in bulk if you like.
-
Pick the output
JPG for maximum compatibility, PNG for lossless, WebP for weight.
-
Convert
The whole batch runs as one job, with progress on screen.
-
Save
Files are written into the folder you point at.
Worth knowing
-
iPhone HEIC
Decoded locally by libheif compiled to WebAssembly, loaded only when a HEIC actually shows up.
-
Native AVIF
AVIF shares HEIC's container, but the browser decodes it natively and better — so Papyx keeps it off the libheif path on purpose.
-
Batch conversion
A folder of photos goes through in one run, with no quota and no queue.
-
Nothing uploaded
Your photos are not training data: they do not leave the machine.
Limits
-
Converting re-encodes the image: going to JPG is lossy, here as everywhere else.
-
Papyx does not convert to HEIC — only from it.
Questions about “Convert”
How do I convert HEIC to JPG without uploading it?
Open the Convert tool, drop your HEIC files in, choose JPG. Decoding happens inside the app through libheif compiled to WebAssembly; no network request is made.
Why won't my computer open HEIC files?
HEIC holds HEVC, a codec whose licensing means it is not bundled everywhere — Chromium, for instance, has no HEVC decoder. That is exactly why Papyx carries its own.
Can I convert a whole folder at once?
Yes. The entire batch runs as one job, with a progress bar and a cancel that actually answers.