EXIF Viewer
Upload a photo to see its embedded camera and metadata info.
How to Use the EXIF Viewer
Upload a JPEG photo, straight from a camera or phone works best, and any embedded EXIF metadata is read directly from the file and displayed below, camera make and model, exposure settings, the date the photo was taken, and GPS coordinates if the photo was geotagged. Nothing is uploaded anywhere, the file is parsed entirely in your browser.
How EXIF Data Is Actually Stored Inside a JPEG
A JPEG file always opens with a 2-byte Start of Image marker (FF D8), and metadata rides along in a segment called APP1, marked by the two bytes FF E1, that this tool specifically looks for right after the start. Inside that segment sits a 6-byte ASCII signature spelling "Exif" followed by two null bytes, and after that signature begins a complete, self-contained TIFF structure, a byte-order mark (either "II" for Intel little-endian or "MM" for Motorola big-endian), a fixed magic number, and an offset pointing to the first Image File Directory, IFD0. IFD0 holds camera-level tags like Make, Model, Orientation, and DateTime, and often contains a pointer tag (ExifOffset) to a second directory, the Exif SubIFD, which holds the shooting-specific tags: exposure time, aperture, ISO, and focal length. A third optional pointer (GPSInfo) leads to a GPS IFD holding location coordinates if the device geotagged the photo.
Worked Example: Reading a Camera's Actual Bytes
To confirm this tool's parser reads real camera data correctly, a synthetic JPEG was hand-built byte-by-byte in the same TIFF/EXIF structure a real Canon photo would use, then run through the exact parsing logic this page runs. IFD0 correctly yielded Make "Canon", Model "EOS 90D", Orientation 1 (normal, not rotated), and DateTime "2026:08:06 10:30:00", every ASCII string tag decoded to the exact text encoded into the file. Following the ExifOffset pointer into the SubIFD then correctly extracted ExposureTime as a RATIONAL of 1 over 200, FNumber as 28 over 10, ISOSpeedRatings as a plain SHORT value of 400, and FocalLength as 50 over 1, exactly matching the values written into the synthetic file's binary structure with no data corruption or off-by-one offset errors anywhere in the chain.
Why Exposure Time and Aperture Use Two-Number Fractions
EXIF stores several numeric fields, including ExposureTime, FNumber, and FocalLength, using a data type called RATIONAL: literally two 32-bit unsigned integers stored back to back, a numerator and a denominator, rather than one floating-point number. This matches how photographers naturally think about these values, exposure time as a fraction of a second like 1/200, not the decimal 0.005. The parser divides numerator by denominator to get a usable number internally (1 divided by 200 equals exactly 0.005 in the worked example above), and this tool's display formatting then converts that decimal back into the familiar "1/200 sec" fraction whenever the value is under one second, matching how camera settings actually get communicated. Aperture works the same way: 28/10 divides to 2.8, displayed as the standard photography notation f/2.8, and focal length divides 50/1 down to a clean 50mm for a fixed-length lens, or would divide something like 550/10 to 55mm for a zoom lens parked partway through its range.
Why So Many Photos Show "No EXIF Metadata Found"
There are two very different reasons a photo can come up empty, and they are not the same situation. A screenshot genuinely never had EXIF data to begin with, since no camera sensor, lens, or exposure setting was ever involved in creating it, the operating system just captured your screen's pixels directly, so there is nothing here to strip. A photo downloaded from a messaging app or social media platform is different: it likely did have full EXIF data the moment it was captured, but the platform's upload pipeline deliberately removed it, largely to protect users from unintentionally broadcasting their exact GPS location to anyone who views a public post, and partly to shave a few kilobytes off the file. A JPEG copied directly off a camera's memory card or a phone's original camera roll, before it passes through any sharing platform, is by far the most likely to still have its EXIF data fully intact.
Why This Runs Entirely in Your Browser
EXIF metadata, especially GPS coordinates, is genuinely sensitive: a geotagged photo can reveal the exact building or street a picture was taken at, sometimes down to a few meters of precision. This tool reads the uploaded file using the browser's File and FileReader APIs and parses the binary TIFF structure with nothing but JavaScript's built-in DataView, entirely on your own device, no network request carries the file or its metadata anywhere. That also means there is no server-side log, cache, or copy of anything you upload here, once you navigate away or choose a different image, the previous file and everything read from it is simply gone.
Frequently Asked Questions
Why does my photo show no EXIF data at all?
Many platforms and apps strip EXIF data automatically before saving or sharing a photo, most messaging apps, some social media uploads, and screenshots (which have no camera metadata to begin with) commonly have none. A JPEG straight off a camera or phone's camera roll is the most likely to still have it intact.
Is my photo or its location data uploaded anywhere?
No, the file is read and parsed entirely in your browser using the File API, nothing is sent to a server. This matters especially for GPS data, since EXIF location coordinates can reveal exactly where a photo was taken.
Where exactly is EXIF data stored inside a JPEG file?
A JPEG starts with a 2-byte Start of Image marker, and metadata lives in an APP1 segment right after it, identified by the marker bytes FF E1. Inside that segment sits a 6-byte ASCII header spelling Exif followed by two null bytes, then a self-contained TIFF structure: a byte-order mark, a magic number, and an offset pointing to the first Image File Directory (IFD0), which holds camera-level tags like Make and Model. IFD0 in turn often contains a pointer tag to a second directory, the Exif SubIFD, holding shooting-specific tags like exposure time and aperture, and sometimes a third pointer to a GPS IFD holding location coordinates.
Why does a fractional value like exposure time show as "1/200 sec"?
EXIF stores certain numeric tags, including exposure time, aperture, and focal length, using a RATIONAL data type, which is literally two 32-bit integers: a numerator and a denominator, rather than a single decimal number. A 1/200 second exposure is stored as numerator 1 and denominator 200, and the parser divides them (1 / 200 = 0.005) to get a usable number, then this tool's display formatting reverses that back into the familiar photography fraction, showing 1/200 sec instead of a decimal like 0.005, since that is how exposure times are conventionally read.
What do the Aperture and Focal Length numbers actually mean?
Aperture (displayed as f/2.8, f/4, and so on) describes how wide the lens opening was, stored as a RATIONAL like 28/10, which the parser divides to 2.8; a smaller f-number means a wider opening and more light reaching the sensor. Focal Length, shown in millimeters, describes the lens's zoom or field of view at the moment of capture, stored the same RATIONAL way, for example 50/1 dividing cleanly to 50mm for a fixed 50mm lens, or a fraction like 550/10 for a zoom lens parked at 55mm.
Why do screenshots and downloaded social media images never have EXIF data?
A screenshot is a fresh image the operating system draws from your screen's pixels, there was never a camera sensor or lens involved, so there is no exposure, aperture, or GPS data to embed in the first place, it is not a case of data being removed. Photos downloaded from social media and messaging apps are different, the original file usually did have EXIF data when the photographer captured it, but most of these platforms deliberately strip metadata during upload processing, largely for user privacy (so GPS coordinates are not broadcast to everyone who views a public post) and to shrink file size.
Is the EXIF parsing here as reliable as dedicated desktop software?
This tool reads the same underlying TIFF/EXIF binary structure that professional tools like ExifTool or a camera manufacturer's own software read, following the JPEG APP1 segment to the Exif header, then the IFD0, SubIFD, and GPS IFD chain described above. It focuses on the most commonly needed tags, camera make/model, exposure settings, date, and GPS, rather than the full several-hundred-tag EXIF specification some professional tools expose, so highly specialized or manufacturer-proprietary tags may not appear here even when a dedicated tool would show them.