ComparePictureCompare two pictures

See what compression did to your image

Add the original as A and the compressed copy as B. The loss map shows where detail went, the numbers say how much, and the target check tells you whether B meets an upload limit.

Private · Browser-based · No uploads

Two pictures in, every difference out.

  1. 1. Drop, paste or choose the earlier picture as A.
  2. 2. Add the later one as B — or drop both at once.
  3. 3. The comparison starts by itself; switch views any time.

PNG, JPEG, WebP, GIF (first frame), AVIF, BMP and HEIC where this browser can decode it. Different sizes are fine — they are aligned for you.

Both files are read by this page on your device. There is no upload step, because there is no server to upload to.

Or try an example pair

AOriginalChoose image Adrag & drop, or paste with Ctrl/⌘ VPress Enter to choose image A, or drop a file here.
BCompressedChoose image Bdrag & drop, or paste with Ctrl/⌘ VPress Enter to choose image B, or drop a file here.

Reading the loss map

The stage opens on the difference heatmap with B scaled up to A's size: dark where compression left the picture alone, bright where it changed most. Compression spends its savings on fine texture first, so hair, grass, fabric and the edges of small text usually light up before flat sky or skin does. Raise “Amplify faint differences” to see the gentle losses, or switch to Structure to see only where shapes changed rather than tones.

PSNR and SSIM put a number on it. PSNR above about 40 dB is usually invisible at normal viewing size; around 30 dB the loss is visible on close inspection. SSIM compares local structure on a 0 to 1 scale and tends to track what people notice better than PSNR does.

Block and halo artefacts

JPEG works in 8 × 8 pixel blocks. Pushed hard, the edges of those blocks start to show as a faint grid in flat areas — the blockiness reading measures that grid on each file's own pixels, where about 1.0 means none. Ringing is the halo of ripples beside strong edges and text; the reading compares the ripple next to edges with the ripple in flat areas. Neither needs a model or an upload; both are arithmetic on the pixels in this page.

Checking an upload limit

Application forms state limits like “JPG, 20–50 KB, 350 × 350 pixels”. Type the numbers into the target check, or pick a preset, and each rule gets a pass or fail mark against B. The presets carry their source and a reminder to confirm the current notification — form rules change between cycles, and the official notice governs. The check reads B; it does not make a smaller copy.

A received copy from a messaging app is a compressed copy too. Compare the photo you sent with the one that arrived to see what the app's standard quality setting removed.

Questions people ask

›My exam form wants 20–50 KB. Will this check my photo?

Yes. Put the compressed photo as B, type 20 and 50 in the KB fields (or pick a preset), and add the pixel size if the form states one. Each rule shows a tick or a cross. Always confirm the numbers in the current official notification.

›What PSNR is good enough?

As a rough guide, above 40 dB the difference is hard to see; 30–40 dB is visible when you look closely; below 30 dB it is usually obvious. Look at the loss map too — a number cannot tell you whether the loss sits on a face or in the background.

›Why did a WhatsApp photo change?

Messaging apps usually re-compress and often resize photos sent at standard quality. Comparing the original with the received copy shows the size reduction and where detail was lost.