EXIF Viewer
See every EXIF tag in your photo — camera, lens, GPS, timestamps. Download a clean stripped copy.
EXIF Viewer
How to use the EXIF viewer
Drop a photo
Drag any JPG, HEIC, TIFF, PNG or AVIF onto the dropzone, or click to pick from your file picker. The photo never leaves your browser — exifr parses the metadata locally, and the only network request this page can make is an optional, consent-gated one-bit beacon described in the FAQ.
Review the metadata groups
EXIF tags are grouped into Camera, Exposure, Timestamps, GPS, Image, and Rights sections. If a GPS section appears, you'll see a warning — that means the photo carries the exact coordinates where it was taken.
Download a stripped copy
Click Download stripped JPG to get a clean version with all EXIF, IPTC, XMP, and GPS data removed. This is what you should share publicly if you don't want strangers to know your camera, lens, location, or photo timestamp.
Or export the metadata as JSON
If you want to keep the metadata separately — for cataloguing, archival, or analysis — click Download metadata as JSON. You can then strip the original and keep the metadata file as a side-car.
EXIF — what your photos accidentally tell the world
Every photo your phone or camera takes is shipped with a hidden second file attached: the Exif block. Exif (Exchangeable image file format) was first published by JEIDA in 1995 and is now maintained by CIPA as standard DC-008 — version 3.1 was published in January 2026. It piggybacks structured metadata onto JPEG, HEIC and TIFF files. The intention was good — give photographers a way to record camera settings, lens, exposure and timestamp so they could review their craft later. The consequence is that, by default, a modern phone also embeds the GPS coordinates where the photo was taken (the GPS IFD), the camera body's serial number (BodySerialNumber, since Exif 2.3) and the exact software version that wrote the file.
What's actually inside EXIF
A phone photo typically carries dozens of tags. Camera make and model. Lens (since iPhones now have multiple lenses, this tells you which one). Aperture, shutter speed, ISO, exposure compensation, white balance. Date and time the photo was taken (down to the second), in the camera's local timezone. GPS latitude, longitude, altitude, and direction the camera was facing. A unique camera/sensor identifier. The software that processed the image (iOS version, app name). Orientation. Colour profile. Pixel dimensions. The list goes on. If the photographer used Lightroom, Photoshop, or any pro editor, even more — keywords, copyright info, edits applied, raw conversion settings.
In 2012, anti-virus pioneer John McAfee was located by Vice reporters who simply opened an iPhone photo of him in EXIF Viewer — the GPS coordinates pointed to a guesthouse in Guatemala.
Where EXIF leaks happen — and how to find out
Which platforms strip Exif changes without notice, so the honest answer is: test it. Download a photo you shared through the platform and drop it here — if the Camera and GPS groups come back empty, the platform re-encoded the picture. Two behaviours are worth knowing because they catch people out. Messaging apps that re-encode a picture sent as a photo commonly leave the original file untouched when the same picture is sent as a document or file. And an email attachment or a cloud-drive link is the file itself — nothing in between rewrites it. Never assume; check.
Why GPS metadata matters more than the other fields
Most Exif fields are harmless. Aperture and ISO can't dox you. The make and model of your camera might link photos to other photos you've taken, but on its own it's not identifying. GPS is different — a single photo's latitude and longitude can pinpoint your home, your office, your child's school or your running route. The McAfee case above is the famous example; the everyday one is a photo of a new flat or a first day at school. When the GPS group appears, this viewer shows a warning and a map link so you can see exactly what the file gives away. Always strip GPS before public posting unless you specifically want the location to be known.
What this tool's "stripped JPG" actually does
The stripped download re-encodes your photo through a browser canvas. The Canvas API has no concept of EXIF, IPTC, or XMP — when it writes a JPEG, it writes the pixel data only. Every tag, every GPS coordinate, every timestamp is gone. The trade-off is slight: re-encoding is a lossy round-trip, so you lose a tiny amount of image quality. For social posting this is invisible; for archival or print work, strip EXIF using a dedicated tool that preserves the original encoding (exiftool from the command line).
The one marker this viewer used to walk past
Your JPEG states the quality it was saved at — not in EXIF, but in a header called the quantisation table (the DQT marker), which is the table of divisors the encoder used to throw away detail. The library that writes most of the world's JPEGs builds that table by scaling a fixed reference table published in the JPEG specification, and the scaling runs backwards: generate the table for every quality from 1 to 100, and find the one that reproduces the table in your file. When it matches exactly, that is the quality your photo was saved at, read off the file rather than estimated. The panel above reports it whenever it can be recovered.
This matters for the stripped copy. Re-encoding at a higher quality than the source is the intuitive choice and the wrong one: in our own test set of twelve photographs, re-encoding at a fixed quality 94 produced files 44% larger on average than re-encoding each at its own recovered quality, and no closer to the original — the detail the source quality discarded is already gone, and a finer grid merely records the remaining error in more bytes. So the stripped download is written at the quality your file was actually saved at. Where the file came from an encoder that uses its own tables — Apple's sips and several stock-photo services do — there is no exact match, nothing is invented, and the download falls back to quality 92. The panel says which of the two happened.
Where the GPS tag hides, what strips it, and the quality your JPEG admits to
Exif was first published by JEIDA in 1995 and is now CIPA standard DC-008. Version 3.1 was published on 30 January 2026, following 3.0 (2023), which added UTF-8 text tags — the "Exif is 1990s technology" line is out of date.
The best-known Exif GPS leak was self-inflicted: Vice's own December 2012 article on John McAfee carried an iPhone photo whose GPS tags placed him in Guatemala.
IPTC metadata predates Exif in the newsroom: the IPTC Information Interchange Model (1991) carried captions and credits, and the current IPTC Photo Metadata Standard (2024.1) is what agencies embed alongside Exif. This viewer reads it too.
Messaging apps that re-encode a picture sent as a "photo" commonly leave one sent as a "document" untouched — the same image sent two ways can arrive with and without its GPS. Test with the app you use.
A HEIC file is a container: one file can hold the primary image plus auxiliary images such as a depth map. An iPhone Live Photo's video is a separate .mov, not inside the HEIC. exifr reads the Exif block of the primary image.
The "Software" EXIF tag reveals the exact iOS or Android version that captured the photo — useful for forensic timing analysis.
XMP (Adobe, 2001; now ISO 16684-1:2019) carries xmpMM:DocumentID and InstanceID — GUIDs that let two exports be traced back to one source file even after the pixels differ.
MakerNote is a tag the Exif standard reserves for vendor-private data without defining its contents. Camera makers put anything there, usually in an undocumented binary layout — this viewer lists it as raw data rather than guessing at fields.
Lightroom writes its develop settings into XMP (the crs: namespace) — the current slider values, not a history — so an edited export can reveal exactly how it was processed.
C2PA Content Credentials (specification 1.0 in 2022, now at 2.x) add a cryptographically signed provenance manifest alongside Exif. This viewer does not parse C2PA manifests, so a signed photo shows only its Exif, IPTC and XMP here.
FAQ
-
No. exifr (the EXIF parser) runs entirely in your browser. The photo is read locally, parsed locally, and the stripped output is re-encoded by your browser's Canvas API. Your photo is never sent anywhere.
One honest caveat, because this page invites you to check: if you have accepted analytics cookies, dropping a photo does send a single small beacon to
/api/v1/tools/jpeg-detection. It contains one fact — whether the photo's original saved quality could be read from its compression header — and nothing else: no filename, no file size, no dimensions, no metadata, no pixels. We store it as a daily tally, not a record of your visit. It exists because we genuinely don't know how often that quality is readable on real photos, and guessing from our own image library would just measure our own encoder. If you declined analytics, or haven't answered the cookie banner, nothing is sent — open DevTools → Network and you'll see exactly that. -
Exif (1995, now CIPA DC-008 v3.1) is camera-side metadata: make, model, exposure, GPS. IPTC (the 1991 Information Interchange Model, now the IPTC Photo Metadata Standard) is editorial metadata: caption, headline, copyright. XMP (Adobe, 2001; ISO 16684-1:2019) is XML-based and used by editing software: develop settings, keywords, ratings. This tool reads all three.
-
GPS lat/long pinpoints the exact location where the photo was taken — to within a few metres. Anyone with a copy of the file can paste those coords into Google Maps and find your home, office, child's school, gym, etc. Always strip GPS before sharing photos publicly.
-
Large social networks re-encode uploads, which drops Exif as a side effect, and messaging apps commonly strip a "photo" but keep a "document". Email attachments and cloud-drive links carry the original file unchanged. None of this is guaranteed and it changes without notice — download what the platform serves and drop it here to know for certain.
-
Visually: no. The stripped file is decoded from JPEG → pixels → re-encoded to JPEG. The tool reads the quality your photo was originally saved at, from its quantisation table, and writes the copy at the same value — so the round-trip loss is minimal and the file doesn't balloon in size. Where that quality can't be read from the file, it falls back to 92. Orientation metadata is preserved by baking the rotation into the actual pixel data.
-
Reading works everywhere: exifr parses the HEIC container itself, so the metadata tables appear in any browser. The stripped-JPG download is different — it needs the browser to decode the HEIC onto a canvas, which Safari can do and Chromium browsers can only do where the operating system supplies an HEVC decoder. Where it cannot, the download fails with "Could not re-encode this image".
-
Not from this tool — canvas re-encoding strips everything. For selective field removal, use the command-line
exiftool:exiftool -gps:all= myphoto.jpg. Our Image EXIF Stripper uses the same all-or-nothing canvas approach, batched. -
Yes if the photo came from WhatsApp, Instagram, or a screenshot — those routes strip EXIF. PNG screenshots from iOS and macOS never have EXIF in the first place. Photos taken directly with a camera or phone, then transferred via cable or AirDrop, will have full EXIF intact.
-
Yes — but turn it off for the Camera app specifically (Settings → Privacy → Location Services → Camera = Never on iOS). The global toggle disables everything including maps and navigation. Per-app control is what you want for surgical privacy.
-
Videos use different metadata containers (QuickTime atoms in .mov/.mp4, Matroska tags in .mkv). exifr reads still-image formats only — JPEG, TIFF, PNG, HEIC/HEIF and AVIF — so a video dropped here reports no metadata. For video metadata stripping, use ffmpeg:
ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4.
Method & sources
How it computes
Parses the metadata a still image carries — the Exif/TIFF block (including the GPS IFD), IPTC and XMP — with the exifr 7.1.3 parser running in the page, and groups the tags into Camera, Exposure, Timestamps, GPS, Image and Rights. Separately reads the JPEG quantisation tables (the DQT marker, ITU-T T.81) and recovers the quality the file was saved at by inverting libjpeg's scaling of the Annex K reference tables, exact match only.
What this tool implements
- Exif as published by CIPA — DC-008-2026 (Exif 3.1, 30 January 2026) is current; the viewer reads the tags exifr exposes and lists MakerNote (vendor-private, undefined by the standard) as raw data rather than guessing at fields.
- JPEG quality is read from the file's own DQT marker (ITU-T T.81 §B.2.4.1), not estimated: the Annex K reference tables are scaled by libjpeg's quality formula (quality < 50 → 5000/q, else 200 − 2q; clamp to 255 or 32767 by table precision) and the scale that reproduces the stored table exactly is reported. No exact match → 'not recoverable', and the stripped copy falls back to quality 0.92.
- The stripped JPG is written at the source's recovered quality, because re-encoding at a higher quality inflates the file without recovering discarded detail — measured on twelve photographs: +44% average size at a fixed 0.94 versus each file's own quality.
- Canvas re-encoding is all-or-nothing: Exif, IPTC, XMP and GPS are all absent from a canvas.toBlob() export (HTML Living Standard §4.12.5); selective stripping is out of scope and the page says so.
- Reading works for every format exifr parses (JPEG, TIFF, PNG, HEIC/HEIF, AVIF); the stripped download additionally needs the browser to decode the image onto a canvas, which for HEIC depends on the operating system's HEVC decoder — the page names this limit instead of promising HEIC everywhere.
- Privacy claim is fact, not marketing: the file never leaves the device; if analytics consent has been granted, one beacon per photo reports only whether the JPEG quality was recoverable — no filename, size, pixels or tags — and nothing is sent without consent.
Sources
- Camera & Imaging Products Association (CIPA). CIPA DC-008-2026: Exchangeable image file format for digital still cameras: Exif Version 3.1 (published 30 January 2026); DC-010-2026 Exif metadata for XMP. https://www.cipa.jp/e/std/std-sec.html
- ITU-T Recommendation T.81 (1992) | ISO/IEC 10918-1. Digital compression and coding of continuous-tone still images — §B.2.4.1 quantization table specification (DQT) and Annex K typical quantization tables. https://www.w3.org/Graphics/JPEG/itu-t81.pdf
- ISO 16684-1:2019. Graphic technology — Extensible metadata platform (XMP) — Part 1: Data model, serialization and core properties. https://www.iso.org/standard/75163.html
- IPTC. IPTC Photo Metadata Standard 2024.1. https://www.iptc.org/std/photometadata/specification/IPTC-PhotoMe…
- WHATWG. HTML Living Standard — §4.12.5 The canvas element: drawImage() and toBlob(). https://html.spec.whatwg.org/multipage/canvas.html
- Kovarik M. exifr — fast and versatile JavaScript EXIF reading library, v7.1.3 (formats: .jpg, .tif, .png, .heic, .avif, .iiq; segments: TIFF/EXIF/GPS, XMP, ICC, IPTC). https://github.com/MikeKovarik/exifr
- Coalition for Content Provenance and Authenticity. C2PA Technical Specification, versions 1.0–2.4. https://spec.c2pa.org/specifications/specifications/2.1/index.html
- Vice. 'We Are with John McAfee Right Now, Suckers', 3 December 2012 — the article whose photo's Exif GPS tags located the subject in Guatemala. https://www.vice.com/en/article/we-are-with-john-mcafee-right-now…
What can make this go out of date
- The Exif tag dictionary is whatever the vendored exifr 7.1.3 knows; a tag introduced in a later Exif revision shows under its numeric id in the Other group until the parser is updated.
- Browser JPEG encoding — canvas.toBlob(quality) is assumed to map to libjpeg's quality scale (true for Chrome and Firefox); a browser switching encoders would silently degrade the 'same quality' promise. Nothing else on the page changes on a schedule.
Abridged — the full review record for this tool runs longer than the list above.
Pick up where you left off
Stored only in this browser — never sent to our servers.