function image_histo($im) { $image = valeurs_image_trans($im, "courbes", "gif"); if (!$image) return(""); $x_i = $image["largeur"]; $y_i = $image["hauteur"]; $im = $image["fichier"]; $dest = $image["fichier_dest"]; $creer = $image["creer"]; if ($creer) { $im = $image["fonction_imagecreatefrom"]($im); $im_ = imagecreatetruecolor(258, 130); @imagealphablending($im_, false); @imagesavealpha($im_,true); $color_t = ImageColorAllocateAlpha( $im_, 255, 255, 255 , 0 ); imagefill ($im_, 0, 0, $color_t); $col_poly = imagecolorallocate($im_,0,0,0); imagepolygon($im_, array ( 0, 0, 257, 0, 257, 129, 0,129 ), 4, $col_poly); 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; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $a = (127-$a) / 127; $a=1; $gris = round($a*($r+$g+$b) / 3); $r = round($a*$r); $g = round($a*$g); $b = round($a*$b); $val_gris[$gris] ++; $val_r[$r] ++; $val_g[$g] ++; $val_b[$b] ++; } } $max = max( max($val_gris), max($val_r), max($val_g), max($val_b)); $rapport = (127/$max); $gris = imagecolorallocate($im_, 160, 160, 160); for ($i = 0; $i < 256; $i++) { $val = 127 - round(max(0,$val_gris[$i]) * $rapport); imageline ($im_, $i+1, 128, $i+1, $val+1, $gris); } $bleu = imagecolorallocate($im_, 0, 0, 255); for ($i = 0; $i < 256; $i++) { $val = 127 - round(max(0,$val_b[$i]) * $rapport); if ($i==0) imagesetpixel ($im_, $i+1, $val+1, $bleu); else imageline($im_, $i, $val_old+1, $i+1, $val+1, $bleu); $val_old = $val; } $green = imagecolorallocate($im_, 0, 255, 0); for ($i = 0; $i < 256; $i++) { $val = 127 - round(max(0,$val_g[$i]) * $rapport); if ($i==0) imagesetpixel ($im_, $i+1, $val+1, $green); else imageline($im_, $i, $val_old+1, $i+1, $val+1, $green); $val_old = $val; } $rouge = imagecolorallocate($im_, 255, 0, 0); for ($i = 0; $i < 256; $i++) { $val = 127 - round(max(0,$val_r[$i]) * $rapport); if ($i==0) imagesetpixel ($im_, $i+1, $val+1, $rouge); else imageline($im_, $i, $val_old+1, $i+1, $val+1, $rouge); $val_old = $val; } $image["fonction_image"]($im_, "$dest"); imagedestroy($im_); imagedestroy($im); } return ""; }