jpgtoolskit.org
JPG and photo utilities, in the browser
Say hi →

Compare Two JPGs

wipe slider · pixel diff · PSNR and changed-pixel counts · in-browser

Put two versions of an image side by side under a wipe slider, then measure the difference properly: how many pixels changed above a threshold you set, the largest single-channel delta, the PSNR in decibels, and a diff image with every changed pixel highlighted. Useful for judging what a compression setting actually cost, or for verifying that a tool that claimed to be lossless really was. Nothing is uploaded.

Drop two images here — A then B

The first two files in the list are compared · use the arrows to reorder

    no files
    Ready.

    How to compare two images

    1. Drop both files in. The first is A, the second is B — reorder with the arrows if they landed the wrong way round.
    2. Drag the wipe slider to eyeball the difference. This catches crops, colour shifts, and watermarks immediately.
    3. Click Compare for the numbers, plus a diff image with changed pixels highlighted and matching areas faded out.

    Reading the numbers

    Start with pixels different: a re-encode at a similar quality typically changes a large fraction of pixels by a tiny amount, so a high percentage with a small maximum delta means "re-compressed, not edited". The reverse — a small percentage with a large delta — means something specific was changed in one area, which is what an edit, a watermark, or a spot-removal looks like. PSNR summarises the overall drift, and infinite PSNR with zero changed pixels is the fingerprint of a genuinely lossless operation, like stripping metadata.

    A good test to run once

    Take a photo, run it through Remove EXIF, and compare the result to the original here. You should see infinite PSNR and zero pixels different, with the file a few kilobytes smaller — proof that the metadata went and the image did not change. Then do the same with any other "EXIF remover" you have used. Most of them re-encode, and the diff will show it.

    FAQ

    What is PSNR and what counts as good?

    Peak signal-to-noise ratio, in decibels — a single number for how far B has drifted from A. Above 40 dB the difference is essentially invisible; 30–40 dB is visible if you look closely at flat areas; below 30 dB is obvious. Infinity means the pixels are identical. It is a rough proxy for perceived quality, not a verdict: a small change in one important area can matter more than a diffuse change everywhere.

    What does the threshold do?

    It sets how big a per-channel difference has to be before a pixel counts as changed. Leave it at 8 to ignore the noise that JPEG re-encoding sprinkles everywhere and see only real differences; drop it to 0 for a strict byte-level comparison where any change at all is flagged.

    The two images are different sizes. Can I still compare them?

    Yes, but read the result carefully. Both are drawn onto a canvas the size of the larger one, so the area that only exists in one image counts as different. The note in the results table tells you when this has happened. For a meaningful comparison, resize one to match the other first.

    What is this actually useful for?

    Checking what a compression setting cost you before you commit to it. Confirming a "lossless" tool really was lossless — a strip-metadata step should give infinite PSNR and zero changed pixels. Spotting whether two near-identical files are actually the same image. And catching a watermark, a crop, or an edit that someone made and did not mention.

    Is anything uploaded?

    No. Both images are decoded and compared pixel by pixel in this page.

    Related tools