tools / images / heic to jpg

HEIC to JPG

iPhone photographs opened by a decoder that ships with the page, in browsers that cannot open them at all.
Runs locally in your browser. Enable JavaScript to use the interactive tool. The practical details remain available below.

What HEIC to JPG actually does

HEIC is the reason so many people end up uploading their photographs to a stranger. Chrome, Edge and Firefox cannot decode it, and the obstacle is patent licensing on the HEVC codec rather than anything a browser vendor can fix by shipping an update. Safari can, because macOS and iOS already carry a licensed decoder that Safari borrows. This page tries the platform decoder first and falls back to a WebAssembly build of libheif that is fetched from this site as a static file and runs inside the tab. That fallback is about a megabyte and a half and loads only when a HEIC is actually present. Orientation is read from the photograph's own rotation tag, which is what stops a portrait shot arriving on its side, and the location where the picture was taken does not survive the conversion.

How to use it

  • Choose the photographs straight off the phone or out of a Photos export. The decoder loads on the first one and is reused for the rest.
  • Set the quality. Eighty-five is a reasonable default for photographs and the file size for each picture is reported once it converts.
  • Download them one at a time or as a single zip.

Useful for

  • Send phone photographs to somebody whose computer refuses to open them.
  • Prepare pictures for a form, a listing or an application that accepts JPG only.
  • Remove the GPS coordinates from a set of photographs before sharing them, without installing anything.

Limits worth knowing

  • A Live Photo converts as its still frame. The motion is a separate video track and is not carried.
  • A HEIC holding a burst or a depth map converts its primary image only.
  • Colour profiles are not carried, so a photograph shot in Display P3 converts to the profile this screen uses.
  • The decoder is a general HEIF implementation rather than Apple's, so an unusual container can fail. The row says which file and why.

Questions people ask

Why can my browser not open a HEIC in the first place?

HEIC images are compressed with HEVC, which is patent-encumbered. Chrome, Edge and Firefox do not license it. Safari delegates to the operating system, which already has a licence for video playback.

Is the photograph uploaded to convert it?

No. The decoder is a WebAssembly file served from this site like any script and runs in the page. The photograph is read by the tab and never sent anywhere.

Will the picture come out sideways?

No. The rotation tag a phone writes is applied while decoding, which is the step naive converters skip.