function contraster(&$backgroundcolor, &$textcolor) { if ($textcolor == "#000000") { $c_backgroundcolor = new color(); $c_backgroundcolor->set_from_rgbhex(substr($backgroundcolor, 1, 6)); // il y a un bug dans la méthode set_from_rgbhex de la classe color (à cause de #) // je fixe ici en utilisant substr mais il faudrait le faire dans la classe //$c_backgroundcolor->set_from_rgb(0,0,255); //echo "avant="; //print_r($c_backgroundcolor->get_luv()); //echo "<br/>"; //echo "apres="; //print_r($c_backgroundcolor->get_luv()); //echo "<br/>"; $luv = $c_backgroundcolor->get_luv(); /* si la luminosité est supérieur à une certaine valeur on ne la change pas si elle est inférieur on la fixe à une constante */ $lum_min = 50; if ($luv[0] < $lum_min) { $luv[0] = $lum_min; } $c_backgroundcolor->set_from_luv($luv[0], $luv[1], $luv[2]); $backgroundcolor = "#" . $c_backgroundcolor->get_rgbhex(); } else { throw new Exception('Impossible car la couleur de texte n\'est pas noire !!!'); } }
$c->set_from_cmy($v1, $v2, $v3); $values = $c->get_cmy(); } if ($type_test == "cmyk") { $c->set_from_cmyk($v1, $v2, $v3, 0.5); $values = $c->get_cmyk(); } if ($type_test == "luv") { $c->set_from_luv($v1, $v2, $v3); $values = $c->get_luv(); } if ($type_test == "hsl") { $c->set_from_hsl($v1, $v2, $v3); $values = $c->get_hsl(); } echo "<td bgcolor=#" . $c->get_rgbhex() . ">"; if (round($v1, 2) != round($values[0], 2)) { echo $v1 . "-" . $values[0] . "<br>\n"; } if (round($v2, 2) != round($values[1], 2)) { echo $v2 . "-" . $values[1] . "<br>\n"; } if (round($v3, 2) != round($values[2], 2)) { echo $v3 . "-" . $values[2]; } echo "</td>\n"; } echo "</tr>\n"; } echo "</table>\n"; echo "<br>\n";
<?php require_once "class_color.inc.php"; $c = new color(); $c->set_from_rgb(224, 200, 226); echo "<table>\n"; echo "<tr>\n"; for ($i = 0; $i > -1; $i -= 0.05) { $c2 = new color(); $c2->set_from_rgb(224, 200, 226); $temp = $c2->get_hsl(); echo "avant:" . $temp[0] . " " . $temp[1] . " " . $temp[2]; $c2->mod_l_hsl($i); $temp = $c2->get_hsl(); echo "apres:" . $temp[0] . " " . $temp[1] . " " . $temp[2] . "<br>"; echo "<td bgcolor=#" . $c2->get_rgbhex() . "> </td>\n"; } echo "</tr>\n"; echo "</table>\n";