$bar_w = 100; $max_y = 300; $margin_top = 20; $margin_bottom = 20; $margin_left = 20; $margin_right = 20; $y_div = 10; $rects = array(); $last_x2 = $margin_left; $i = 1; $pt = "pt".$i; while (isset($_GET[$pt])) { $x1 = $last_x2 + 1; $x2 = $x1 + $bar_w; $y1 = $margin_top + $max_y - $_GET[$pt]; $y2 = $margin_top + $max_y; $ar = array($x1, $y1, $x2, $y2); array_push($rects, $ar); $i++; $last_x2 = $x2; $pt = "pt".$i; } $img_w = $last_x2 + $margin_right; $img_h = $margin_top + $max_y + $margin_bottom; $ih = imagecreate($img_w, $img_h); $black = imagecolorallocate($ih, 0, 0, 0); $white = imagecolorallocate($ih, 255, 255, 255); imagefill($ih, 0, 0, $white); for ($r = 0; $r < count($rects); $r++) { $red = rand(0, 255); $green = rand(0, 255); $blue = rand(0, 255); $hist_color = imagecolorallocate($ih, $red, $green, $blue); imagefilledrectangle($ih, $rects[$r][0], $rects[$r][1], $rects[$r][2], $rects[$r][3], $hist_color); imageline($ih, $rects[$r][2], $margin_top + $max_y, $rects[$r][2], $margin_top + $max_y + 3, $black); $ttfbox = imagettfbbox(8, 0, 'c:\winnt\fonts\arial.ttf', "pt" . ($r + 1)); $half_pt = ($bar_w/2) - ceil(($ttfbox[4] - $ttfbox[6])/2); imagettftext($ih, 8, 0, $rects[$r][0] + $half_pt, $rects[$r][3] + 10, $black, 'c:\winnt\fonts\arial.ttf', "pt" . ($r + 1)); } imageline($ih, $margin_left, $margin_top, $margin_left, $margin_top + $max_y + 3, $black); imageline($ih, $margin_left, $margin_top + $max_y, $last_x2, $margin_top + $max_y, $black); $tick = 0; while ($tick < $max_y) { $tick += $y_div; $tick_y = $margin_top + $max_y - $tick; imageline($ih, $margin_left - 3, $tick_y, $margin_left, $tick_y, $black); } imagepng($ih); imagedestroy($ih);