Drop two versions of an image to see exactly what changed. Changed pixels are highlighted, boxes mark each changed area, and you get the percentage of pixels that differ. Switch to a difference map, a swipe slider or a fade to inspect the details.
0%pixels changed
0changed pixels
0changed areas
0%mean difference
0%max difference
Detection
Ignore color changes smaller than this. 0% = exact match.
Highlight view
Difference view
Advertisement
Advertisement
How to use the Image Diff Checker
Add image A and image B: drop, paste or choose the original on the left and the changed version on the right.
Read the result: the panel shows the % of pixels that differ and how many separate areas changed; boxes mark them on the image.
Set the tolerance: raise it to ignore compression noise in JPG screenshots, lower it to 0 to catch every single changed value.
Inspect: switch to Difference for a heat-style map, or Slider and Fade to flip between the two versions.
Download diff PNG to attach the highlighted result to a bug report or review.
How the comparison works
Both images are drawn onto canvases of the same size (image A's size, or a proportionally reduced size for very large images above about 16 megapixels). For every pixel position the tool computes the difference in each channel and keeps the largest one:
Δ = max(|RA − RB|, |GA − GB|, |BA − BB|, |αA − αB|), a value from 0 to 255.
A pixel is changed when Δ is greater than the tolerance (tolerance % × 255).
Mean difference = average Δ over all pixels ÷ 255 × 100; max difference = largest Δ ÷ 255 × 100.
Changed areas are found by grouping changed pixels into small grid cells and merging neighbouring cells, so a changed word or button counts as one area.
Which view to use
View
What you see
Good for
Highlight
Changed pixels in a bright color over a faded grayscale copy of A, with boxes
Spotting every change at a glance, bug reports
Difference
|A − B| per channel, amplified; black means identical
Subtle changes in color, compression artefacts, shifted edges
Slider
A on the left, B on the right of a draggable line
Checking alignment and layout shifts
Fade
B blended over A with adjustable opacity
Seeing movement, like the classic onion-skin view
Tips for accurate results
Compare lossless PNG files when possible. Every JPG save adds small changes that show up as noise.
Capture both screenshots at the same zoom level, window size and device pixel ratio; a 1 px shift makes every edge look changed.
If one image is a resized copy of the other, use Scale B to A; resampling also creates small differences, so raise the tolerance to about 10%.
Frequently asked questions
How is the percentage difference calculated?
Each pixel of image A is compared with the pixel at the same position in image B. A pixel counts as changed when the largest difference in its red, green, blue or alpha value is above the tolerance. The percentage is changed pixels ÷ total pixels × 100. The mean difference is the average of that largest channel difference over all pixels, expressed as a percentage of 255.
What tolerance should I use?
Use 0 for lossless PNG screenshots when you need to catch every change. For JPG files or screenshots that went through compression, 5 to 15% hides the noise while still finding real changes. Raise it further to find only strong changes, such as moved or replaced objects.
Can I compare images of different sizes?
Yes. Scale B to A resizes the second image to the first image's dimensions, which is right for the same picture exported at a different size. Align top-left keeps both at their original scale and compares the overlapping area, which suits screenshots where something was added at the bottom or right; uncovered areas count as changed.
Why do two identical-looking JPGs show differences?
JPEG compression changes pixel values slightly every time an image is saved, especially around edges and in smooth gradients. These differences are invisible to the eye but real. Increase the tolerance until only meaningful changes remain.
Is this useful for visual regression testing?
Yes. Compare a screenshot of a page before and after a code change to spot unintended layout or color changes. The changed-area boxes point at each region, and the diff PNG is easy to attach to a pull request or ticket.
Are my images uploaded?
No. Both images are decoded and compared with the Canvas API inside your browser. Nothing is sent to a server, so confidential screenshots stay on your device.