Bulk HEIC to JPG converter
Process an ordered group of HEIC photos through a conservative, device-aware work budget. The queue decodes one HEIC source at a time, supports cancellation and per-file retry, validates every JPG, and packages only successful outputs.
Local HEIC workbench
One source queue, verified outputs
Your selected files remain in memory while you move between the HEIC output pages. Conversion bytes stay in this tab; ordinary page analytics can still record page visits and coarse, file-free events.
Source files
HEIC and HEIF only. Header inspection is bounded to 256 KB before admission.
Drag HEIC files here
choose files from this device, or paste a copied photo
Decoder boundary
The active HEIC decoder cannot be interrupted inside the installed library. Cancel stops queued decode work and discards a late current result; ZIP checksumming is separately abortable and stops its active stream.
Multi-image HEIC
The container item count is reported after decode. This release exports the first visual image; HEIC motion sequences are not preserved.
Memory varies by device
Compressed file size is not decoded memory. The workbench uses a device-aware cap and may ask you to process fewer photos.
How this workflow works
- 1Choose a batch. Admission considers decoded pixels, HEIC/WASM overhead, previews, output blobs, and ZIP duplication rather than file count alone.
- 2Review previews, remove or reorder photos, apply per-file rotation/flip, and set a collision-safe rename pattern.
- 3Start the bounded queue. Cancel stops queued work and discards a late result from the active decoder; individual failures remain retryable.
- 4Download successful JPGs individually or build one ZIP in the same visible order.
Limits stated before conversion
- There is intentionally no “unlimited” batch promise. Large selections may need several smaller runs.
- The installed HEIC decoder cannot be interrupted mid-call; cancellation is honest stop-and-discard behavior.
- All photo metadata is removed and HDR or wide-gamut content is exported as browser-rendered SDR.
- Only the first visual image is exported from each multi-image HEIC container.
When this output is useful
Convert an iPhone import folder into compatible JPG files for Windows.
Prepare an ordered, consistently named set for web upload or email.
Retry isolated corrupt or memory-heavy files without reselecting the entire batch.
The local-processing boundary
Selecting a file gives this page temporary access to that file in browser memory. The conversion path does not upload file bytes, file names, pixels, or extracted metadata. The website can still load its normal code and record page-level analytics; product events must contain only coarse counts, output type, and status. Clear the workbench or close the tab to release retained previews and results.
Frequently asked questions
How many HEIC files can I batch convert at once?
There is no fixed file count. Admission estimates decoded pixels, decoder and WASM overhead, preview buffers, output blobs, and a full ZIP duplicate, then compares that against a device-aware budget shown before the queue starts. A desktop with plenty of memory accepts far more than a phone.
Can I convert a whole folder of iPhone photos?
You can select every HEIC file in a folder through the file picker or drag them in together. Very large imports are best split into several runs, because a browser tab does not get the memory headroom a desktop application would.
How do I download all the converted photos together?
After the queue finishes, build a ZIP containing every successful JPG in the order shown on screen. Files that failed are excluded from the package and stay retryable, so one bad photo never blocks the rest of the batch.
Can I stop a batch that is taking too long?
Yes. Cancelling stops all queued work immediately and discards the result of the decode already in flight. The underlying HEIC decoder cannot be interrupted mid-call, so the honest behaviour is stop-and-discard rather than a claim of instant termination.
What happens if one file fails?
That file is marked with a specific status and the queue continues. You can retry individual failures without reselecting the batch, which matters when a single corrupt or unusually large photo would otherwise waste a long run.
Can I rename the converted files?
Yes. A rename pattern applies across the batch and is collision-safe, so exported JPGs keep a predictable, ordered naming scheme in both individual downloads and the ZIP.
Is batch conversion still done locally?
Yes. Every photo is decoded and re-encoded in this browser tab and each JPG is validated before it is offered for download. Nothing about the batch changes the privacy boundary: there is no file-upload endpoint.