function image_courbe($im, $couche, $courb="") { $numargs = func_num_args(); $arg_list = func_get_args(); $texte = $arg_list[0]; for ($i = 1; $i < $numargs; $i++) { if (ereg("\=", $arg_list[$i])) { $nom_variable = substr($arg_list[$i], 0, strpos($arg_list[$i], "=")); $val_variable = substr($arg_list[$i], strpos($arg_list[$i], "=")+1, strlen($arg_list[$i])); $courbe[$nom_variable] = $val_variable; } } $image = valeurs_image_trans($im, "courbe-$couche-".serialize($courbe)); if (!$image) return(""); $x_i = $image["largeur"]; $y_i = $image["hauteur"]; $im = $image["fichier"]; $dest = $image["fichier_dest"]; $creer = $image["creer"]; if ($creer) { $courbe[0] = 0; $courbe[255] = 255; ksort($courbe); while (list($key, $val) = each($courbe)) { if ($key > 0) { $key1 = $key_old; $val1 = $val_old; $prop = ($val - $val1) / ($key-$key1); for ($i = $key1; $i < $key; $i++) { $valeur = round($prop * ($i - $key1) + $val1); $courbe[$i] = $valeur; } $key_old = $key; $val_old = $val; } else { $key_old = $key; $val_old = $val; } } $im = $image["fonction_imagecreatefrom"]($im); $im_ = imagecreatetruecolor($x_i, $y_i); @imagealphablending($im_, false); @imagesavealpha($im_,true); $color_t = ImageColorAllocateAlpha( $im_, 255, 255, 255 , 0 ); imagefill ($im_, 0, 0, $color_t); for ($x = 0; $x < $x_i; $x++) { for ($y=0; $y < $y_i; $y++) { $rgb = ImageColorAt($im, $x, $y); $a = ($rgb >> 24) & 0xFF; $r = ($rgb >> 16) & 0xFF; $v = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; if ($couche == "rvb" OR $couche == "r") $r = $courbe[$r]; if ($couche == "rvb" OR $couche == "v") $v = $courbe[$v]; if ($couche == "rvb" OR $couche == "b") $b = $courbe[$b]; $color = ImageColorAllocateAlpha( $im_, $r, $v, $b , $a ); imagesetpixel ($im_, $x, $y, $color); } } $image["fonction_image"]($im_, "$dest"); imagedestroy($im_); imagedestroy($im); } $class = $image["class"]; if (strlen($class) > 1) $tags=" class='$class'"; $tags = "$tags alt='".$image["alt"]."'"; $style = $image["style"]; if (strlen($style) > 1) $tags="$tags style='$style'"; return ""; }