Same two PNG files in every panel — only the browser compositing differs.
base + overlay · mix-blend-mode: difference → clean
the <img> file on disk · watermarked
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.