Thanks, I am using GR32. I am not yet so much into the color spaces, but I also read about better using other spaces for good results instead of sRGB.
For my app its important to have high quality color reduction, based on visible similarity.
Finally, I need both, color reduction with and without dithering.
I am even thinking about, if for my app it could be little bit more important to care about the hue, instead of the other parameters, for a nearest decision. Or I would add settings,
so the user can choose, and take which result he likes more. (was thinking even about using your ColorDistanceHue/Brightness/Sat.. and somehow to combine it in a way that the user can give
it different weights in the decision, but thats maybe a luxury wish for the future at the moment).
What I read is that converting to Lab (cielab), or HLC = LCh = LCH, or HSV makes sense, and Delta E from CIE2000 is good.
Now, I just read from you about the OKlab, this looks quite good!
Maybe I should go this way and convert it to OKlab. With the GIF, I think, it will not the right way for me.
In fact at the end its even more complicated, a picture with full colors, will need to be mapped to a small color palette (approx 400colors), but even more the user
can choose that the result will use only a max amount of colors from that, e.g. 60 colors. 🙂 🙂 To be honestly, I also thinking since a while, what would be the criteria,
which colors to throw away 🙂 I think the solution for this detail will be, to first map to the 400 colors, which can result in a picture, which can then have even less
then the full palette, lets say e.g. 300 colors,
and then sort the Distances, and then to remove colors beginnging with the smallest distance. Practical experiments will show...
But, one step after another... first I am happy, if the mapping with dithering principally works fine, and allows some adjustments.
I you have any, even not yet satisfying code, I would for sure like to try it.