Ho creato un servizio che permette di inserire delle "scritte" su delle immagini.
Dato che il colore di ogni scritta è casuale, come posso fare a scegliere un colore idoneo per ogni scritta, in base a dove si trova?
Io ho fatto così: ho preso il punto in cui viene inserita la scritta, ne ho selezionato un'area di 20pixel², ho fatto la media del colore in quell'area, e poi ho utilizzato questi operatori per calcolare il colore più contrastante:
Codice PHP:
$eps 70;
$red abs((($r-$eps) > && ($r+$eps) < 255)?(rand(0,1))?(rand(0$r-$eps)):(rand($r+$eps255)):((($r-$eps)<=0)?(rand($r+$eps255)):(rand(0$r-$eps)))-20);
$green abs((($g-$eps) > && ($g+$eps) < 255)?(rand(0,1))?(rand(0$g-$eps)):(rand($g+$eps255)):((($g-$eps)<=0)?(rand($g+$eps255)):(rand(0$g-$eps)))-20);
$blue abs((($b-$eps) > && ($b+$eps) < 255)?(rand(0,1))?(rand(0$b-$eps)):(rand($b+$eps255)):((($b-$eps)<=0)?(rand($b+$eps255)):(rand(0$b-$eps)))-20); 
In pratica sceglie i colori in modo casuale, evitando l'intervallo [COLOREORIGINALE-$eps, COLOREORIGINALE+$eps].
Infine gli ho tolto un 20, dato che le immagini di sfondo sono tutte molto chiare.

Questo script però non è il migliore in quanto a scelta di colori!
Infatti se ho il colore rosso, (255,0,0), un colore come il giallo (255,255,0) che ha un'ottima visibilità su rosso, non potrà mai uscire!
Cosa posso fare allora per selezionare dei colori contrastanti?
Grazie in anticipo :D