Skip to content
checkaifree

Practical guide

Compare image metadata before and after a local export

A copied filename or a similar-looking picture does not tell you which metadata survived. Compare the two files you actually hold, keep each reading's warnings, and use a documented export when you want a reproducible result.

18 October 2026 · Check AI Free

Choose a real pair with a known transformation

For an authorized photographic reference, use P01 from the linked Commons page: Thomas Bresson's Aeshna cyanea photograph, CC BY 2.0. Download the original and retain the attribution and license information. The current source reading is 2169 × 1329 pixels with 76 metadata records.

Our comparison copy was made locally with Pillow 12.3.0: apply EXIF orientation to the pixels, convert to RGB, fit within 1536 × 1536 using LANCZOS, then save JPEG at quality 85, subsampling 2, without passing metadata. P01 becomes 1536 × 941 with zero supported metadata records. The encoder settings deliberately omit metadata. This is not an Instagram upload or a claim about any platform's current behavior.

Reproduce the documented export if needed

If you already have an editor export you want to test, use that file and record your own settings instead. To repeat our reference, run this local Python code in an environment with Pillow 12.3.0. Work on a copy and give the output a different filename. This step changes the encoded image too; the metadata comparer does not claim pixel equality.

from PIL import Image, ImageOps

with Image.open("original.jpg") as source:
    copy = ImageOps.exif_transpose(source).convert("RGB")
    copy.thumbnail((1536, 1536), Image.Resampling.LANCZOS)
    copy.save("local-export.jpg", "JPEG", quality=85,
              subsampling=2, optimize=False, progressive=False)

Compare the actual original and output

  1. Step 1

    Select the two files explicitly

    In the metadata comparer, choose the original under Before / original file and the local export under After / second file. Click Compare metadata. The two input labels keep their roles clear even if the filenames look similar.

    Open the metadata comparer

  2. Step 2

    Read both reading panels

    Check format, dimensions, status, coverage and warnings for each side. For P01's documented export, Before is read and After is empty. Missing fields in a partial reading need caution because the reader may not have obtained every original value.

  3. Step 3

    Filter the difference by meaning

    Use Show changes to select missing, retained, changed or added. P01's documented metadata-free export has 70 missing field IDs representing all 76 original records; duplicates remain in the per-field details. A different export can retain some values or add new ones; inspect its actual table rather than copying our result.

  4. Step 4

    Preview and download the difference

    Click Preview JSON or Preview CSV and read the report before Download JSON or Download CSV. Source containers, offsets, duplicates and each side's warnings remain in the report. Input filenames are omitted. Stored private values are still included, so review before sharing.

How duplicates and field ordering are handled

A stable field ID groups occurrences of the same field. The comparison treats its complete typed values as a multiset: two Author values in a different order are retained, while replacing one value or removing a duplicate is a change. Source offsets and display rounding alone do not change equality.

Raw XMP packet text is compared literally, so formatting inside a packet can produce a change even if selected displayed properties look the same. Missing, changed and retained describe metadata records. They do not tell you whether the picture was AI-generated, whether it has been visually edited, or whether its decoded pixels match.

Use the built-in pair when you do not have the photo

Click Try original / cleaned sample. This uses the self-authored export PNG with two Author occurrences and one Unicode Description, compared with a metadata-free PNG. Expect two missing field IDs, PNG:Author and PNG:Description, representing three original records. It is a parser demonstration, not another independent photographic sample.

If one file is corrupt or unsupported, the tool provides a failure instead of declaring all its fields missing. If both valid files are empty, the result says no supported metadata fields were found; it does not say that the files or their pixels are identical.

Sources and reproducible inputs

Continue with your file