I got really bored so I wrote a simple dithering tool in Kotlin. It is surprising how little loss you get when reducing an image to 8 colors. Source code: gist.github.com/Frederikam/115

@fred i get weird flickers when i scroll that image at 100% zoom. Looks surprisingly good when it's still though!

@fred I wonder if adding a very small gaussian blur by the image reader wouldn't enhance a bit the perceived quality
@fred Yep the result is not so bad, but maybe too blurry to be usefull.

Maybe there is an interesting compromise doable :
a way bigger picture with only 8 colors. The displayer blurs it and then shrink it.
I wonder if like this a picture would take less data than the original.

@lord here's the unblurred image, followed by an upscaled then blurred image, followed by the second image down-scaled

@fred not bad, no ?
the down-scaled one looks great.

@fred
BTW, the best way to get a good color reduction is to use some clustering algorithm to get the best color combination. There's plenty of relevant literature in the academia (key word: color quantization).

web.cs.wpi.edu/~matt/courses/c

Self organizing networks like Kohonen's
( en.m.wikipedia.org/wiki/Self-o ) give out the best results.

@rick_777 looks interesting. Perhaps I'll try it out some day.

@tija being a masochist I'm sure she would like that

@fred
This just federated to me and I'm boosting it again thx still looks cool

@fred that image creates some fantastic moire patterns on my screen when zooming!

Sign in to participate in the conversation
niu.moe

Welcome to your niu world ! We are a cute and loving international community O(≧▽≦)O !