Jump to content

Unable to display graph using GD library in WAMP


shaukathayder

Recommended Posts

Can anyone help me on the following code which I tried to run in a WAMP server its not working.

 

piechart.php

 

<?php

////////////////////////////////////////////////////////////////

// PHP script made by Rasmus - [www.peters1.dk] //

////////////////////////////////////////////////////////////////

 

$show_label = true; // true = show label, false = don't show label.

$show_percent = true; // true = show percentage, false = don't show percentage.

$show_text = true; // true = show text, false = don't show text.

$show_parts = false; // true = show parts, false = don't show parts.

$label_form = 'square'; // 'square' or 'round' label.

$width = 199;

$background_color = 'FFFFFF'; // background-color of the chart...

$text_color = '000000'; // text-color.

$colors = array('003366', 'CCD6E0', '7F99B2','F7EFC6', 'C6BE8C', 'CC6600','990000','520000','BFBFC1','808080'); // colors of the slices.

$shadow_height = 16; // Height on shadown.

$shadow_dark = true; // true = darker shadow, false = lighter shadow...

 

// DON'T CHANGE ANYTHING BELOW THIS LINE...

 

$data = $_GET["data"];

$label = $_GET["label"];

 

//$data = "10*9*11*10";

//$label = "Denmark*Germany*USA*Sweden";

 

$height = $width/2;

$data = explode('*',$data);

 

if ($label != '') $label = explode('*',$label);

 

for ($i = 0; $i < count($label); $i++)

{

if ($data[$i]/array_sum($data) < 0.1) $number[$i] = ' '.number_format(($data[$i]/array_sum($data))*100,1,',','.').'%';

else $number[$i] = number_format(($data[$i]/array_sum($data))*100,1,',','.').'%';

if (strlen($label[$i]) > $text_length) $text_length = strlen($label[$i]);

}

 

if (is_array($label))

{

$antal_label = count($label);

$xtra = (5+15*$antal_label)-($height+ceil($shadow_height));

if ($xtra > 0) $xtra_height = (5+15*$antal_label)-($height+ceil($shadow_height));

 

$xtra_width = 5;

if ($show_label) $xtra_width += 20;

if ($show_percent) $xtra_width += 45;

if ($show_text) $xtra_width += $text_length*8;

if ($show_parts) $xtra_width += 35;

}

 

$img = imagecreatetruecolor($width+$xtra_width, $height+ceil($shadow_height)+$xtra_height);

 

ImageFill($img, 0, 0, colorHex($img, $background_color));

 

foreach ($colors as $colorkode)

{

$fill_color[] = colorHex($img, $colorkode);

$shadow_color[] = colorHexshadow($img, $colorkode, $shadow_dark);

}

 

$label_place = 5;

 

if (is_array($label))

{

for ($i = 0; $i < count($label); $i++)

{

if ($label_form == 'round' && $show_label)

{

imagefilledellipse($img,$width+11,$label_place+5,10,10,colorHex($img, $colors[$i % count($colors)]));

imageellipse($img,$width+11,$label_place+5,10,10,colorHex($img, $text_color));

}

else if ($label_form == 'square' && $show_label)

{

imagefilledrectangle($img,$width+6,$label_place,$width+16,$label_place+10,colorHex($img, $colors[$i % count($colors)]));

imagerectangle($img,$width+6,$label_place,$width+16,$label_place+10,colorHex($img, $text_color));

}

 

if ($show_percent) $label_output = $number[$i].' ';

if ($show_text) $label_output = $label_output.$label[$i].' ';

if ($show_parts) $label_output = $label_output.$data[$i];

 

imagestring($img,'2',$width+20,$label_place,$label_output,colorHex($img, $text_color));

$label_output = '';

 

$label_place = $label_place + 15;

}

}

$centerX = round($width/2);

$centerY = round($height/2);

$diameterX = $width-4;

$diameterY = $height-4;

 

$data_sum = array_sum($data);

 

$start = 270;

 

for ($i = 0; $i < count($data); $i++)

{

$value += $data[$i];

$end = ceil(($value/$data_sum)*360) + 270;

$slice[] = array($start, $end, $shadow_color[$value_counter % count($shadow_color)], $fill_color[$value_counter % count($fill_color)]);

$start = $end;

$value_counter++;

}

 

for ($i=$centerY+$shadow_height; $i>$centerY; $i--)

{

for ($j = 0; $j < count($slice); $j++)

{

if ($slice[$j][0] != $slice[$j][1]) ImageFilledArc($img, $centerX, $i, $diameterX, $diameterY, $slice[$j][0], $slice[$j][1], $slice[$j][2], IMG_ARC_PIE);

}

}

 

for ($j = 0; $j < count($slice); $j++)

{

if ($slice[$j][0] != $slice[$j][1]) ImageFilledArc($img, $centerX, $centerY, $diameterX, $diameterY, $slice[$j][0], $slice[$j][1], $slice[$j][3], IMG_ARC_PIE);

}

 

OutputImage($img);

ImageDestroy($img);

 

 

function colorHex($img, $HexColorString)

{

$R = hexdec(substr($HexColorString, 0, 2));

$G = hexdec(substr($HexColorString, 2, 2));

$B = hexdec(substr($HexColorString, 4, 2));

return ImageColorAllocate($img, $R, $G, $;

}

 

function colorHexshadow($img, $HexColorString, $mork)

{

$R = hexdec(substr($HexColorString, 0, 2));

$G = hexdec(substr($HexColorString, 2, 2));

$B = hexdec(substr($HexColorString, 4, 2));

 

if ($mork)

{

($R > 99) ? $R -= 100 : $R = 0;

($G > 99) ? $G -= 100 : $G = 0;

($B > 99) ? $B -= 100 : $B = 0;

}

else

{

($R < 220) ? $R += 35 : $R = 255;

($G < 220) ? $G += 35 : $G = 255;

($B < 220) ? $B += 35 : $B = 255;

}

 

return ImageColorAllocate($img, $R, $G, $;

}

 

function OutputImage($img)

{

header('Content-type: image/jpg');

ImageJPEG($img,NULL,100);

 

}

 

?>

 

-----chart.php--------

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"[www.w3.org];

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Untitled Document</title>

</head>

 

<body>

<img src="[localhost];

</body>

</html>

 

I am call the piechart.php file from within the chart.php file. But when I try to view the file in the browser

 

For IE is a cross mark in the img

Whereas in Firefox its is just a blank page.

 

I have GD library installed and using Windows XP and WAMP.

 

Can any one help me on that.. Its urgent...

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.