Read every metadata block a file carries: EXIF from its TIFF structure, IPTC from its IIM records, XMP from its packet and the ICC colour profile from its header, with GPS converted to decimal degrees with the reference letters applied.
Initializing in your browser…
Remove EXIF, GPS, XMP and IPTC by rewriting the container rather than re-encoding the picture, so the pixels are byte-for-byte identical and the file gets smaller. Selective removal, batch mode and a ZIP.
Turn an image into a data URL whose payload is decoded again and compared byte for byte with the file, with the media type taken from the file's own signature rather than its extension and the size cost of embedding stated in full.
Compare two images with a perceptual engine (pixelmatch) that ignores anti-aliasing, or an exact byte engine. Groups changes into regions with bounding boxes, reports SSIM, and handles size mismatches with an explicit policy.
A photograph that carries all four kinds of metadata at once, which most readers see only one of.
Input
IMG_4821.jpg
What is in it
EXIF 25 tags Make FixtureCam, LensModel FX 35mm f/1.4, BodySerialNumber SN-0001
1/250s, f/1.4, ISO 400, 35mm
GPS 51.507222, -0.127500 (N and W applied)
IPTC 4 datasets By-line, Caption, Copyright notice, Object name
XMP 3 fields Creator, Rights, Credit
ICC 588 bytes sRGB built-inFour different formats, read from four different blocks. An EXIF library reads the first two and reports nothing about the other three, which is why a file can look clean and still carry a byline and a caption. The GPS sign comes from the reference letters: ignoring them puts this photograph eight miles east, on the other side of the meridian.
See everything an image file says about itself: EXIF camera settings and GPS, IPTC captions and bylines, the XMP packet, and the embedded colour profile, each read from its own format rather than from whichever one a single library happens to know.
See the position, the serial numbers and the dates that would go with the file.
Shutter speed as a fraction, aperture as an f-number, focal length in millimetres, straight off the rationals.
Find out whether the file carries a profile and which one, before blaming the picture.
The Orientation tag, in words, with what it does to the dimensions.
The GPS IFD gives 51 degrees 30 minutes 26 seconds N and 0 degrees 7 minutes 39 seconds W, which the page shows as 51.507222, -0.127500 with a map link. The minus sign comes from the W reference letter, and without it the position is eight miles away on the other side of the meridian.
A PNG carrying an eXIf chunk with camera make, model, lens and body serial number reads as having no metadata in tools that only look at JPEG APP1 segments. All of it is listed here.
IPTC datasets 2:080 and 2:120 carry the creator and the caption, written by newsroom and stock software. They are in a Photoshop image resource block, not in the EXIF, so an EXIF reader reports none of them.
Four different formats live inside an image file and a reader that knows one of them can only report one of them. EXIF is a TIFF file (CIPA DC-008-2019, which is TIFF 6.0 with extra tags). IPTC is the Information Interchange Model, inside an Adobe image resource block. XMP is RDF/XML (ISO 16684-1). An ICC profile is its own layout (ICC.1:2010). This reads all four, and says where it looked even when it found nothing: a file with no IPTC gets the line "no Photoshop image resource block; IPTC is written by newsroom and stock software, not by cameras", rather than silence that could mean either.
The EXIF reader walks the IFDs itself: IFD0, the Exif IFD, the GPS IFD, the interoperability IFD and IFD1, with all twelve TIFF types. Every tag is named from the specification tables, and a tag that is not in them is shown by its hexadecimal number rather than as `undefined`. Three cases a naive reader gets visibly wrong are handled: UserComment begins with an eight-byte character-code designator (clause 4.6.5), so printing the payload raw gives a list of byte values instead of the sentence; the Windows XP tags are UTF-16 little-endian in a byte array; and a maker note is reported as present with its size and explicitly not decoded, because every manufacturer uses a different undocumented layout.
GPS is converted to decimal degrees WITH THE REFERENCE LETTERS APPLIED. A longitude of 0 degrees 7 minutes 39 seconds is +0.1275 or -0.1275 depending on whether GPSLongitudeRef is E or W, and the two are eight miles apart, on opposite sides of London. The page prints the signed decimal pair, a link to the position on a map, and the reference letters themselves so the sign can be checked.
Two things that change what you see are reported rather than left implicit. The EXIF Orientation tag is named in words, not as a number, and the stored dimensions are shown beside the displayed ones, because every current browser rotates the picture and the two differ by a quarter turn for values 5 to 8. The stored size is read from the JPEG frame header (T.81 clause B.2.2) or the PNG IHDR, so it needs no decoder. And an embedded EXIF thumbnail is flagged with its size: a thumbnail is written when the picture is taken and is not always regenerated when it is edited, so it can hold an earlier, uncropped version.
EXIF in a PNG lives in an eXIf chunk (PNG Third Edition clause 11.3.4.4) rather than in a JPEG APP1, and is read here; a JPEG-only reader finds nothing in such a file. The Pixels tab counts every pixel with no downscaling and reports the exact per-channel histogram and the colours the picture is mostly made of, every one of them a colour the image really contains. The JSON export carries everything on the page, EXIF, IPTC, XMP, the colour profile and the block list included. Nothing is uploaded.
Screenshots never have any, and Instagram, X and Facebook re-encode on upload and strip it. The page names all four sources it checked, so "nothing found" means all four were looked at.
Only if location services were on when the photo was taken. When it is present the page shows it in decimal degrees with the sign the reference letters imply, plus a map link.
The stored dimensions are what the file holds; the displayed ones are what a browser shows after applying the EXIF Orientation tag. For values 5 to 8 they are a quarter turn apart. The stored size is read from the frame header, so it does not depend on any decoder.
A block of manufacturer-specific data, in a layout each manufacturer keeps to itself. It commonly holds serial numbers, shutter counts and focus information. Its size is reported here and its contents are not guessed at.
No. The file is read in your browser and nothing is sent anywhere.
Images are decoded, edited, and exported entirely inside this browser tab. No originals, exports, or metadata are uploaded.