Pixel Dock
image tools · nothing leaves your browser

Convert HEIC to JPG

Drop the photos your iPhone insists on saving as .heic and get files that Windows, Word, and every upload form on the internet will actually open. The decoding happens on your own machine — the photos are never sent anywhere.

Why your photos are HEIC in the first place

Since iOS 11, iPhones have saved photos as HEIC by default. It's a genuinely better format — roughly half the file size of JPEG at matching quality, with support for higher bit depth and transparency. Apple switched because it saves an enormous amount of storage across a billion devices.

The problem is everything else. Windows needs a paid codec from the Microsoft Store to show HEIC thumbnails. Older Photoshop won't open them. Most upload forms reject them outright. So a format designed to save space instead becomes a file you can't use, and the fix is converting back to the format that works everywhere.

What's actually in a .heic file

HEIC isn't a single image, it's a container — closer to a zip file than to a JPEG. It can hold one photo, or a burst of forty, plus thumbnails, depth maps, and the editing history from Apple's Photos app. That's why each result here reports what was found inside rather than assuming one image per file.

When a file holds more than one photo, all of them are converted and numbered. Live Photos are a partial exception: the still frame converts normally, but the short video clip alongside it is a separate track that can't become a JPEG. You'll get the still.

Where the work happens

Decoding runs in your browser through a WebAssembly build of libheif — the same open-source library behind most HEIC support on Linux. There's no server involved and no upload step. Because it's genuinely doing the decode locally, expect a few seconds per photo; a 12-megapixel image expands to about 47MB of raw pixel data before it gets re-encoded.

That work happens on a background thread, so the page stays responsive and the progress indicator keeps moving while it runs. Photos are handled one at a time on purpose — decoding six at once would multiply that 47MB by six and, on a phone, get the tab killed by the operating system.

What doesn't survive the conversion

Picking a format