Studiati questo codice:
Codice PHP:
<?php
// from [url]http://forumdeli.com/14-php-function-to-convert-hsl-to-rgb-hexadecimal-notation[/url]
function hsltorgb($h, $s, $l) {
$l /= 100;
if ($s == 0) {
$l = round(255*$l);
return sprintf('#%02x%02x%02x', $l, $l, $l);
}
$s /= 100;
$h /= 360;
$m2 = ($l<=0.5) ? $m2 = $l*($s+1) : $l+$s-($l*$s);
$m1 = $l*2 - $m2;
$r = hue($m1, $m2, ($h+1/3));
$g = hue($m1, $m2, $h);
$b = hue($m1, $m2, ($h-1/3));
$h = sprintf('%02x%02x%02x', round(255*$r), round(255*$g), round(255*$b) );
$hex3 = $h{0}.$h{2}.$h{4};
return ($hex3 == $h{1}.$h{3}.$h{5}) ? '#'.$hex3 : '#'.$h;
}
function hue($m1, $m2, $h) {
if($h<0) ++$h;
if($h>1) --$h;
if($h < 1/6) return $m1+($m2-$m1)*6*$h;
if($h < 1/2) return $m2;
if($h < 2/3) return $m1+($m2-$m1)*6*(2/3-$h);
return $m1;
}
function green2red($percentage, $saturation = 99, $lightness = 50) {
$percentage = $percentage / 100;
$percentage = ($percentage > 1.0) ? 1.0 : $percentage;
$percentage = ($percentage < 0.0) ? 0.0 : $percentage;
$percentage = 1.0 - $percentage; // invert percentage
$hue = (70 / 255 * 360) * $percentage;
return hsltorgb($hue, $saturation, $lightness);
}
print('<table><tr>');
for ($i = 0; $i <= 100; $i++) {
$color = green2red($i);
print('<td height="20" bgcolor="' . $color . '" width="3"></td>');
}
print('</tr></table>');
?>