canvas-atkinson-dither icon indicating copy to clipboard operation
canvas-atkinson-dither copied to clipboard

Atkinson dithering example using Canvas, WebWorkers and FileReader

The classic Macintosh 1-bit filter, as used by Hyperdither

Compares every pixel to 50% grey, then changes them to either black or white. The difference between the input and the output is then distributed to the neighbouring pixels as follows (X is the current pixel):

     X  1/8 1/8
1/8 1/8 1/8
    1/8

This code uses Drag and Drop events, WebWorkers and the FileReader API so you'll need a current browser to try it.

(Oh, and of course, CoffeeScript, to compile the files into JS)