Skip to content

Everything runs in your browser. We never see your files. How we prove it →

Image Diff Tools

Pixel-level comparison for two pictures, with four ways to read the result and no upload to get there.

About image diff tools

Visual change is the kind hardest to describe and easiest to recognise once something points at it. A control that shifted four pixels, a tint that drifted half a shade, a glyph that renders differently after a font update: each of these survives a careful stare at two windows and falls out immediately from a difference map.

Image Diff is the tool in this category. Both files are decoded on your device and compared through a perceptual metric rather than a byte test, because two exports of one design routinely differ along every curved edge without differing to any human eye. Four readings of the same result are available — a difference map with a changed-pixel count, a draggable slider, an adjustable overlay, and an onion-skin fade. PNG, JPEG, WebP, GIF and AVIF all decode.

Screenshot Compare is planned as a companion tuned for full-page captures, with tolerance for scroll offsets and regions that legitimately change. It is not built and is listed here without a link.

Choosing a comparison mode

Since Image Diff is the whole category for now, the useful decision is which view answers your question. The difference map is for counting and for evidence — it gives a number you can paste into a ticket. The slider is for alignment work, where dragging a hard edge across both frames reveals a baseline that moved. Overlay at partial opacity suits spatial drift, such as a logo that slipped during imposition. Onion-skin, which fades between the pair on a timer, is the quickest way to notice that something moved rather than merely recoloured.

Two settings are worth learning before you conclude anything: the colour-distance threshold, which decides how different two pixels must be to count, and the anti-aliasing tolerance, which discounts pixels sitting on a smoothed edge. If a comparison reports thousands of changes and you can see none, raise both. And when the thing that changed is wording rather than layout, no pixel tool is the right instrument — pull the text out and use Text Compare.

Pictures that never leave your device

Images carry more than they appear to. A screenshot of a dashboard contains real account names; a photograph of a document contains everything the document says; medical and identity images are sensitive by definition, and the whole point of comparing two of them is often that one is more recent. Decoding happens through a canvas element in your own tab, the pixel arrays are compared in the same place, and embedded metadata is never read out and sent anywhere. Open your browser's network tab while you use these tools — you'll see no request carries your content. Verification steps are here.

Frequently asked questions

Two exports of the same file flag thousands of changed pixels. Why?

Almost always edge smoothing or lossy compression. Re-encoding a JPEG nudges values across the whole frame without altering anything visible, and two renderers resolve curves differently. Raise the threshold to ignore tiny perceptual distances and increase anti-aliasing tolerance to discount edge pixels; if the count collapses, the pair matches to a human eye.

What if the two images are different sizes?

The overlapping region is compared and the size mismatch is reported next to the result. Nothing is stretched to force agreement, because resampling touches every pixel and buries the genuine change under interpolation. For a like-for-like reading, re-export both at matching dimensions first.

Is there a size limit?

Memory is the constraint rather than a fixed cap. Two decoded frames plus a difference buffer each need roughly width times height times four bytes, so a pair of 8000-pixel-wide photographs asks for several hundred megabytes before anything is drawn. Phones run out sooner than laptops. Large pairs still work, just more slowly.

Can I send someone a link to the comparison?

Not as a link. Sharing elsewhere on this site works by packing text into the URL fragment, and images are files that stay on your machine, so there is nothing to encode. Save the difference map off the canvas or screenshot the view that makes your point.