Anche se sembra banale a prima vista, in realtà quello che chiedi è piuttosto complesso. Il formato RGB è tagliato per il monitor, ma all'occhio umano la differenza tra (0, 0, 0) e (100, 0, 0) è inferiore (di parecchio) rispetto alla differenza tra (0, 0, 0) e (0, 100, 0). Più indicato è un approccio basato su HSV, un formato più allineato rispetto ciò che effettivamente vede un occhio umano comune.
Comunque bando alla teoria: secondo me se vuoi la professionalità spulcia la libreria littlecms
http://www.littlecms.com/
particolarmente alla funzione cmsDeltaE(). In alternativa (se il tuo linguaggio di programmazione lo consente) usala.

Rispondi quotando