Three ways to batch-convert HEIC
Converting one or two photos is trivial. Handling dozens or hundreds needs a real tool. Every practical option falls into one of three routes, and they differ sharply on privacy, control and effort — picking the wrong one wastes your afternoon.
Route one: a browser-based tool
Open a page, drop the files in, download the results. It is the fastest route to a result, requires no installation, and behaves the same on Windows, Mac and phones.
But there is one question you need to settle first: are your photos being uploaded?
Many online converters work by POSTing the file to their server, converting it there, and sending the result back. What you see is identical, but your photos have passed through someone else's machine in full — and phone photos usually carry EXIF data including capture time and GPS coordinates.
Checking is easy: open the browser's developer tools (F12), switch to the Network panel, and drag a photo in. If you see a request roughly the size of your photo going out, it is uploading. If the only traffic is a few hundred bytes, the work is happening locally.
This site takes the fully local route: HEIC decoding runs through the WebAssembly build of libheif, JPG encoding uses the browser's own Canvas API, there is no backend endpoint at all, and it still works with the network disconnected. The technical details are on the about page.
Route two: command-line tools
If you are processing hundreds or thousands of files, the command line is the only approach that is not exhausting. A few common ones:
sips, built into macOS:
for f in *.HEIC; do
sips -s format jpeg -s formatOptions 85 "$f" --out "${f%.HEIC}.jpg"
done
ImageMagick (cross-platform, needs installing):
magick mogrify -format jpg -quality 85 *.HEIC
The big advantage is control: quality, dimensions, output directory and file naming are all precisely definable, and the whole thing can be saved as a script and reused. The cost is a small learning curve, plus some setup on Windows.
Everything runs locally, so on privacy it is on par with local browser processing.
Route three: built-in system tools
On Windows, once HEIF Image Extensions is installed, Photos opens HEIC and can save as JPG. On a Mac, Preview and Photos both export as well.
The appeal is that nothing extra has to be installed — the extension counts as a system component — which also means it usually passes on locked-down work machines. The drawback is that it is strictly one file at a time: open, save as, pick format, pick folder, confirm, repeat. Tolerable for a dozen files, punishing at a hundred.
It suits the case where you just need to send two or three photos, or where installing third-party software is not allowed.
The three routes side by side
| Aspect | Browser tool | Command line | Built-in |
|---|---|---|---|
| Learning curve | Lowest | Higher | Low |
| Batch efficiency | High (multi-select) | Highest (scriptable) | Low (one at a time) |
| Privacy | Depends on the implementation — verify it | Local, nothing leaves | Local, nothing leaves |
| Installation needed | None | Possibly | Windows needs the extension |
| Works on a phone | Yes | No | Yes |
| Control over parameters | Medium (quality, size) | Highest | Low |
| Suits how many files | Tens to hundreds | Hundreds to tens of thousands | One or two |
How to choose
- Occasional use, modest counts, switching devices — a browser tool, but confirm first whether it uploads your photos.
- An entire photo library, or the same job repeatedly — learn one command line, wrap it in a script, and you are done forever.
- Locked-down work PC and only two or three files — built-in tools are the safest bet. On Windows, remember the HEIF extension first.
- Converting straight off a phone — a browser tool is the only option, and it works on both iOS and Android.
Whichever route you take, keep the original HEIC files. JPG is lossy — once only the JPG remains, every future edit degrades it a little more, and the original HEIC cannot be recreated.