Tempo di Lettura: 1 minuti
In questo articolo verrà visualizzato un esempio per creare una funzione che ricavi il colore complementare da un altro, in modo che, dato un colore di sfondo, si possa ricavare automaticamente il miglior colore del testo tale da renderlo leggibile.
Il colore inverso si può definire matematicamente come il complemento del valore RGB di un colore.
Sul web ogni colore è rappresentato da un valore esadecimale (HEXCODE) oppure con la sua equivalente forma RGB (red, green, blue).
I numeri esadecimali si basano su un sistema di numerazione in base 16 che comprende le cifre da 0 a 9 e da A a F.
Nel linguaggio HTML per indicare i valori RGB si utilizza il sistema di codifica esadecimale anziché quello decimale.
I codici esadecimali dei colori sono costituiti da numeri di sei cifre. Le prime due cifre definiscono il livello del rosso, le seconde due cifre definiscono il livello del verde e la terza coppia di cifre definisce il livello del blu.
Questa è la funzione:
// just returns the inverse
function inversecolor($hexcode) {
if(substr($hexcode, 0, 1) == "#") {
$hexcode = substr($hexcode, -6);
}
$r = hexdec(substr($hexcode, 0, 2));
$g = hexdec(substr($hexcode, 2, 2));
$b = hexdec(substr($hexcode, 4, 2));
$strColor = "#".dechex(255 - $r).dechex(255 - $g).dechex(255 - $b);
return $strColor;
}
E questo è il metodo per richiamare la funzione:
echo inversecolor("#254899");
Un esempio dell’applicazione si può trovare a qesto indirizzo: http://regretless.com/scripts/js/inversecolor.html
Codice originale: http://tutorials.php-princess.net/index.php?p=60&more=1