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 !!!');
    }
}
 for ($v3 = 0; $v3 < $max[2]; $v3 += $steps[2]) {
     if ($type_test == "xyz") {
         $c->set_from_xyz($v1, $v2, $v3);
         $values = $c->get_xyz();
     }
     if ($type_test == "cmy") {
         $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];
     }