Screenshot-proof images via temporal dithering

by Mihai Parparita - Blog Post - Source

Proof of concept of a simple technique to make screen capture of sensitive images more difficult via temporal dithering. Out of the source image two frames are generated, one with pixel values offset by a random amount (a different amount per RGB component) and another with the offset negated. By rapidly alternating between the two frames, the appearance of the original image is approximated, but a static screenshot would result in only one of the (significantly degraded) frames being captured.

Source image:
pixels
To prevent solid color areas of the image from being displayed too uniformly, the image is broken up into tiles of this size and all pixels within a tile are either lightened or darkened.
x
Allow positive or negative offsets to go above/below the 0/255 clamp value by this fraction (greater values result in more noise, but the dithered image is further away from the original).
Positive frame Negative frame
Source Temporal dithering
Positive frame Negative frame