Thursday, August 24, 2006

Colour? We don't need no steenking colour!

I can still recall the buzz I experienced the first time i got a 'hands-on' experience of a Macintosh Plus. One of the great things was that you could actually draw pictures, crisply rendered on its hi-res, 512 by 342 pixel black & white (well, eggshell blue) display.

Despite the progress made in imaging software, pixel art remains a vibrant niche art form. And for those of you lucky/ discerning/ intelligent/ stupid enough to own an Apple computer, a piece of (free) software is now available that lets you experience the joy of 1-bit, and at a superior clarity than Photoshop can achieve. reports: [edited]

HyperDither is a Mac OSX image processing utility that converts color or grayscale images to 1 bit black & white using a sophisticated dithering routine. Specifically, HyperDither implements the Atkinson dithering filter.

Way back in the early days of Macintosh, Bill Atkinson (of HyperCard, QuickDraw, MacPaint & nature photography fame) developed a very elegant dithering filter to convert greyscale image data to the 1 bit black & white Mac video display. The dithering produced by this routine was much higher quality than the now-a-days ubiquitous Floyd-Steinberg or “Error-diffusion” filter (employed by QuickTime and PhotoShop).

The dither matrix was implemented in Apple’s HyperScan software for their original flatbed scanner. HyperScan, and hence the most-excellent Atkinson dithering routine, has been unavailable for many, many years—but not forgotten!

I was able to email Bill Atkinson in January, 2003 and inquire about the details of the algorithm; he was kind enough to respond with a brief write up of the routine - 15 minutes later I had it up and running.

It’s taken a few spare afternoons since 2003 to pack everything into a nice little application with documentation and an icon—better late than never!

To illustrate how good the program is, here's a bitmap image that has been created in Photoshop:

The same image using HyperDither:

There are more examples on the TinRocket site.

No comments: