2016-02-25 29 views
1

我有以下代碼:PHP GD庫不能顯示圖片 - 餅圖

function show_pie_graph() { 
    include 'config.php'; 

    $values = $GLOBALS['value_array']; 
    $image_array = array(); 
    $full_width   = $PIE_GRAPH_CONFIG['width']; 
    $full_height  = $PIE_GRAPH_CONFIG['height']; 
    $size    = $PIE_GRAPH_CONFIG['size'];   


    for($j=0; $j<1;$j++) { 
     $years = $values[$j]; 

     $column_values = array('A' => $years['result_A'], 
           'B' => $years['result_B'], 
           'C' => $years['result_C'], 
           'D' => $years['result_D'], 
           'E' => $years['result_E'], 
           'FX' => $years['result_FX'], 
           'FN' => $years['result_FN']); 

     $num=count($column_values); 

     $percents; 
     $angles; 
     $angles[0]=0; 
     $percents[0]=NULL; 
     $sum_values = $column_values['A']; 
     $sum_values += $column_values['B']; 
     $sum_values += $column_values['C']; 
     $sum_values += $column_values['D']; 
     $sum_values += $column_values['E']; 
     $sum_values += $column_values['FX']; 
     $sum_values += $column_values['FN']; 

     $percents[1] = (int)round($column_values['A']/$sum_values*100); 
     $percents[2] = $percents[1]+(int)round($column_values['B']/$sum_values*100); 
     $percents[3] = $percents[2]+(int)round($column_values['C']/$sum_values*100); 
     $percents[4] = $percents[3]+(int)round($column_values['D']/$sum_values*100); 
     $percents[5] = $percents[4]+(int)round($column_values['E']/$sum_values*100); 
     $percents[6] = $percents[5]+(int)round($column_values['FX']/$sum_values*100); 
     $percents[7] = $percents[6]+(int)round($column_values['FN']/$sum_values*100); 


     //load percents array. First value is NULL 
     for ($c=1;$c<=$num;$c++) 
     { 
      $angles[$c]=(int)round((($percents[$c])/100)*360); 
     } 

     $angles[$num]=360; 

     //create image 
     $half=round($size/2); 
     $image = imagecreatetruecolor($size, $size); 

     // colors 
     $colorR=array(0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x74, 0x33, 0xFF, 0x33, 0x66); 
     $colorG=array(0x00, 0x80, 0x00, 0xA5, 0xFF, 0xFF, 0x99, 0x00, 0x33, 0xFF); 
     $colorB=array(0xFF, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xFF, 0x66, 0x99, 0x33); 

     $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF); 
     $black = imagecolorallocate($image, 0x00, 0x00, 0x00); 

     for($i=1;$i<count($angles);$i++) { 
      imagefilledarc($image, 50, 50, 100, 50, $angles[$i-1], $angles[$i], imagecolorallocate($image,$colorR[$i],$colorG[$i],$colorB[$i]), IMG_ARC_PIE); 
     } 
    } 
    // flush image 
    header('Content-type: image/png'); 
    imagepng($image); 
    imagedestroy($image); 
} 

百分比是權利(35,54,77,89,98,98,100)和角度太(126,194,277,320,353,353,360),但我當運行腳本,我什麼都看不到。 PHP腳本返回沒有錯誤。哪裏可以成爲問題?

回答

1

的問題是,你在你的百分比有353兩次:-)

更改第二個354,然後再試一次。如果你讓這樣的代碼:

#!/usr/local/bin/php -f 
<?php 
     $size=100; 
     $image = imagecreatetruecolor($size, $size); 

     // colors 
     $colorR=array(0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x74, 0x33, 0xFF, 0x33, 0x66); 
     $colorG=array(0x00, 0x80, 0x00, 0xA5, 0xFF, 0xFF, 0x99, 0x00, 0x33, 0xFF); 
     $colorB=array(0xFF, 0x00, 0x00, 0x00, 0x00, 0xD4, 0xFF, 0x66, 0x99, 0x33); 

     $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF); 
     $black = imagecolorallocate($image, 0x00, 0x00, 0x00); 
     $angles[0]=0; 
     $angles[1]=126; 
     $angles[2]=194; 
     $angles[3]=277; 
     $angles[4]=320; 
     $angles[5]=353; 
     $angles[6]=354; 
     $angles[7]=360; 

     for($i=1;$i<count($angles);$i++) { 
      $r=imagefilledarc($image, 50, 50, 100, 100, $angles[$i-1], $angles[$i], imagecolorallocate($image,$colorR[$i-1],$colorG[$i-1],$colorB[$i-1]), IMG_ARC_PIE); 
     } 

    imagepng($image,"result.png"); 
    imagedestroy($image); 
?> 

你會得到這樣的:

enter image description here