Try a reproducible metadata check
Reproduce synthetic metadata checks and review two licensed camera-file reports, with source attribution, hashes and clearly separated original and derivative results.
The color-grid experiments below use synthetic CC0 samples, not camera photographs; their names, times and GPS 0,0 are invented. The separate public-source camera-file reports use attributed photographs under their own licenses. Neither section guarantees device compatibility or anonymity.
Controlled sample compatibility matrix No photo handy? Try the public-sample walkthrough E-M10 & Sony A7 IV: licensed samples and reports
The source stores 120 × 80 pixels with Orientation 6. A decoder honoring that tag displays 80 × 120. Check the corner colors as well as the dimensions; do not apply a second rotation.
CC0-1.0 · 2026-10-24 · exifr 7.1.3
Initializing the tool… Tool ready
Wait for the controls to become available before choosing or dropping files. If this takes too long, check your connection or script blocker and reload.
You can now select files or run checks. Your files are not selected or processed automatically.
Controlled sample compatibility matrix
12 public synthetic cases with hashes and reference readings. Run them in your browser to check reading, display, re-encoding and selective JPEG cleanup separately.
These are generated grids and deliberately invalid test inputs, not camera photographs. Reference metadata readings were checked in Node; browser display and outputs are measured only when you run the checks. Matching a reference can include an expected failure. It is not camera certification, privacy clearance or a cross-browser guarantee.
exifr 7.1.3 · 2026-10-24 · CC0-1.0
Not run in this browser
Scroll the table horizontally to view every column.
| Case / download | Reference reading | This browser: reading | Image display | Re-encoding | Selective JPEG |
|---|---|---|---|---|---|
JPEG: EXIF, GPS 0,0, Orientation 6baseline.jpg1635 B · JPEGSHA-256ddcde0a271cf267486d365354055c8f4b3974691bd99106bb1ddb8ae90091e3d | The reader returned fields 20 returned fields The reader returned fieldsArtist, DateTimeOriginal, ExposureTime, FNumber, GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, ISO, JFIFVersion, Make, Model, Orientation, ResolutionUnit, ThumbnailHeight, ThumbnailWidth, XResolution, YResolution, latitude, longitude | Not run in this browser | Not run in this browser | Not run in this browser | Not run in this browser |
Progressive JPEG: invented serial and creditprogressive.jpg1136 B · JPEGSHA-2563f76dc61b4aabe067f28ec05d7c80b78d3c2ce7bf6fcfb635fdbf8de6993fb4d | The reader returned fields 9 returned fields The reader returned fieldsArtist, DateTimeOriginal, JFIFVersion, ResolutionUnit, SerialNumber, ThumbnailHeight, ThumbnailWidth, XResolution, YResolution | Not run in this browser | Not run in this browser | Not run in this browser | Not run in this browser |
PNG: technical dimensionsplain.png270 B · PNGSHA-25647751fc9981a0de7db4304a482f821721363143b12ea89c397914e4f45ff5e8a | The reader returned fields 7 returned fields The reader returned fieldsBitDepth, ColorType, Compression, Filter, ImageHeight, ImageWidth, Interlace | Not run in this browser | Not run in this browser | Not run in this browser | Not scheduled |
WebP: reader format limitationplain.webp180 B · WEBPSHA-2561c4026d6c15ab1305cce2bbb7011314d7fd331253e64eab1f8eeaa3644f312d7 | This metadata reader does not support the detected format | Not run in this browser | Not run in this browser | Not run in this browser | Not scheduled |
JPEG: no returned metadata fieldsno-fields.jpg1267 B · JPEGSHA-25661aff5e7cd24329de50e36a3c5e6cededf47c7d5e3334eb93c6ac98e7de51a8e | Parsing completed without returned fields 0 returned fields | Not run in this browser | Not run in this browser | Not run in this browser | Not scheduled |
PNG bytes with a JPG filenamemislabeled.jpg270 B · PNGSHA-25647751fc9981a0de7db4304a482f821721363143b12ea89c397914e4f45ff5e8a | The reader returned fields 7 returned fields The reader returned fieldsBitDepth, ColorType, Compression, Filter, ImageHeight, ImageWidth, Interlace | Not run in this browser | Not run in this browser | Not run in this browser | Not scheduled |
Empty file (negative test)empty.jpg0 B · Not identifiedSHA-256e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 | The selected file is empty | Not run in this browser | Not run in this browser | Not scheduled | Not scheduled |
Incomplete JPEG (negative test)truncated.jpg180 B · JPEGSHA-256c893f8536a2e196b16b6a8661a46841358115fa4b5f9dbc7cb2ce72ccbcbe7b9 | The reader could not complete metadata parsing | Not run in this browser | Not run in this browser | Not scheduled | Not scheduled |
Non-image bytes (negative test)unrecognized.bin57 B · Not identifiedSHA-256e382d7f18a0c62f5f3d53eff7b67ce7686cd6da6324527cb642308b6466ac3ac | No supported image signature identified | Not run in this browser | Not run in this browser | Not scheduled | Not scheduled |
PNG: EXIF author and capture datemetadata.png444 B · PNGSHA-256fa01cf3799a4c67b07a79a1470676add74d6839dae2ad17429133d58cc5279db | The reader returned fields 11 returned fields The reader returned fieldsArtist, BitDepth, ColorType, Compression, DateTimeOriginal, Filter, ImageHeight, ImageWidth, Interlace, Make, Model | Not run in this browser | Not run in this browser | Not run in this browser | Not scheduled |
TIFF: readable metadata versus browser previewmetadata.tiff29072 B · TIFFSHA-25609344eb682a79b7fb376f135121f75aade37446c125d90733238b20de6dac275 | The reader returned fields 14 returned fields The reader returned fieldsArtist, BitsPerSample, Compression, ImageHeight, ImageWidth, Make, Model, ModifyDate, PhotometricInterpretation, PlanarConfiguration, RowsPerStrip, SamplesPerPixel, StripByteCounts, StripOffsets | Not run in this browser | Not run in this browser | Not scheduled | Not scheduled |
JPEG: EXIF GPS removal leaves XMP locationmixed-xmp.jpg2047 B · JPEGSHA-256e97307f7bd781b7329ba51daaa6a5c58894595b5141b87e4e158a84c3a79d980 | The reader returned fields 21 returned fields The reader returned fieldsArtist, DateTimeOriginal, ExposureTime, FNumber, GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, ISO, JFIFVersion, Make, Model, Orientation, ResolutionUnit, ThumbnailHeight, ThumbnailWidth, XResolution, YResolution, creator, latitude, longitude | Not run in this browser | Not run in this browser | Not run in this browser | Not run in this browser |
Checks run sequentially on public samples only; no private photo is needed or uploaded. JPEG/WebP re-encoding may change pixels and color; MIME is the actual browser output. Selective cleanup checks standard EXIF fields, not all metadata: the XMP example deliberately retains location fields. TIFF is read-only here, and browser display support can differ without implying file damage. WebP outputs can be generated while metadata verification remains unavailable. The downloaded report includes browser information; this checker does not upload it.
What happens when you run it
- Fetch the public sample and verify its SHA-256 against the manifest.
- Read the original with exifr, keeping the stored capture-time string.
- Decode and draw to canvas, then encode JPEG at quality 0.92 using the same function as the remover.
- Read the newly encoded file and show what this reader returns. Download it and verify independently.
Initializing the tool… Tool ready
Wait for the controls to become available before choosing or dropping files. If this takes too long, check your connection or script blocker and reload.
You can now select files or run checks. Your files are not selected or processed automatically.
This checks selected metadata fields using one reader. It does not inspect every possible segment or prove camera support. JPEG is re-encoded; pixels, file size and color rendering may change. Technical format or color-profile data can remain. Visible faces, signs and image dimensions are not hidden by metadata removal.
Use the tools on your own copy
Public-source camera files: two reproducible reports
Two licensed photographs record E-M10 and ILCE-7M4 in their metadata. We tested these exact files, not cameras in our possession. Editable metadata is not authentication or a whole-model compatibility guarantee.
Downloads are metadata-reduced, primary-image-only derivatives, NOT unchanged camera originals. GPS, serials, dates, MakerNotes, previews, XMP/IPTC, comments, unknown APP segments and trailing data were not copied. Selected technical EXIF and attribution were written; ICC and recognized Adobe decoder data were retained. Visible scene details remain.
Olympus OM-D E-M10
Checked on: 2026-10-28 · exifr 7.1.3 · 4608 × 3456 px
Photograph and credit: Em1019 5153714.jpg · tomasz przechlewski
Image license: CC BY 2.0
Source-file limits
The source returned 65 fields and readable GPS. Selective cleanup generated a copy, but the editor refused its complex/private structure. The derivative returned 28 fields; this does not establish editing support for original E-M10 files.
Source file: Node reference
- Returned fields
- 65
- Location fields returned
- Yes; values not republished
- Editor structure preflight
- Refused; no edit offered
- GPS / identifier cleanup probe
- Copy generated; coding bytes equal
Returned field names
ApplicationRecordVersion, Artist, Author, ColorSpace, ComponentsConfiguration, Contrast, Copyright, CreateDate, CustomRendered, DateTimeOriginal, DigitalZoomRatio, ExifImageHeight, ExifImageWidth, ExifVersion, ExposureCompensation, ExposureMode, ExposureProgram, ExposureTime, FNumber, FileSource, Flash, FlashpixVersion, FocalLength, GPSAltitude, GPSAltitudeRef, GPSDateStamp, GPSImgDirection, GPSImgDirectionRef, GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, GPSMapDatum, GPSTimeStamp, GPSVersionID, GainControl, ISO, ImageDescription, InteropIndex, InteropVersion, LensInfo, LensModel, LightSource, Make, MaxApertureValue, MeteringMode, Model, ModifyDate, Orientation, PrintIM, ResolutionUnit, Saturation, SceneCaptureType, SensitivityType, Sharpness, Software, SpecialInstructions, WhiteBalance, XResolution, YCbCrPositioning, YResolution, latitude, longitude, makerNote, userComment
Published derivative: Node reference
- Returned fields
- 28
- Location fields returned
- Not returned; not proof of absence
- Editor structure preflight
- Preflight accepted only; not an editing test
- GPS / identifier cleanup probe
- No matching EXIF fields; no copy
Returned field names
Artist, ColorSpace, Copyright, ExifImageHeight, ExifImageWidth, ExifVersion, ExposureCompensation, ExposureMode, ExposureProgram, ExposureTime, FNumber, Flash, FlashpixVersion, FocalLength, ISO, LensModel, LightSource, Make, MaxApertureValue, MeteringMode, Model, Orientation, ResolutionUnit, SceneCaptureType, Software, WhiteBalance, XResolution, YResolution
Selected technical values returned from the source file
| Field | Returned value |
|---|---|
Camera MakeMake | OLYMPUS IMAGING CORP. |
Camera ModelModel | E-M10 |
SoftwareSoftware | Version 1.3 |
OrientationOrientation | Horizontal (normal) |
Exposure TimeExposureTime | 0.01 |
F-Number (Aperture)FNumber | 3.5 |
ISO SensitivityISO | 200 |
Focal LengthFocalLength | 17 |
Lens ModelLensModel | LUMIX G VARIO 12-35/F2.8 |
Byte and independent pixel checks
Primary JPEG coding and all scan bytes are identical, excluding APP/COM and trailing data.
Pillow RGB pixels after EXIF orientation are identical. No ICC color conversion was performed; this is not an all-browser rendering guarantee.
Trailing bytes dropped from the derivative: 0 B
Source / derivative / primary coding SHA-256
ad9a5971aae8e936031ff3c362ecee16aab42332672646f8a5f19a168a651fbe68f58a939647fe50a407cac8050a1ff2d5c9fcdd23e5ede84b16de5c5dad741ff7921e28aaf2884544557749b9f369fb45bcd6d5fb4813cb6210e1a7727bca17
Sony A7 IV (ILCE-7M4)
Checked on: 2026-10-28 · exifr 7.1.3 · 7008 × 4672 px
Photograph and credit: Micro Electricity Controller1.jpg · Santhosh Notagar99
Image license: CC BY 4.0
Source-file limits
The source returned 59 fields, but independent JPEG source inspection was unavailable. Cleanup and editing were refused. After the primary JPEG are 311,602 bytes; publication dropped them without interpretation. The derivative returned 29 fields. Its simpler structure does NOT establish original-file support or decode a shutter count.
Source file: Node reference
- Returned fields
- 59
- Location fields returned
- Not returned; not proof of absence
- Editor structure preflight
- Refused; no edit offered
- GPS / identifier cleanup probe
- Unsupported structure; no copy
Returned field names
BrightnessValue, ColorSpace, ComponentsConfiguration, CompositeImage, CompressedBitsPerPixel, Contrast, CreateDate, CustomRendered, DateTimeOriginal, DigitalZoomRatio, DocumentID, ExifImageHeight, ExifImageWidth, ExifVersion, ExposureCompensation, ExposureMode, ExposureProgram, ExposureTime, FNumber, FileSource, Flash, FlashpixVersion, FocalLength, FocalLengthIn35mmFormat, ISO, InstanceID, InteropIndex, InteropVersion, LensInfo, LensModel, LightSource, Make, MaxApertureValue, MeteringMode, Model, ModifyDate, OffsetTime, OffsetTimeDigitized, OffsetTimeOriginal, Orientation, PrintIM, Rating, RecommendedExposureIndex, ResolutionUnit, Saturation, SceneCaptureType, SceneType, SensitivityType, Sharpness, Software, SubSecTime, SubSecTimeDigitized, SubSecTimeOriginal, WhiteBalance, XResolution, YCbCrPositioning, YResolution, makerNote, userComment
Published derivative: Node reference
- Returned fields
- 29
- Location fields returned
- Not returned; not proof of absence
- Editor structure preflight
- Preflight accepted only; not an editing test
- GPS / identifier cleanup probe
- No matching EXIF fields; no copy
Returned field names
Artist, ColorSpace, Copyright, ExifImageHeight, ExifImageWidth, ExifVersion, ExposureCompensation, ExposureMode, ExposureProgram, ExposureTime, FNumber, Flash, FlashpixVersion, FocalLength, FocalLengthIn35mmFormat, ISO, LensModel, LightSource, Make, MaxApertureValue, MeteringMode, Model, Orientation, ResolutionUnit, SceneCaptureType, Software, WhiteBalance, XResolution, YResolution
Selected technical values returned from the source file
| Field | Returned value |
|---|---|
Camera MakeMake | SONY |
Camera ModelModel | ILCE-7M4 |
SoftwareSoftware | ILCE-7M4 v6.00 |
OrientationOrientation | Horizontal (normal) |
Exposure TimeExposureTime | 0.01 |
F-Number (Aperture)FNumber | 4 |
ISO SensitivityISO | 640 |
Focal LengthFocalLength | 70 |
Lens ModelLensModel | FE 24-70mm F4 ZA OSS |
Byte and independent pixel checks
Primary JPEG coding and all scan bytes are identical, excluding APP/COM and trailing data.
Pillow RGB pixels after EXIF orientation are identical. No ICC color conversion was performed; this is not an all-browser rendering guarantee.
Trailing bytes dropped from the derivative: 311,602 B
Source / derivative / primary coding SHA-256
03a409eb2b950b1fc308f5211635a037e637538910b6f5e8afd809616f608131b34d5e13bbb4ace66018da99bd1a36fb73185955abc5805aa59bf92f3632a27d40f4c0d7591966747c69fdfd209b7e6715245ea4b22ec2f1f04bde2a9d1e9139
Recorded browser reads
Four actual JSON downloads from the local in-app browser were independently compared with the pinned-file reference. Browser version was not recorded. This is a completed observation, not a live test of your browser.
Checked on: 2026-10-28
- Olympus OM-D E-M10 · Source file: 65 · Matches the reference read
- Olympus OM-D E-M10 · Published derivative: 28 · Matches the reference read
- Sony A7 IV (ILCE-7M4) · Source file: 59 · Matches the reference read
- Sony A7 IV (ILCE-7M4) · Published derivative: 29 · Matches the reference read
Reproduce and interpret the result
- Review the source page, author and image license. Compare the exact SHA-256; a thumbnail is a different file.
- Download the labelled derivative, select it in the viewer, and inspect Model, exposure, diagnostics and source coverage. Keep original and derivative results separate.
- Use the original-file report for reading, editor refusal and cleanup outcomes. Rebuilt EXIF in a derivative does not prove original compatibility. MakerNote bytes and exposure time do not establish lifetime shutter count.
Repository commands (Node and Python/Pillow; only the two pinned public sources are fetched):
node scripts/fetch-camera-sources.mjs
node scripts/generate-camera-reports.mjs 2026-10-28
node scripts/test-camera-reports.mjs Reports publish selected technical values and field names, not source coordinates, serial values, dates or raw MakerNotes. Each photograph retains its own license and attribution; no creator endorsement is implied. No RAW, private-device or sharing-platform test is claimed.
How we check our guides
Guides distinguish documented behavior, synthetic tests and real-device tests. We do not treat sample values as camera measurements. Corrections include a revision date; report an error with the page URL and a non-sensitive example. Site maintenance is credited to ExifCheck, without implying independent security certification.
Report an issueImplementation references: exifr / canvas.toBlob