Das einfachste ist es, Farben als 3-dimensionalen Vektor aufzufassen. Die kleinste Länge der Differenz zweier Farben gibt dann die am nächsten liegende an. Dann muss man sich nur noch für ein Farbmodell entscheiden, in dem dies die besten Ergebnisse liefert.
RGB ist da meine ich schon garnicht SO schlecht, ich könnte mir aber auch gut
HSV bzw.
HSL für diesen Zweck vorstellen.
Edit: Ich glaube der
L*a*b*-Farbraum wäre geradezu ideal dafür, allerdings auch nicht mehr ganz so trivial.
Edit2: Auch
dieser Artikel dürfte für dich recht interessant sein.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)