pngtoolskit.org
PNG and image utilities, in the browser
Say hi →

PNG Diff — Visually Compare Two PNGs

pixel-level diff · adjustable threshold · "% different" · downloadable · no upload

Drop exactly two PNGs (or JPGs / WebPs) — A first, then B. Drag the A ⟷ B slider to eyeball what moved, then click Diff to produce a third image: matching pixels go desaturated grey, changed pixels are painted in your highlight colour, with a "% different" stat. Useful for visual-regression testing, design-review comparisons, and "did anything change?" checks on screenshots.

Drop two images here (A and B)

First-dropped is A; second is B

    no files
    Ready.

    Picking the threshold

    Threshold is the per-channel difference (0–255) below which two pixels are treated as identical:

    Common workflows

    FAQ

    How do I find the difference between two screenshots?

    Drop the "before" image first, then the "after" — the tool greys out matching pixels and paints every change in your highlight colour, with a "% different" figure. Ideal for visual-regression checks and confirming a fix didn't move anything unexpectedly.

    Is there a slider / side-by-side view?

    Yes — once both images are dropped, a swipe slider appears so you can drag across and compare A against B directly. The downloadable diff (with the "% different" stat) is best for catching small or scattered changes; the slider is best for spotting what moved at a glance.

    What if A and B are different sizes?

    The diff canvas is sized to the larger of the two. Differences within the overlap region are highlighted; the non-overlapping margin is left blank. For meaningful diffs, resize both to the same dimensions first via Resize.

    Why does my JPG-vs-JPG diff have noise everywhere?

    JPG re-encoding introduces small per-pixel changes across the whole image. Bump the threshold to 20–30 to ignore re-encoding noise; or compare PNG-vs-PNG instead.

    "% different" — what does it count?

    The percentage of pixels where at least one channel differs by more than the threshold. A 1% diff is small but visible; 10%+ is a major visual change.

    Anti-aliased fonts move slightly between renders — how do I ignore that?

    Bump the threshold to 15–20. Sub-pixel rendering varies by GPU / OS, so even "identical" UIs aren't bit-identical.