在php中,有一些簡單的圖像函數(shù)是可以直接使用的,但大多數(shù)要處理的圖像,都需要在編譯PHP時加上GD庫。
在常熟等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需策劃設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,成都全網(wǎng)營銷,外貿(mào)網(wǎng)站制作,常熟網(wǎng)站建設(shè)費用合理。
除了安裝GD庫之外,在PHP中還可能需要其他的庫,美蘭電腦培訓(xùn)認為這可以根據(jù)需要支持哪些圖像格式而定。
不同的GD版本支持的圖像格式不完全一樣,最新的GD庫版本支持GIF、JPEG、PNG、WBMP、XBM等格式的圖像文件,此外還支持一些如FreeType、Type1等字體庫。
通過GD庫中的函數(shù),可以完成各種點、線、幾何圖形、文本及顏色的操作處理,也可以創(chuàng)建或讀取多種格式的圖像文件。
在PHP中,通過GD庫處理圖像的操作都是先在內(nèi)存中處理,操作完成以后再以文件流的方式輸出到瀏覽器或保存在服務(wù)器的磁盤中。
創(chuàng)建一個圖像應(yīng)該完成如下所示4個基本步驟。
①創(chuàng)建畫布:所有的繪圖設(shè)計都需要在一個背景圖片上完成,而畫布實際上就是在內(nèi)存中開辟的一塊臨時區(qū)域,用于存儲圖像的信息。
以后的圖像操作都將基于這個背景畫布,該畫布的管理就類似于我們在畫畫時使用的畫布。
②繪制圖像:畫布創(chuàng)建完成以后,就可以通過這個畫布資源,使用各種畫像函數(shù)設(shè)置圖像的顏色、填充畫布、畫點、線段、各種幾何圖形,以及向圖像中添加文本等。
③輸出圖像:完成整個圖像的繪制以后,需要將圖像以某種格式保存到服務(wù)器指定的文件中,或?qū)D像直接輸出到瀏覽器上顯示給客戶。
但在圖像輸出之前,一定要使用header()函數(shù)發(fā)送Content-type通知瀏覽器,這次發(fā)送的是圖片不是文本。
④釋放資源:圖像被輸出以后,畫布中的內(nèi)容也不再有用。
出于節(jié)約系統(tǒng)資源的考慮,需要及時清楚畫布占用的所有內(nèi)存資源。
我們先來了解一下一個非常簡單的創(chuàng)建圖像腳本。
在下面的腳本文件image.php中,按前面介紹的繪制圖像的四個步驟,使用GD庫動態(tài)輸出一個扇形統(tǒng)計圖。
這是個2D的。
其中有一個自定義函數(shù),用于繪制餅圖,參數(shù)是一個鍵值對數(shù)組。
每項內(nèi)容是由數(shù)組定義的。你調(diào)入數(shù)據(jù)庫中的內(nèi)容后讀入數(shù)組即可。
前提是你當然要開啟GD擴展,要不是沒得畫得。呵。
?php
function pie2d($a) //創(chuàng)建自定義函數(shù)
{
$im=imagecreate(420,300); //建立圖像
$back=imagecolorallocate($im,255,255,200); //背景色
$color[]=imagecolorallocate($im,0,0,255); //定義10個顏色,可以最多處理10項
$color[]=imagecolorallocate($im,255,0,0);
$color[]=imagecolorallocate($im,0,255,0);
$color[]=imagecolorallocate($im,100,100,255);
$color[]=imagecolorallocate($im,255,0,255);
$color[]=imagecolorallocate($im,150,0,0);
$color[]=imagecolorallocate($im,0,0,150);
$color[]=imagecolorallocate($im,0,150,0);
$color[]=imagecolorallocate($im,0,0,0);
$color[]=imagecolorallocate($im,150,150,150);
$value_a=array_values($a); //獲取參數(shù)數(shù)組所有值到新數(shù)組
$all=array_sum($value_a); //統(tǒng)計新數(shù)組的和
$i=0; //循環(huán)標記
foreach($a as $key=$value) //遍歷數(shù)組
{
$angle[]=$value/$all*360; //獲取當前角度
$str=$key.":".round($value/$all*100,2)."%"; //需要輸出的內(nèi)容
imagestring($im,5,10,($i*20+10),$str,$color[$i]); //畫字符串
$i++; //標記自增
}
$s=0; //當前角度標記
$i=0;
foreach($angle as $temp) //遍歷所有項角度
{
imagefilledarc($im,285,150,240,120,$s,($s+$temp),$color[$i],4); //畫橢圓弧
//imagefillellipse();
$s=$s+$temp; //角度增加為當前角度
$i++;
}
imagepng($im); //輸出PNG
imagedestroy($im); //銷毀圖像
}
$arr=array(
"perfect"=1,
"excellent"=2,
"very good"=4,
"good"=1,
"not bad"=1,
"normal"=1,
"bad"=1,
"very bad"=1,
"god save me"=1,
"hell"=1
); //定義數(shù)組,數(shù)組內(nèi)容為選項內(nèi)容與選項數(shù)量的鍵值對
$re=pie2d($arr); //調(diào)用自定義函數(shù)
?
下載現(xiàn)成的gd庫,然后直接調(diào)用就可以了
也可以使用圖片類:
以wps2019工具為例,具體操作步驟如下所示:
一、打開電腦桌面,雙擊excel表格,如圖所示。
二、打開excel表格之后,點擊上方的插入選項卡,如圖所示。
三、選擇要制作成餅圖的數(shù)據(jù)表,然后點擊上方的圓形按鈕,如圖所示。
四、在彈出的菜單中,選擇第一個餅圖選項,如圖所示。
五、選擇之后,餅圖就生成了,如圖所示。