Heim >Backend-Entwicklung >PHP-Tutorial >贴段PHP画图的程序,给希望用PHP作图的朋友一点启发,帮助!_PHP

贴段PHP画图的程序,给希望用PHP作图的朋友一点启发,帮助!_PHP

WBOY
WBOYOriginal
2016-06-01 12:41:10902Durchsuche

主要包括三个文件:
1、view.php是调用程序。
2、chart.php是用来生成图表的程序。
3、gbtoutf8.php是用来中文解码的(注:已解决中英文混合不能正常显示的问题)

1、view.php

include("gbtoutf8.php");
?>


  



/*此处数据可从数据库中取得*/
$aStr = "IT,PC,Phone,Sever,Passport,Software";
$aSoft = "Win2000,Win98,Office,Foxmail,Outlook";
$aHard = gb2utf8("地板,窗户,玻璃,桌子,灯管,植被");
$title1 = gb2utf8('2002年IT维护report');
$title2 = gb2utf8('2002年软件维护report');
$title3 = gb2utf8('2002年固定资产report');
?>




    



    



    

 
 




2、chart.php
/*
*  功能:生成统计图表
*  程序员:wlxz
* 日期:2002-00-00
*/

Header("Content-type: image/png");
  $im = ImageCreate (350, 280);
  $col_oth = ImageColorAllocate($im, 0,0,0);
  $col_orn = ImageColorAllocate($im, 255,192,0);
  $col_yel = ImageColorAllocate($im, 255,255,0);
  $col_red = ImageColorAllocate($im, 255,0,0);
  $col_grn = ImageColorAllocate($im, 0,255,0);
  $col_blu = ImageColorAllocate($im, 0,0,255);
  $col_wit = ImageColorAllocate($im, 255,255,255);
  $col_array = array($col_oth, $col_orn, $col_yel, $col_red, $col_grn, $col_blu);

$dot1 = 28;
$dot2 = 20;
$font="c:/winnt/fonts/simhei.ttf";
$aStr = explode(",", trim($_GET['aStr']));
$title = trim($_GET['title']);

ImageTTFText($im,18,0,100,50,$col_wit,$font,$title);//写标题

  for($i=1;$i   ImageFilledRectangle($im,50*$i-$dot2,$dot1*$i,50*$i,200,$col_array[$i]);
  ImageRectangle($im,50*$i-$dot2,$dot1*$i,50*$i,200,$col_wit);
  ImageRectangle($im,50*$i-$dot2-1,$dot1*$i-1,50*$i+1,200,$col_wit);
  ImageTTFText($im,14,270,50*$i-15,205,$col_wit,$font,$aStr[$i-1]);
  
// ImageLine($im,50*$i-$dot2,$dot1*$i,50*$i-$dot2,200,$col_wit);
  ImageLine($im,50*$i-$dot2,$dot1*$i,50*$i,$dot1*$i,$col_wit);
  }
  ImageRectangle($im,10,10,300,200,$col_wit);
  ImageRectangle($im,11,11,301,201,$col_wit);

//右边百分比
  for($i=1;$i     ImageLine($im,300,$i*33,306,$i*33,$col_wit);
    $str = (100-$i*5)."%";
    ImageTTFText($im,14,0,315,$i*33+2,$col_wit,$font,$str);
  }

  ImagePNG($im);
  ImageDestroy($im);
?>

3.gbtoutf8.php

/*
*  功能:把GB2312编码转换成UTF-8的编码
*  程序员:wlxz
* 日期:2002-00-00
*/

function gb2utf8($gb){
    if(!trim($gb))
        return $gb;

    $filename="gb2312.txt";
    $tmp=file($filename);
    $codetable=array();
    
    while(list($key,$value)=each($tmp))
        $codetable[hexdec(substr($value,0,6))]=substr($value,7,6);
    
    $ret="";
    $utf8="";
    
    while($gb){
        if (ord(substr($gb,0,1))>127)
            {
            $this=substr($gb,0,2);
            $gb=substr($gb,2,strlen($gb));
            $utf8=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080]));

            for($i=0;$i                 $ret.=chr(substr($utf8,$i,3));
            }
            else{
                $ret.=substr($gb,0,1);
                $gb=substr($gb,1,strlen($gb));
                }
    }
    
    return $ret;
}

function u2utf8($c){
    for($i=0;$i         $str="";

    if ($c         $str.=$c;
    }
    else if ($c         $str.=(0xC0 | $c>>6);
        $str.=(0x80 | $c & 0x3F);
    }
    else if ($c         $str.=(0xE0 | $c>>12);
        $str.=(0x80 | $c>>6 & 0x3F);
        $str.=(0x80 | $c & 0x3F);
    }
    else if ($c         $str.=(0xF0 | $c>>18);
        $str.=(0x80 | $c>>12 & 0x3F);
        $str.=(0x80 | $c>>6 & 0x3F);
        $str.=(0x80 | $c & 0x3F);
    }
    
    return $str;
}


function gb2unicode($gb){
    if(!trim($gb))
        return $gb;
    
    $filename="gb2312.txt";
    $tmp=file($filename);
    $codetable=array();

    while(list($key,$value)=each($tmp))
        $codetable[hexdec(substr($value,0,6))]=substr($value,9,4);
    $utf="";
    while($gb){
        if (ord(substr($gb,0,1))>127){
            $this=substr($gb,0,2);
            $gb=substr($gb,2,strlen($gb));
            $utf.="".$codetable[hexdec(bin2hex($this))-0x8080].";";
            }
            else{
                $gb=substr($gb,1,strlen($gb));
                $utf.=substr($gb,0,1);
                }
    }
    return $utf;
}
?>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn