Tools / Inspect

See exactly what's inside an image

Every field below comes from parsing the file's actual bytes — magic numbers, JPEG/PNG/AVIF metadata segments, ICC profiles, XMP — not from guessing. GOOD means confirmed, WARNING means inferred by convention, UNKNOWN means we genuinely couldn't tell.

Drop an image here
or choose a file
JPEG · PNG · WebP · AVIF

How Inspect actually works

Format detection reads the actual bytes, not the file extension or the browser's reported MIME type: JPEG marker segments, PNG chunk headers, ISOBMFF/AVIF boxes, WebP's RIFF container. Bit depth, resolution, and color space each come from a specific, named field in that structure — the "evidence" line under each result names exactly which one.

Color space and gamut come from the embedded ICC profile, when one exists: its header, tag table, and — when present — the actual rXYZ/gXYZ/bXYZ primaries. Those primaries get compared against known reference gamuts (sRGB, Display P3, Rec.2020) with a distance tolerance calibrated against primaries measured from a real browser-generated sRGB profile — not a number picked and left unchecked. Outside that tolerance, the gamut is reported as custom or unrecognized, never silently forced to the nearest guess.

The luminance histogram and pixel readout come from decoding the image to an 8-bit sRGB canvas — genuinely computed from real pixel data, but explicitly not true HDR nit values, since getImageData always returns clamped, tone-mapped 8-bit output regardless of a source's real dynamic range. For files with an embedded gain map, the separate reconstructed-luminance panel estimates real nits by actually recombining the primary and gain-map images, rather than reading the clamped canvas output.

Questions people actually ask

Does Inspect upload my image anywhere?
No. Everything — format detection, ICC parsing, the pixel histogram, gain-map reconstruction — runs locally, using the File API, Canvas, and a Web Worker for the pixel analysis. Open your browser's network inspector while you use it and you'll see nothing carrying image data.
What's the real difference between GOOD, WARNING, and UNKNOWN?
GOOD means the value came directly from parsing the file's actual bytes — a real field, not an inference. WARNING means it's inferred by convention (a reasonable but not certain read). UNKNOWN means we genuinely couldn't determine it — no guess, no default, no silently-assumed positive or negative.
Can Inspect tell me my image's real brightness in nits?
Only for gain-map JPEGs, and only as a labeled estimate. The reconstructed peak/average nits come from recombining the primary image with the embedded gain map per the file's own metadata — a real calculation from real embedded data, but an estimate (it assumes 100-nit SDR white and omits the spec's small offset epsilon terms), not a calibrated measurement. For any other file, there's no reliable way to recover absolute nit values from 8-bit pixel data, so Inspect doesn't pretend to.
Why does bit depth show UNKNOWN sometimes?
Because the specific field it comes from — JPEG's SOF precision byte, PNG's IHDR bit-depth field, AVIF's pixi box — wasn't found or didn't parse for that file. Rather than default to a plausible-sounding 8-bit guess, the field stays UNKNOWN.