viewhack

HEIC viewer and HEIC to JPEG

Open an iPhone photo (.heic or .heif), see it the right way up, and save it as a JPEG or PNG. You also see when it was taken and in which time zone, the camera, and whether the file gives away where you were.

The photo is decoded by your own browser on this device. It is never uploaded.

What it shows

How it works, and which browsers can do it

HEIC photos are compressed with HEVC (H.265), the same codec as iPhone video. This page carries no HEVC decoder of its own; it uses the one in your browser or your computer's graphics chip. It first asks the browser to open the photo directly, which Safari does on iOS 17, iPadOS 17 and macOS 14 or later. Otherwise it reads the file's structure, hands each piece of the picture to the browser's video decoder (WebCodecs), and puts them back together. Chrome and Edge can do that on Windows and Mac computers whose graphics chip was made since about 2016, on most recent Android phones and on Chromebooks.

A 12-megapixel iPhone photo (4032 × 3024) is not stored as one picture: it is a grid of 8 × 6 = 48 tiles of 512 × 512 pixels, 4096 × 3072 in all, which is then cropped to size. The page decodes all 48 and draws each into its place.

If your browser has no HEVC decoder (for example Chrome on an older computer without HEVC hardware, or on many Linux systems), the page still shows everything that can be read without decoding: size, rotation, tiles, capture time, camera and location. It then says plainly that the picture cannot be shown in that browser, and names the ones that can.

What it cannot do

Getting the original HEIC off an iPhone

To a Mac
AirDrop sends the original HEIC to a Mac. In the Photos app on the Mac, File › Export › Export Unmodified Original saves the .heic exactly as the iPhone took it.
To the Files app
In Photos, tap Share › Save to Files, then open this page in Safari and choose the photo from Files. Picking straight from the photo library can hand the page a JPEG copy that iOS converted on the way; the page then tells you it received a JPEG, and Files gives you the original. From the share sheet, Options › Location lets you leave the location out when you send a photo.
Over a USB cable to a PC
Settings › Photos › Transfer to Mac or PC decides what arrives: Automatic converts photos to JPEG on the way, Keep Originals copies the .heic files.
Shooting JPEG instead
Settings › Camera › Formats › Most Compatible makes the camera save JPEG (and H.264 video) from then on. The files are larger: Apple's High Efficiency setting is what makes photos HEIC.

The .jpg that is really HEIC

Some transfer apps, cloud downloads and renames give an iPhone photo a .jpg name while the bytes inside are still HEIC. Programs that trust the name then call it a damaged JPEG. The first bytes tell them apart: a real JPEG starts with FF D8 FF, while a HEIC file has the letters ftyp at byte 4 followed by a brand such as heic or mif1. viewhack reads those bytes rather than the name, opens the photo here, and tells you the name is wrong. Renaming the file to .heic fixes it for other programs; saving it as JPEG here gives you a real JPEG.