Bulk HEIC to JPG Converter
A folder of 200 iPhone photos should not take an evening. Do 100 at a time, locally.
Drop your HEIC or HEIF files here
or choose files — up to 100 at once, 100 MB each
No upload. Files are processed in your browser.
Files never leave your device · EXIF and GPS removed
Works on Chrome, Safari, Firefox and Edge · No installation
Bulk conversion handles a whole folder of iPhone photos at once: up to 100 files per batch, downloaded as a single ZIP with the original filenames preserved.
Most online converters put a five-file cap on free users, then ask for a subscription the moment you come back from a trip. This one processes up to 100 files per batch and lets you download everything as a single ZIP.
Because decoding happens on your machine, there is no upload queue and no server-side file size limit — the practical limit is your device’s memory.
Last reviewed November 2026
Built for folders, not single files
Drag a folder
Select the whole DCIM folder; every HEIC inside is queued.
One ZIP out
Keep original filenames instead of downloading 100 separate files.
No queue, no account
No email capture, no daily limit, no watermark.
How to convert HEIC → JPG
- Select up to 100 photos. Desktop browsers handle the largest batches; phones work best under 30.
- Set one quality for all. The settings apply to the whole batch.
- Download the ZIP. Same filenames, .jpg extension, metadata removed.
How long a batch actually takes
| Batch size | Approximate time | Works well on |
|---|---|---|
| 10 photos | ≈3 seconds | Any device, including older phones |
| 30 photos | ≈8 seconds | Phones and tablets with 4 GB or more |
| 100 photos | ≈25–30 seconds | Desktop browsers |
| 300 photos | Three batches, ≈90 seconds total | Desktop, with a break between batches |
Why the queue runs one photo at a time
It looks like it should be faster with more parallelism, and it would not be. A 12 MP photo is 4032 × 3024 pixels, which is about 46 MB once decoded; the JS engine holds that, the canvas copy, and the encoded output at the same time. Two at once doubles the peak, four at once quadruples it, and mobile Safari starts killing tabs somewhere around a few hundred megabytes. Decoding strictly one at a time keeps the peak at roughly one photo regardless of batch size — which is why a 100-file batch does not use twenty times the memory of a five-file batch.
The converter releases each canvas as soon as its blob is produced, so the only thing that accumulates is the list of finished files. Time, not memory, is the thing that grows with batch size.
The ZIP is assembled in the browser and stored without compression — JPGs are already compressed, so running deflate over them would cost several seconds and save almost nothing. The download is roughly the sum of the JPG sizes, plus a few bytes per file for the archive index.
Filenames are preserved with the extension swapped: `IMG_4821.HEIC` becomes `IMG_4821.jpg`. If two files in the batch share a name — common when you merge two camera folders — the later one gets a numeric suffix rather than overwriting the earlier.
If a large batch goes wrong
Nearly every batch failure is memory, not the converter. The browser kills the tab rather than throwing a friendly error.
| Symptom | What causes it | What to do |
|---|---|---|
| The tab reloads or goes blank halfway through | Mobile Safari or Chrome ran out of memory and discarded the page | Halve the batch. On an iPhone, stay under 30 files |
| Progress stalls on one file and never moves | That photo is much larger than the rest (48 MP, panorama) and is still decoding | Wait, or remove it and convert it alone |
| The ZIP is smaller than expected | Only finished files are included — anything that errored is skipped | Check the file list for red entries before downloading |
| Two photos ended up as IMG_0001 and IMG_0001-2 | Both source files had the same name | Expected behaviour; the suffix prevents an overwrite |
| Download did nothing | The browser blocked a second automatic download | Allow multiple downloads for this site, or use the individual download links |
| Quality looks different from a single-file conversion | One setting applies to the whole batch | Run the batch again with a different setting rather than mixing |
How many photos per batch, realistically
The tool accepts 100 at a time. What your device can finish is a different number.
| Device | Comfortable batch | Why |
|---|---|---|
| Desktop, 16 GB RAM | 100 | The documented limit; time is the only constraint |
| Older laptop, 8 GB RAM | 50–100 | Workable, but keep other tabs closed |
| iPhone or iPad | 20–30 | Mobile browsers cap memory per tab aggressively |
| Android mid-range | 30–50 | Depends on how much RAM the browser is allowed |
| Anything, with a folder of 300+ | Run batches back to back | There is no daily cap — just do not stack them in one queue |
If a batch fails, the finished files are still in the list. Download those before retrying the rest.
Questions
How many photos can I convert at once?
100 per batch. If you have more, run a second batch — there is no daily cap.
Will my phone run out of memory?
Possibly. Mobile browsers have tighter memory limits; keep batches under 30 on phones.
Are filenames preserved?
Yes, only the extension changes. IMG_4821.HEIC becomes IMG_4821.jpg.
Is there a daily limit on bulk conversion?
No. Batches are limited to 100 files, but you can run as many batches as you want — there is no account, no quota and no waiting period.
Does the ZIP compress the images further?
No. The archive is stored without compression because JPG data is already compressed; deflating it would add time and save almost nothing.
Can I keep the original folder structure?
Not currently. The ZIP is flat and preserves filenames only, so two folders both containing IMG_0001 will end up as IMG_0001.jpg and IMG_0001-2.jpg.
Related converters
Same engine, different formats — all processed locally.