Showing createimage() as undefined function.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Raju B
    New Member
    • Aug 2010
    • 11

    #1

    Showing createimage() as undefined function.

    Hi all
    i had written code for displaying graph.but it showing error like this:

    Fatal error: Call to undefined function imagecreate() in /var/www/graph.php on line 27

    what i have to do for get graph properly.
    My code is:
    Code:
    <?php
    	# ------- The graph values in the form of associative array
    	$values=array(
    		"Jan" => 110,
    		"Feb" => 130,
    		"Mar" => 215,
    		"Apr" => 81,
    		"May" => 310,
    		"Jun" => 110,
    		"Jul" => 190,
    		"Aug" => 175,
    		"Sep" => 390,
    		"Oct" => 286,
    		"Nov" => 150,
    		"Dec" => 196
    	);
    
     
    	$img_width=450;
    	$img_height=300; 
    	$margins=20;
    
     
    	# ---- Find the size of graph by substracting the size of borders
    	$graph_width=$img_width - $margins * 2;
    	$graph_height=$img_height - $margins * 2; 
    	$img=imagecreate($img_width,$img_height);
    
     
    	$bar_width=20;
    	$total_bars=count($values);
    	$gap= ($graph_width- $total_bars * $bar_width ) / ($total_bars +1);
    
     
    	# -------  Define Colors ----------------
    	$bar_color=imagecolorallocate($img,0,64,128);
    	$background_color=imagecolorallocate($img,43,43,43);
    	$border_color=imagecolorallocate($img,200,200,200);
    	$line_color=imagecolorallocate($img,220,220,220);
     
    	# ------ Create the border around the graph ------
    
    	imagefilledrectangle($img,1,1,$img_width-2,$img_height-2,$border_color);
    	imagefilledrectangle($img,$margins,$margins,$img_width-1-$margins,$img_height-1-$margins,$background_color);
    
     
    	# ------- Max value is required to adjust the scale	-------
    	$max_value=max($values);
    	$ratio= $graph_height/$max_value;
    
     
    	# -------- Create scale and draw horizontal lines  --------
    	$horizontal_lines=20;
    	$horizontal_gap=$graph_height/$horizontal_lines;
    
    	for($i=1;$i<=$horizontal_lines;$i++){
    		$y=$img_height - $margins - $horizontal_gap * $i ;
    		imageline($img,$margins,$y,$img_width-$margins,$y,$line_color);
    		$v=intval($horizontal_gap * $i /$ratio);
    		imagestring($img,0,5,$y-5,$v,$bar_color);
    
    	}
     
     
    	# ----------- Draw the bars here ------
    	for($i=0;$i< $total_bars; $i++){ 
    		# ------ Extract key and value pair from the current pointer position
    		list($key,$value)=each($values); 
    		$x1= $margins + $gap + $i * ($gap+$bar_width) ;
    		$x2= $x1 + $bar_width; 
    		$y1=$margins +$graph_height- intval($value * $ratio) ;
    		$y2=$img_height-$margins;
    		imagestring($img,0,$x1+3,$y1-10,$value,$bar_color);
    		imagestring($img,0,$x1+3,$img_height-15,$key,$bar_color);		
    		imagefilledrectangle($img,$x1,$y1,$x2,$y2,$bar_color);
    	}
    	header("Content-type:image/png");
    	imagepng($img);
    
    ?>
  • Markus
    Recognized Expert Expert
    • Jun 2007
    • 6092

    #2
    You need the GD[1] extension to use that function.

    [1] http://www.php.net/manual/en/image.installation.php

    Comment

    • Raju B
      New Member
      • Aug 2010
      • 11

      #3
      thank you markus.
      Now problem is solved.

      Comment

      Working...