Inverse Watermark Demo

Same two PNG files in every panel — only the browser compositing differs.

What a human sees

base + overlay · mix-blend-mode: difference → clean

What a scraper downloads

the <img> file on disk · watermarked

Overlay layer (the cancel pattern)

grayscale watermark, harmless alone

The left and middle panels load the identical watermarked PNG. The left panel simply stacks overlay.png on top with the difference blend mode, which the GPU evaluates as |base − overlay| per channel. Since base = original + S and overlay = S, the result is the exact original. A scraper that grabs the src URL, or right-clicks → Save, only ever gets the watermarked file.

Limit: a headless browser that screenshots the rendered page captures the composited (clean) pixels. No client-side scheme can prevent that, because the clean image must exist on screen for a human to see it. This defeats bulk src-scrapers and right-click saves, not full-render screenshotters.