Convert photos to Atkinson dithering

by nvahalikon 6/7/2025, 8:33 PMwith 54 comments

by JKCalhounon 6/7/2025, 8:43 PM

Still my favorite B&W dither algorithm.

The university had a B&W flatbed scanner attached to a Mac running ... a Hypercard stack? that allowed you to scan an image and get a B&W image.

A clipart book I picked up from the college bookstore and a quick scan and I had a "logo" for the Mac shareware games I started writing in 1988 or so.

At the time I didn't;t realize how really ... nice .. Atkinson's algorithm is. But when, later, I tried dithering with other algos I saw how nice the diffusion was in Bill's code.

More recently I was playing with an eInk calendar project and wanted an "Atkinson-esque" series of images of the Moon in various phases. So I found a site very like the linked one to Atkinson-dither the moon photos I found [1].

[1] see the moon in screenshot: https://github.com/EngineersNeedArt/SystemSix/blob/10f2332b5...

by nedton 6/7/2025, 9:54 PM

Don't click the "as follows" in the info dialog. Looks like this wasn't updated in a while and since then the link became NSFW.

by throwanemon 6/7/2025, 8:51 PM

The implementation is excellent, and could be slightly improved by giving a default name and .png extension to the downloaded file, by passing a value to the "download" property on the anchor. See https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorE...

by minorbugon 6/7/2025, 11:12 PM

Here's one I've been working on and off that lets you convert multiple images to MacPaint in a 400k MFS formatted disk image.

https://github.com/minorbug/mfsjs

I've had this project gathering a light layer of dust in my home directory for a couple months now. I used Gemini Deep Research to help produce the library, and I included the LLM-generated markdown for anyone who wishes to reproduce on other languages, improve upon it, etc.

by AndrewStephenson 6/7/2025, 9:07 PM

This implementation is great and the interface brings back memories.

I was wondering why my Atkinson dithering web-component[0] was getting more hits today - sad news. I’ve always thought that Atkinson dithering produces the nicest images on really crisp monitors like the original Mac - something about it just looks cool and 80s which is why I used it in a game last year.

[0] https://sheep.horse/2023/1/improved_web_component_for_pixel-...

by ameliuson 6/7/2025, 8:54 PM

If you want to do this in Python, there's:

https://github.com/tgray/hyperdither

by kgbciaon 6/7/2025, 10:51 PM

Would be great for eink/epaper devices.

by larodion 6/7/2025, 8:48 PM

Is it the same Atkinson that died today and is this a tribute ?

by franzeon 6/8/2025, 11:07 AM

I wanted to learn a bit more about that algo, so https://atkinson.franzai.com/ - I double checked through some AIs so I hope it is factually correct.

by RodgerTheGreaton 6/7/2025, 11:52 PM

A similar tool I wrote several years ago: http://beyondloom.com/tools/dith.html

by ksron 6/7/2025, 9:22 PM

Cute UI! GitHub link of demo: https://github.com/gazs/canvas-atkinson-dither

by ddinguson 6/7/2025, 9:05 PM

I just converted my home stereo. Pioneer, so lots of brushed metal. It looks really great at 2560x1440. Great dither.

by gcanyonon 6/7/2025, 10:11 PM

What am I doing wrong? I import a photo, I click save to desktop, and I get an unidentified file in an unknown format.

by zdwon 6/7/2025, 11:44 PM

Interesting that one of the size options is 512x384, not 512x342 which was the original mac resolution.

by devermanon 6/8/2025, 2:19 PM

Thanks I tried a bunch of my favorite photos in this too.

by htkon 6/8/2025, 12:14 AM

Thank you for posting this. Very nostalgic!

by corytheboydon 6/8/2025, 4:34 AM

Very, very perfect, I love it

by 9don 6/7/2025, 10:54 PM

Sorry but where did you get the JS/CSS for this? It's so small.