Visto che non ci sono pillole riguardanti questo argomento, ho deciso di allegare uno script molto semplice sulla conversione dei colori hex-dec e viceversa
Il risultato è questo: Testodiprovaasdblatxt
Codice PHP:
$text = "Testo di prova asd bla txt";
echo colorize($text,"#000000","#FFCC00");
function colorize($text,$from,$to) {
$from_red = hexdec(substr(str_replace("#","",$from),0,2));
$from_green = hexdec(substr(str_replace("#","",$from),2,2));
$from_blue = hexdec(substr(str_replace("#","",$from),4,2));
$to_red = hexdec(substr(str_replace("#","",$to),0,2));
$to_green = hexdec(substr(str_replace("#","",$to),2,2));
$to_blue = hexdec(substr(str_replace("#","",$to),4,2));
$length = strlen($text);
$jump_red = round(($to_red-$from_red)/$length);
$jump_green = round(($to_green-$from_green)/$length);
$jump_blue = round(($to_blue-$from_blue)/$length);
for($i=0;$i<$length;$i++) {
echo "<span style='font-size:20px; color:".dechexFix($from_red,$from_green,$from_blue).";'>".$text[$i]."</span>";
$from_red += $jump_red;
$from_green += $jump_green;
$from_blue += $jump_blue;
}
}
function dechexFix($red,$green,$blue) {
return sprintf('#%02X%02X%02X',$red,$green,$blue);
}
La funzione è piuttosto semplice, scompone in numeri decimali i codici hex indicati fra gli argomenti e si calcola i salti di colore da effettuare ponderando il gap fra il colore di partenza ed il colore di arrivo per il numero di caratteri della stringa, riconvertendo nuovamente gli incrementi in colore hex