EXIF Viewer

Share:

See every EXIF tag in your photo — camera, lens, GPS, timestamps. Download a clean stripped copy.

RT-IMG-008 · Image & File

EXIF Viewer

🔒 Stays in your browser. Photos and metadata never leave your device — EXIF parsing happens locally via the self-hosted exifr library. If you've accepted analytics cookies, the tool reports one anonymous number per photo: whether its saved quality could be read. No filename, no image data, nothing that identifies you or the file. Decline analytics and it sends nothing at all.
Advertisement
After results · AD-W1 Responsive · Post-tool — peak engagement

How to use the EXIF viewer

Drop a photo

Drag any JPG, HEIC, or TIFF onto the dropzone, or click to pick from your file picker. The photo never leaves your browser — exifr parses the metadata locally.

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.

Advertisement
After how-to · AD-W2 Responsive

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) is a standard defined in 1995 that 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 unintended consequence is significant: by default, modern smartphones also embed the exact GPS coordinates where the photo was taken, the unique serial number of the camera, the software version of the OS, and sometimes even the user's name from device settings. Most people have no idea this is happening.

What's actually inside EXIF

A typical iPhone photo contains 50-100 distinct EXIF 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 where it's stripped

Major social platforms strip EXIF on upload: Facebook, Instagram, Twitter/X, LinkedIn, Reddit. WhatsApp strips it when you share as a "photo" but preserves it when you share as a "document". Telegram strips it on photo uploads, preserves on document send. iMessage preserves EXIF including GPS — full metadata travels with the image. Email attachments preserve everything — including the BCC list if you send to multiple people and they reply-all (different attack, but same family). Most blogging platforms (WordPress, Ghost, Substack) preserve EXIF by default unless you change the setting. Direct file shares via Dropbox, Google Drive, or any cloud-link preserve EXIF — the file is unchanged.

The APAC EXIF-privacy landscape

EXIF privacy awareness varies sharply across APAC. South Korea has the strongest cultural awareness — molka (illicit camera) controversies have made the average user wary of any metadata that might reveal location. Japan follows close behind, with most camera apps offering one-tap EXIF stripping. Singapore, Hong Kong, Australia have professional photography communities who routinely strip metadata for client work. India, Indonesia, Philippines, Thailand, Vietnam have rapidly growing creator economies on TikTok, YouTube, Instagram — most creators are unaware that EXIF survives on direct messaging and cloud sharing. China has its own metadata layer: WeChat strips EXIF on transfers between users but adds its own provenance tags (which platform, which account posted first); the LBS-driven culture (location-based services in Meituan, Dianping) means many Chinese users actively want some location tags preserved for tagging restaurants and venues. Malaysia sits in the middle — heavy WhatsApp use means metadata gets stripped on default photo shares, but the "as document" shortcut quietly preserves everything. Universal rule: never assume your platform strips EXIF — 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 lat/long can pinpoint your home, your office, your school, your child's school, your favourite running route. Real-estate scammers regularly use EXIF GPS data to confirm a property listing photo was actually taken at the address claimed (or, conversely, to spot fraudulent listings). Dating-app users have been doxxed via GPS in profile pics. Domestic-abuse victims have been tracked by an abuser they thought they'd escaped, because they posted a photo to social media without realising the platform preserved the location stamp. 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: a quality-80 photo re-encoded at 94 comes back around 56% larger and no closer to the original, because the detail quality 80 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.

10 Things You Didn't Know About EXIF

01

The EXIF standard was created in 1995 by the Japan Electronic Industries Development Association — at version 2.32 today, it's barely changed since 2010.

02

The first widely-publicised EXIF GPS dox happened in 2012 when Vice reporters located John McAfee in Guatemala via a photo's lat/long coordinates.

03

Facebook strips EXIF from photo uploads — but preserves a "uri-fbid" tracking parameter that links the photo to your account internally.

04

WhatsApp's "share as document" workaround preserves all EXIF — a common privacy slip-up for users who think they're sending a clean photo.

05

iOS HEIC photos can contain multiple sub-images in a single file: burst frames, depth maps, Live Photo video, all wrapped together with EXIF for each.

06

The "Software" EXIF tag reveals the exact iOS or Android version that captured the photo — useful for forensic timing analysis.

07

Lightroom Classic embeds your full Adobe account email into XMP metadata under xmp:CreatorTool unless you specifically opt out.

08

Apple iPhones since iOS 10 add a "MakerNote" EXIF block with a unique camera-sensor identifier — different from the device serial number, but still trackable.

09

The Adobe XMP metadata standard (2001) is XML-based and includes Lightroom edit history — every slider movement you made on the photo, embedded forever.

10

C2PA Content Credentials (2024+) is a cryptographically-signed metadata layer that proves a photo came from a real camera and wasn't AI-generated — backed by Adobe, Microsoft, BBC, Nikon.

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) is camera-side metadata: make, model, exposure, GPS. IPTC (1979, photojournalism standard) is editorial metadata: caption, headline, copyright. XMP (Adobe, 2001) is XML-based and used by editing software: Lightroom history, 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.

  • Mostly yes: Facebook, Instagram, Twitter/X, LinkedIn, Reddit, TikTok all strip EXIF on photo upload. WhatsApp/Telegram strip on photo share but PRESERVE on document share. iMessage preserves everything. Email attachments preserve. Direct file links (Dropbox, Drive) preserve. Check before assuming.

  • 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.

  • Yes — exifr parses HEIC EXIF fine in browsers that can decode HEIC (Safari on iOS/macOS, Chrome on macOS, Edge on Windows 11). The stripped-output step requires the browser to render the HEIC into a canvas, which also needs HEIC decode support.

  • Not from this tool — canvas re-encoding strips everything. For selective field removal, use the command-line exiftool: exiftool -gps:all= myphoto.jpg. Selective stripping in-browser is on the roadmap.

  • 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 can read some video metadata but this tool currently focuses on photos. For video metadata stripping, use ffmpeg: ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4.

Related News

You may be interested in these recent stories from our newsroom.

View all news →

Method & sources

What this tool implements

  • Re-encode quality is READ from the source, not fixed: libjpeg derives the quantisation table from the quality setting by scaling the JPEG Annex K standard table, and that scaling inverts by search over 1..100
  • Recovery is exact or it does not happen — only a residual of 0 is acted on. A nearest match always exists, so acting on a non-zero residual would re-encode at a fabricated number
  • Encoders that do not scale the Annex K table (Apple sips, several stock-photo pipelines) fall back to 0.92 — identical to the pre-fix behaviour, so unreadable sources are never made worse
  • DQT coefficients are stored in ZIG-ZAG scan order, not row-major; comparing row-major yields a quality 1-2 steps off with a large residual, which masquerades as "not libjpeg"
  • libjpeg force_baseline sets the clamp ceiling (255 vs 32767) and matters below ~q35: GD and Pillow clamp, libjpeg-turbo cjpeg does not and writes 16-bit DQTs — the ceiling is taken from the parsed precision
  • Auto-matching applies to JPEG output only: a JPEG quality number does not carry over to WebP's encoder, and PNG ignores quality entirely

Sources

  • ITU-T T.81 (JPEG) Annex K — standard luminance/chrominance quantisation tables

What can make this go out of date

  • Browser JPEG encoder behaviour — canvas toBlob(quality) is assumed to map to libjpeg's quality scale (true for Chrome/Firefox on libjpeg-turbo). A browser switching encoders degrades this silently.
  • JPEG Annex K standard quantisation tables — frozen since the 1992 specification; listed because the recovery depends on them, not because they are expected to move.

Abridged — the full review record for this tool runs longer than the list above.

Advertisement
Pre-footer · AD-W3 728 × 90