Inspect
Extract Images from HEIC
List every image a HEIC or HEIF file contains (photos, extra frames, thumbnails, depth maps, HDR gain maps, masks), preview each one, and save the ones you want as PNG, JPG or WebP, or all at once as a ZIP.
Input
Drop HEIC or HEIF files here
or choose them from your device
HEIC or HEIF · up to 100 MB per file · processed on your device
At a glance
- Input
- HEIC or HEIF files, one or many (not AVIF)
- Finds
- Photos, extra frames, thumbnails, depth, disparity, HDR gain maps, mattes, alpha
- Output
- PNG (default), JPG or WebP; 16-bit PNG for deep depth maps
- Batch
- One ZIP, one folder per file
What this tool does
A HEIC is a container, and the photo you see is only one of the images in it. A camera file can also hold a small thumbnail, a depth map for Portrait effects, an HDR gain map, cut-out masks for hair or skin, a transparency mask, and in some files several complete pictures: burst shots, or the frames of a dynamic wallpaper. This tool opens the container, lists every image it finds as a card with a preview, its size, its bit depth and a plain description of what it is, and lets you tick the ones you want. Each can be saved on its own, or all together in a ZIP. Nothing is uploaded; the decoding happens in your browser.
It does not stop at the pictures. A depth map, a matte or a gain map is a greyscale image whose pixels are measurements, not colours, so these are decoded as stored and written as single-channel PNGs instead of being run through a colour conversion. A map stored with 8 bits comes out as an 8-bit greyscale PNG with the exact stored values. A map stored with 10 bits comes out as a 16-bit greyscale PNG by default, and each card says which of the two you will get before you save. The photos are different: they are always saved as 8-bit sRGB (or with their Display P3 profile if you ask), so a 10-bit photo is reduced to 8 bits, and the card says so.
This is not the thumbnail extractor. Extract HEIC Thumbnail does one narrow job quickly: it saves the first embedded thumbnail as a PNG and never decodes the photo. This page decodes whatever you tick, so it is slower, but it returns everything, including the thumbnails. If you only want the small preview, use that page. If you want to know what a file contains without saving anything, the HEIC Inspector lists the items and their properties without decoding them.
How to use it
- 01
Add one or more HEIC or HEIF files
Drop them or choose them. The file is read in your browser and its container is listed immediately; no image is decoded yet.
- 02
Wait for the previews
Each image is opened one at a time and a small preview appears on its card, with its real pixel size and bit depth. If an image cannot be read, its card says why and it is left unticked.
- 03
Choose what to save
Everything readable is ticked at first. Use Only photos, Only depth & masks, or tick cards by hand. Pick PNG, JPG or WebP; PNG is the default because depth maps and masks need to stay exact.
- 04
Download
Use Download on a card for one image, or Download selected as ZIP. With several files, the ZIP has one folder per file. Names follow the pattern photo-primary.png, photo-frame-03.png, photo-depth.png, photo-hdr-gain-map.png.
When to use it
Getting the frames out of a multi-image HEIC
Some files store several full pictures, such as bursts and Apple's dynamic wallpapers. Every top-level image is listed in file order, with the primary one marked, and saved as frame-01, frame-02 and so on.
Pulling out a depth map or a matte
Portrait-mode photos can carry a depth map and cut-out mattes. Saved as greyscale PNGs they open in an image editor, a 3D tool or a script as ordinary images.
Looking at what an HDR gain map is doing
A gain map is a brightness-boost image, not a photo. Saving it shows what an HDR-aware viewer would add to the photo. It is saved as stored and is not applied to anything.
Checking what a file really contains
A damaged or oddly built file shows up clearly here: images that are cut off, or that the decoder refuses, are listed with a reason rather than failing the whole file.
Good to know
- 01No file from a real iPhone with Portrait depth, mattes or an HDR gain map was available when this was built. The test files were made with pillow-heif and a script that adds auxiliary images with Apple's type names, so how Apple's own files behave is unverified.
- 02Gain maps are extracted, not applied. You get the greyscale boost map, not an HDR rendering of the photo. A newer kind of gain map, stored as a derived
tmapitem, is handled by reading the file's structure only: I had no file of that kind, so that path is untested. - 03Image sequences (.heics) hold most of their frames in a video-style track, not as separate images. In my test the decoder used here crashed on the second frame of a 24-frame sequence, so the tool lists the track and extracts only the still images. For the frames, ffmpeg is the safer route.
- 04The decoder is the same HEVC decoder as the other tools here. In one 1200 by 900 depth map I compared against ffmpeg's decoder, 1,110 of 1,080,000 pixels (0.10%) were one level off. Colour photos with 4:2:0 chroma differed from a native libheif decode by up to 5 levels out of 255 at edges. Against the same WebAssembly decoder, the pixel values of every PNG I tested were identical.
- 05Photos are written as 8-bit images. A 10-bit photo is reduced to 8 bits, and Display P3 is converted to sRGB unless you switch on Keep wide colour. JPG and WebP are lossy, so a depth map saved that way is no longer exact; the card says so.
- 06Limits are the site's usual ones: 100 MB and 100 megapixels per file, 64 top-level images per file, and 50 files or 500 MB per batch. In Safari on iPhone a very large PNG may be scaled down by the browser's canvas limit, and the result says when that happens.
Technical notes
Privacy and limits
Your file stays on your device
This tool runs in your browser with WebAssembly. The file is read into the tab, processed there and discarded when you close it — there is no upload and no account. You can check this yourself in your browser's network panel, and the privacy page lists what analytics does and does not receive.
Limits and checks
Up to 100 MB and 100 megapixels per file; batches of up to 50 files and 500 MB. Files are treated as untrusted input and every output is re-opened and validated before it is offered — see how we handle untrusted files.
Frequently asked questions
Related tools and reading
Last updated: . Something wrong or out of date? Tell us — corrections are recorded in the changelog.