About this tool
Image Difference Checker compares two pictures pixel by pixel and paints the result back onto the image as a colour heatmap, so the places where the two files differ light up in the same coordinates as the original. A bright, warm region means a large difference; a cool or faint region means a small one; and untouched areas carry no overlay at all.
The tool also reports how many pixels changed and an approximate percentage of the image that was altered, giving you both a map and a scale for the change. It accepts two JPG, PNG or WebP files, up to about 25 MB each, and performs the entire comparison locally in your browser with no upload.
The standard use is visual verification. A designer diffing two versions of a mock-up. A developer detecting that a CSS change moved a layout region. A content editor checking whether a watermark or a logo edit touched more of an image than it should. The heatmap answers the question the slider cannot: where, exactly, do these two pictures stop being identical?
Technically, both images are drawn onto canvases at a matching resolution and every pixel pair is compared by Euclidean distance in RGB space. That distance is mapped to a heat scale, from cool blues for tiny deviations to yellows and reds for large ones, and composited over the first image so the result keeps its context.
Because the comparison is pixel-exact and threshold-sensitive, it is strict. Lossy compression, colour profile shifts and even a subtle brightness adjustment change almost every pixel by a small amount, so two images that look identical to a person can still produce a visible heatmap. That is a feature for QC work and a caveat to remember when your "identical" pair comes back noisy.
All processing happens in memory on your device. The files are decoded, diffed and rendered, then discarded when you close or reload the tab; your originals are never modified, and nothing is transmitted during the review.
Because the result is a lightweight overlay rather than a new image file, you can save or screenshot the composite and attach it to a ticket, a review comment or a change request. For teams working across time zones, that single annotated frame communicates exactly which areas changed and how strongly, removing the need for a lengthy written description of every pixel-level alteration.
How to use Image Difference Checker
-
Load both images into the tool (max two files, up to 25 MB each).
-
Review the heatmap: bright regions indicate areas of greatest difference.
-
Read the changed-pixel count and approximate percentage to understand the scale of the change.
What this tool does
-
Pixel-level diff.
-
Difference heatmap overlay.
-
Percentage changed statistic.
Specifications
| Input formats | JPG, PNG, WebP |
|---|---|
| Processing | Local browser (Canvas API) |
| Uploads | None — files stay on your device |
| Max file size | 25 MB per file |
| Original file | Never modified |
| Supported formats | JPG, PNG, WebP |
| Max files | 2 |
| Output | Heatmap, changed-pixel count, approximate difference percentage |
In-depth Guide
How the heatmap is built
The comparison works on raw pixel data. The two files are drawn onto separate off-screen canvases, and the tool walks both buffers in lockstep, computing the Euclidean distance between the red, green and blue values of each corresponding pixel pair. A distance of zero means the pixels match exactly; a distance near the theoretical maximum means they are opposites.
That distance is then painted as a colour. Large distances map through the warm end of the scale and small ones through the cool end, and identical pixels are left transparent so the underlying image shows through. The result is a single composite view where the original picture acts as the map and the overlay acts as the legend.
- Distance is measured in RGB space, matching dark-versus-bright and hue shifts alike.
- Identical pixels stay uncoloured, so clean areas do not compete with changed ones.
- The overlay is composited over the first image for spatial context.
- Large differences are always detectable even when they occupy few pixels.
Reading the colour scale
The heat colour encodes magnitude, and reading it correctly turns the overlay into actionable intel. A thin red band across a navigation bar is a strong, localised change; a wide blue haze across the whole frame is a small global shift, like a tiny brightness adjustment that touched everything.
Keep the scale in context: a large red region at the bottom of the frame might just be one element that moved, while a diffuse cool wash over the entire image suggests a global filter rather than a structural edit.
| Colour | Meaning | Typical cause |
|---|---|---|
| Blue / green | Small pixel distance | Slight brightness drift, subtle filter, gentle re-encode |
| Yellow / orange | Medium distance | Noticeable colour or tonal change in that region |
| Red | Large distance | Moved elements, added content, strong colour shift |
| No overlay | Identical pixels | Untouched areas of the frame |
When pixel-level diffing earns its keep
Pixel-exact diffing is the backbone of visual regression checking: verifying that a change to code, a template or a design file did not accidentally alter regions it should have. A heatmap makes unintended changes visible in seconds, and its spatial output can be dropped straight into an issue tracker to show exactly where a regression lives.
It is equally useful for content integrity work. Checking that a watermarked download only differs in the watermark area, or that a claimed retouch actually stayed local, are both questions the heatmap answers at a glance. The visual output is usually more persuasive than a percentage for these conversations.
- Visual regression checks after CSS, layout or template changes.
- Confirming that a watermark or logo edit touched only its own region.
- Spotting region-specific damage from aggressive compression.
- Verifying that a retouch changed the expected area and nothing else.
Strict comparison and the lossy trap
The tool counts any pixel whose RGB distance exceeds zero as changed, which makes it far more sensitive than human vision. A JPEG re-encoded at quality 90 can show a diffuse heatmap over nearly the whole frame even though both versions look identical on screen, because lossy compression perturbs almost every pixel by one or two units.
That trap has a simple escape: read the magnitude, not just the presence. Diffuse cool washes from re-encoding are usually cosmetic, while concentrated warm regions indicate genuine edits. If you need a verdict free of this sensitivity, the Pixel Difference Checker gives you exact percentages, and for a human-scale score the Similarity Checker is the practical choice.
Choosing between the four comparison tools
The kit's comparison tools sit at four different points between "see" and "measure". Image Compare is entirely visual, Image Difference Checker is spatial and semi-quantitative, Pixel Difference Checker is purely numeric, and Image Similarity Checker collapses everything into one percentage. Knowing which one each question needs saves a lot of re-running.
A quick rule: use the heatmap when you need to know where, use the pixel tool when you need to know exactly how much, and use the similarity score when you only need to decide "close enough?".
| Tool | Delivers | Use it when |
|---|---|---|
| Image Compare | Interactive slider | You want to see the difference with your own eyes |
| Image Difference Checker | Heatmap + changed-pixel stats | You need to localise where things changed |
| Pixel Difference Checker | Exact percentage + per-channel R/G/B | You need a precise, recordable number |
| Image Similarity Checker | Single similarity percentage | You only need a pass/fail closeness check |
A practical visual-regression workflow
A repeatable workflow beats an ad-hoc diff every time. Generate a baseline export of the reference state, keep it alongside the working copy, and diff whenever you make a change. Store the heatmap output with the change request so reviewers can verify scope at a glance without re-running anything.
Use consistent sources and settings for both sides, and record the pixel-change count alongside the heatmap. Over time, the drift in those counts becomes a health metric for your pipeline: sudden jumps in changed pixels correlate with unintended, wide-scope edits.
- Keep a fixed baseline export for regression reference.
- Diff after each change and archive the heatmap with the change request.
- Record the approximate percentage so scope changes are trackable over time.
- Re-review visually but decide on the numbers, especially for production pipelines.
How it works
Pixel-level comparison
Both images are drawn onto Canvas at the same resolution. The tool iterates over every pixel pair, computes the Euclidean distance in RGB space, and maps that distance to a color on the heatmap.
Heatmap generation
Low differences render in cool tones (blue/green); high differences render in warm tones (yellow/red). The result is overlaid on the base image so you can pinpoint exactly where changes occurred.
Example result
| Before | After |
|---|---|
| Image A: Original website screenshot | — |
| Image B: Updated version after a CSS change | — |
| — | Heatmap: A thin yellow-red band along the navigation bar area |
| — | Changed pixels: 14,327 out of 2,073,600 (0.69 %) |
Your heatmap depends on the two images you supply.
Pro tips
Ignore the haze, hunt the hot spots
Lossy re-encoding paints diffuse cool washes everywhere. Read the heatmap by its warm, concentrated regions; those are real edits, while the haze is expected noise.
Diff against a true baseline
Keep an untouched reference export of the known-good state and diff against it. Diffs between two edited versions compound and hide the trace of each change.
Localise, then measure
Use the heatmap to localise a change, then switch to the Pixel Difference Checker to record an exact percentage. The spatial and the numeric stories belong together.
Watch edges and corners
Unintended changes love the frame border. Sweep the overlay across all four edges before declaring two versions identical.
Align formats and colour management
Compare like for like. A profile shift or a different decoder between the two files adds a global colour difference that looks like an edit.
Use it to keep compression honest
After any compression pass, diff the export against the source. If warm regions concentrate where fine detail lives, the quality setting is doing real damage.
When to use it
Great for Image Difference Checker
- Detecting subtle edits between two versions of a design mock-up.
- Identifying regions where compression artifacts differ between two exports.
- Checking whether a watermarked image has been altered compared to the original.
Watch out for
- When you want a side-by-side visual slider instead of a heatmap, use Image Compare.
- When you need an exact per-channel breakdown, use the Pixel Difference Checker.
- When you need a single similarity percentage rather than a visual map, use the Image Similarity Checker.
Privacy
Edits never overwrite your original file. Every result is a new download, so you always keep the source image. Read the privacy policy.
Troubleshooting
Lossy compression (e.g. JPG re-encoding) introduces invisible pixel-level changes. The heatmap amplifies these so you can see them.
The tool compares them at the overlapping region. Non-overlapping areas show as fully different.
Frequently asked questions
Cool colors (blue, green) represent small pixel differences. Warm colors (yellow, red) represent large differences. Areas with no color overlay are identical.
The percentage is based on the number of pixels that exceeded a threshold, rounded for readability. It is not an exact decimal calculation of per-channel variance.
It highlights any pixel differences, including those caused by watermark removal, color grading or object edits. It cannot tell you what the edit was - only that pixels changed.
Lossy compression perturbs almost every pixel by at least one RGB unit, and this tool counts any pixel whose distance is above zero. The result is a diffuse cool haze that represents encoding noise, not a visible change. Concentrate on bright, clustered regions for real edits.
Small pixel distances render in cool blues and greens, medium distances in yellows and oranges, and the largest distances in red. Identical pixels stay uncoloured, so the strongest colours mark where the frames differ most.
The tool draws both files to a matching comparison resolution, so differently sized images are compared over their aligned region while non-overlapping content shows as fully different. For exact 1:1 semantics with strict downscaling, use the Pixel Difference Checker.
No. The heatmap highlights that pixels changed and how much, not what kind of edit caused the change. A moved element, a colour grade and a watermark all register as warm regions with no semantic label.
Yes, in the sense that the region where the watermark used to be lights up strongly. The tool cannot explain the edit, but it will reliably show where pixel content differs between the two files.
No. Both files are decoded and compared entirely in your browser, with no upload endpoint. The data lives in memory and is cleared when you close or reload the page.
Technical details
| Diff algorithm | Per-pixel Euclidean distance in RGB: sqrt((r2-r1)^2 + (g2-g1)^2 + (b2-b1)^2) |
|---|---|
| Heatmap palette | Blue (low) -> Green -> Yellow -> Red (high) mapped to the 0-441 RGB distance range |
| Canvas strategy | Both images drawn to separate off-screen canvases; pixel arrays read via getImageData() |
| Threshold default | Pixels with RGB distance > 0 are counted as changed for maximum sensitivity |
| Output canvas | A third canvas composites the heatmap over the first image for visual context |
Tool last updated: September 2026. Browse all image tools.