Ho un'immagine con uno sfondo colorato e ho bisogno di generare delle scritte che abbiano un colore diverso dallo sfondo.
Inizialmente utilizzavo uno script che generava colori "opposti": dato un colore in formato $r $b $g, e una "soglia" di distanza $s, lo script è:
Codice PHP:
$s = 50;
if ($r < $s) $r = rand($r+$s, 255);
elseif ($r > 255-$s) $r = rand (0, $r-$s);
elseif (rand(0,1)) $r = rand(0,$r-$s);
else $r = rand($r+$s,255);
if ($g < $s) $g = rand($g+$s, 255);
elseif ($g > 255-$s) $g = rand (0, $g-$s);
elseif (rand(0,1)) $g = rand(0,$g-$s);
else $g = rand($g+$s,255);
if ($b < $s) $b = rand($b+$s, 255);
elseif ($b > 255-$s) $b = rand (0, $b-$s);
elseif (rand(0,1)) $b = rand(0,$b-$s);
else $b = rand($b+$s,255);
Inizialmente sembrava funzionare bene, ma se lo sfondo è un colore primario, cominciano ad esserci problemi!
Ad esempio, se lo sfondo è nero (0, 0, 0) colori come rosso (255, 0, 0), verde (0, 255, 0), giallo (255, 255, 0)... non usciranno mai, perché hanno una coordinata che è zero!
Qualcuno ha qualche idea migliore?