Stylus Apple

Fri 7/6 HyperDither

HyperDither

Since I began writing Egg Freckles in early 2010, I routinely get asked one question more than any other, “how do you get your website’s images to look like that?” The answer is HyperDither.

HyperDither is a Mac OS X image processing utility that converts color or grayscale images into 1 bit black & white works of art using the Atkinson dithering routine.

Years ago, during the development of the first Macintosh, Bill Atkinson (of HyperCard, QuickDraw, MacPaint, and now nature photography fame) discovered a very elegant dithering filter to convert greyscale image data for the 1-bit black-and-white Mac video display. The dithering produced by this routine was much higher in quality than the now-ubiquitous Floyd-Steinberg or error-diffusion filter (used by QuickTime, Photoshop).

The Atkinson dither routine was first implemented by Andy Hertzfeld (another Macintosh legend) when he wrote the software for Thunderscan, an ingenious device for turning an ordinary ImageWriter printer into a 5-bit greyscale scanner. Dithering was an important part of scanning images into early Macs because their screens were limited to black and white pixels. The low-cost Thunderscan was a hit amongst indie Macintosh developers, and the images it produced using the Atkinson dither routine can still be seen in a graphics of many early Macintosh software titles.1 As technology advanced in the late 80’s Macs gained the capability of displaying greyscale and color images. Atkinson dithering was no longer needed, and its algorithm was lost to time.

In January 2003, John Balestrieri, the developer of HyperDither contacted Bill Atkinson about the details of the long lost algorithm. He was kind enough to respond with a brief write-up of the routine, and from that routine HyperDither was born. HyperDither does one thing well, it creates Atkinson dithered images. To process an image with HyperDither, just drag and drop or copy and paste the image into HyperDithers main window. You can then save it to disk or copy it back to the clipboard. To batch-process a folder of images, just drag a folder of images into HyperDithers main window. The Atkinson dithering routine works best with images that have high contrast. Incidentally, the original implementation of the algorithm intentionally increased the contrast of the final images (which also made them faster to compute). HyperDither lets you choose between high-contrast and no-contrast adjustments, and gives the option of adding a sharpening pass.

HyperDither 1.3 was developed on a Mac running Mac OS X Leopard, but should work on system software as old as 10.3 Panther. HyperDither is a Universal application, which means it will run natively on PowerPC machines or Intel Macs running the latest Macintosh operating system.

I have been using HyperDither for several years and appreciate its ability to quickly apply the Atkinson dither routine to all of Egg Freckles images. Incremental updates such as batch processing, reduced views, and optimized PNG output2 have been welcomed, but an increased feature set with brightness, contrast, and color controls has been a long time coming. Recently I have found HyperDither has a hard time dealing with the PNG alpha channels saved in modern Mac apps like Preview, Acorn, and Pixelmator. And as a Real Studio app, HyperDither doesn’t always behave like a native Mac app should.3

On April 1st, 2012, Flickr reintroduced the Atkinson dither routine to the world by including it as part of its annual April fools prank. For a short time photos on Flickr were re-envisioned in a glorious black and white Atkinson Dither, removing the distraction of those many many megapixels and stripping your art back to its most original, naked, beautiful form. Despite a message to the contrary, the change was only temporary, but popularity for the Atkinson dithering grew amongst the indie developer community after Flickr released the source code for its little prank on GitHub.

Now the Atkinson dithering routine is popping up all over the place as a canvas replacement hack in HTML5. Using Javascript any image on the web can be replaced with an Atkinson dithered alternative, and this is the method I am currently using to dither images on Egg Freckles. Dithering images in this manner means that the effect can be scaled along with the image so that a single image looks great no matter the screen size4. In the future I hope new versions of this technique can be used to replace HyperDither on the web, and generate Atkinson dithered images that look great, even on Retina displays.


  1. The Atkinson Dither Routine was later added into HyperCard, and Hyperscan, a competing scanner software package from Apple. This made the Atkinson dither routine even more prevalent in early Macintosh software. 

  2. I still use ImageOptim to losselessly compress the output of HyperDither even more. 

  3. Dragging an image into HyperDither’s dock icon has no affect, and clicking the HyperDither icon fails to bring up a new main window when none is open. 

  4. The Atkinson dither routine like all great pixel art cannot be arbitrarily scaled after the affect is applied. 

Rainbow Apple MessagePad