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() . ">&nbsp;</td>\n";
}
echo "</tr>\n";
echo "</table>\n";