Skip to content
heic.fyi

Inspect

HEIC Inspector

See how a HEIC file is built: brands, codec profile, tiles, auxiliary images such as depth and HDR gain maps, and every item.

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

Answers
How is this file built, and what is hiding in it?
Shows
Brands, codec config, tiles, auxiliary images, item table
Decoding
Only when you press Run decode test
Audience
Developers, support staff and the curious

What this tool does

The photo you see is one item among several. A HEIC is a container of items (the main image, a thumbnail, tiles, a depth map, an HDR gain map, the Exif block) linked by references and described by properties. The Inspector lays that arrangement out. The Container section shows the major and compatible brands, each with what it means, and the order of the top-level boxes. Codec details give the HEVC profile, tier, level, chroma format, bit depth and NAL length field from the hvcC box (or the AV1 equivalent from av1C), plus the VPS, SPS and PPS parameter sets and whether each is flagged complete. A capability checklist then marks, yes or no, Exif, XMP, an ICC profile, an nclx colour description, alpha, depth or disparity, an HDR gain map, HDR light-level metadata, mattes, thumbnails, tiling, more than one image, rotation or mirroring, an image sequence, a Live Photo pairing ID, a burst ID and hidden items.

Photos from many cameras are stored as a grid of tiles. For those, the Inspector reads the grid descriptor, including descriptors stored in the idat box, and reports columns by rows, tile size, the output size and whether the tiles cover it. Auxiliary images get their own table with the item, the kind (depth, disparity, alpha, HDR gain map, portrait effects matte, semantic segmentation matte, thumbnail), which item it belongs to, its pixel size and its type URN. The full item table lists every item's ID, type, role, size, offset, storage method and pixel size, and a button on each row expands its property associations, marked essential or not and showing how many items share a property. The Live Photo ID is only an ID: the video clip is a separate file.

Nothing is decoded until you ask. The Decode test section has a button that decodes the primary image, with libheif in a worker for HEVC files and with the browser's own decoder for AVIF, and reports Decodes, Not tested (the browser has no AV1 decoder) or Failed with a reason. Parse warnings, such as a missing item or a damaged Exif block, are listed at the bottom. The HEIC File Checker page is the short version of this one, and the Structure Viewer shows the raw boxes without interpreting them.

How to use it

  1. 01

    Choose a HEIC or HEIF file

    The container is parsed without decoding. A file that is not a HEIF container is named for what it really is.

  2. 02

    Read the Container section

    The major brand is badged and each compatible brand has a one-line note. A brand the viewer does not know says so. Top-level boxes are listed in file order.

  3. 03

    Check Codec details

    Profile, level, chroma format and bit depth explain why a file may fail in older software, for example a 10-bit or 4:2:2 profile.

  4. 04

    Scan the capability checklist

    Present items are bold and ticked, absent ones greyed. If the file is tiled, a Grid structure section follows.

  5. 05

    Open the auxiliary table and item table

    Click the property count on an item row to see its property associations, such as ispe, hvcC, colr or auxC. Item references are in a collapsed list below.

  6. 06

    Run the decode test if you need it

    Press Run decode test to confirm the primary image decodes. Then read the Parse warnings.

When to use it

Working out what a conversion will drop

A JPG or PNG is rebuilt from the decoded primary image, so depth maps, HDR gain maps and mattes do not come along. The checklist shows which of those your file has before you convert it.

Telling an HDR gain-map photo from other HDR

A gain map is a separate auxiliary item (and sometimes a tone-map item). HDR light-level metadata (clli and mdcv) and a PQ or HLG transfer in the nclx colour description are different things, and the checklist and Codec details keep them apart.

Explaining why a file is large

The item table gives each item's size in bytes. A big depth map, a gain map, a full-size thumbnail or many tiles show up immediately.

Diagnosing an interoperability failure

A brand list with only generic brands, a HEVC profile an old decoder lacks, or an item type such as vvc1 or j2k1 instead of hvc1 usually explains why one program opens a file and another does not.

Good to know

  • 01Auxiliary images are listed and measured, not displayed. To save them (depth maps, masks, gain maps, extra frames) use Extract Images from HEIC; for just the embedded thumbnail as a PNG, use the thumbnail extractor.
  • 02Present on the checklist means the item or property exists, not that its data is well formed. The decode test covers the primary image only, so a damaged depth map or thumbnail will not show up there.
  • 03An auxiliary kind comes from the type URN the file declares. A URN the viewer does not recognise, or a missing one, is listed as "Other auxiliary image", with the URN shown when there is one.
  • 04Items with no data, or stored by reference to another item, are listed with that storage method but their bytes are not read. Only grid descriptors and metadata items are read from the container.
  • 05Decoding is bounded by the size and pixel limits and by a time limit, so a very large image can come back as Failed with a resource reason rather than Decodes.

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

Further reading

Last updated: . Something wrong or out of date? Tell us — corrections are recorded in the changelog.