亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

用PHP創建動態圖形

2019-09-08 23:11:29
字體:
來源:轉載
供稿:網友
PHP有一個令人驚訝的能力――你可以利用它的服務器端腳本創建動態圖形。這項功能的基礎是GD庫,它是由Thomas Boutell設計的ANSI C庫,這個庫支持除.GIF文件之外的絕大多數常見圖形文件格式(不過該庫的設計者許諾當LZW專利在2004年7月7日到期后就立即添加.GIF支持)。

PHP4.3以及它的更高版本集成了GD庫。如果你使用的是老版本的PHP,你需要手工安裝圖形支持。這兒有許多與之有關的信息。


折線圖
為了演示如何用PHP創建動態圖形,我們建立一些自定義圖形。第一個例子是畫在網格上的折線圖,如圖A所示。

圖A
用PHP創建動態圖形500) this.width=500" vspace=10 border=0>



我們把這個頁面叫著grid.php(相關附件:清單A)。為了調用Web頁動態產生的圖形,你只需要訪問這個PHP頁,它將該圖形傳遞到瀏覽器。IMG元素可以很好的完成這項工作。下面是實現這個功能的例子代碼:

<imgsrc="grid.php" />

現在,我們開始編寫用于創建圖形的代碼。下面是grid.php中源代碼片斷:

<?
//添加圖形的值
$graphValues=array(0,80,23,11,190,245,50,80,111,240,55);



首先,我們定義圖形的值。在這個例子中,圖形值直接寫到代碼中的一個數組中,不過你可以很容易改寫代碼,讓代碼從XML文件、表格或者數據庫中獲取這些值。這些值的范圍從0到250(以象素為單位的圖形尺寸)。這些值將決定每個網格上線段的初始象素位置。如果你想使用數值0和100(用百分比表示),你只需把這些值乘以2.5來決定網格上的象素位置。

然后,我們發送一個PNG頭并定義圖像的高度和寬度:

// Define .PNG image
header("Content-type: image/png");
$imgWidth=250;
$imgHeight=250;



我們發送一個圖形頭來“欺騙”瀏覽器,使它認為我們的PHP頁面是一幅真正的圖像,這樣它才可以正確顯示在屏幕上。服務器將以二進制數據流的形式把程序產生的信息發送到瀏覽器。


PNG(Portable Network Graphic,便攜式網路圖形)標準是一種無損的圖形格式,它由于GIF的 LZW算法專利這一法律問題而在1995年提出來的。


現在,我們例化圖形對象并定義我們在圖形中用到的顏色:

//創建圖像、定義顏色
$image=imagecreate($imgWidth, $imgHeight);
$colorWhite=imagecolorallocate($image, 255, 255, 255);
$colorGrey=imagecolorallocate($image, 192, 192, 192);
$colorBlue=imagecolorallocate($image, 0, 0, 255);



我們設置白色背景,灰色畫框以及藍色折線。你可以通過創建新變量并賦不同的RGB值來輕松的修改或者添加顏色。

我們可以用imageline函數來創建灰色畫框,每次調用這個函數就畫一條線:

//創建圖像周圍的框
imageline($image, 0, 0, 0, 250, $colorGrey);
imageline($image, 0, 0, 250, 0, $colorGrey);
imageline($image, 249, 0, 249, 249, $colorGrey);
imageline($image, 0, 249, 249, 249, $colorGrey);



這里用到了二維的x/y象素坐標。Imageline函數中的每一對值指定了圖像的起點和終點。

為了實現網格線,我們在x坐標軸和y坐標軸上每隔25個象素畫一條灰線:

//創建網格
for ($i=1; $i<11; $i++){
imageline($image, $i*25, 0, $i*25, 250, $colorGrey);
imageline($image, 0, $i*25, 250, $i*25, $colorGrey);
}



位置(0,0)表示網格的左上角,位置(250,250)表示右下角。每個坐標軸等分為10格,每格寬度是25個象素,即250個象素(圖形的尺寸)。

為了創建折線圖,我們只需循環的取出數組中的坐標值,按坐標畫出每條線段的起點和終點:

//創建折線圖
for ($i=0; $i<10; $i++){
imageline($image, $i*25, (250-$graphValues[$i]), ($i+1)*25, (250-$graphValues[$i+1]), $colorBlue);
}



PHP將會自動在起點和終點之間填充藍線。在這個簡單的例子中只有10個值,但是擴展這個技術非常容易,如創建類似股指示意圖那樣的復雜圖形等等。

最后,我們需要把這個圖像輸出到瀏覽器并清空服務器中保存圖像的內存空間:

//輸出圖形并清楚內存中的圖像
imagepng($image);
imagedestroy($image);
?>




直方圖
把上面用于創建折線圖的基本程序修改后用于創建直方圖(如圖B所示)。

圖B
用PHP創建動態圖形500) this.width=500" vspace=10 border=0>


相關附件:清單B)這段程序與我們上面用來畫折線圖的代碼略有不同。Imagefilledrectangle函數創建兩種直方塊――深色的直方塊表示$graphValues數組中保存的值,而淺色直方塊則用于填充深色方塊之間的空隙:

//創建直方圖
for ($i=0; $i<10; $i++){
imagefilledrectangle($image, $i*25, (250-$graphValues[$i]), ($i+1)*25, 250, $colorDarkBlue);
imagefilledrectangle($image, ($i*25)+1, (250-$graphValues[$i])+1, (($i+1)*25)-5, 248, $colorLightBlue);
}



留心CPU的負荷
當你在服務器端創建這些圖形時,你需要仔細考慮這個問題:CPU負荷。如果你在Web端有太多這樣的動態圖片產生任務,你可能會發現導致性能下降。

更復雜的用法
本文所列舉的例子僅僅是個起點。如果你想得到有關PHP圖形庫的更多信息,請查看PHP手冊上的的圖形函數網頁。

英文版地址:http://builder.com.com/5100-6371-5092227.html
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人欧美一区二区三区在线| 亚洲欧美成人在线| 色偷偷综合社区| 欧美成人精品一区二区三区| 色与欲影视天天看综合网| 最近2019好看的中文字幕免费| 欧美激情免费在线| 国产在线观看精品一区二区三区| 久久影院资源网| 成人网中文字幕| 色狠狠av一区二区三区香蕉蜜桃| 亚洲精品一区中文字幕乱码| 久久人人爽人人爽爽久久| 国外日韩电影在线观看| 国产丝袜一区二区三区免费视频| 国产精品99久久久久久久久| 亚洲精品在线观看www| 高跟丝袜一区二区三区| 久久精品国产2020观看福利| 欧美成人中文字幕在线| 91av在线免费观看视频| 国产精品日韩在线观看| 日韩国产高清污视频在线观看| 国产精品日韩在线观看| 亚洲福利视频网| 国产一区二区久久精品| 日韩av中文字幕在线| 在线播放日韩专区| 欧洲美女免费图片一区| 成人激情视频小说免费下载| 中文字幕亚洲色图| 亚洲一区www| 国产精品久久久久久久久男| 成人妇女淫片aaaa视频| 亚洲视频在线观看| 久久久精品视频在线观看| 亚洲片av在线| 国产区精品视频| 国产精品久久久久久久app| 一二美女精品欧洲| 91国产精品91| 国产精品h在线观看| 欧美床上激情在线观看| 亚洲精品国产品国语在线| 91色在线观看| 国产精品都在这里| 亚洲一区二区黄| 国产在线观看一区二区三区| 精品久久国产精品| 成人a在线观看| 欧美自拍视频在线观看| 91精品国产综合久久香蕉的用户体验| 欧美精品在线视频观看| 国产成人av在线| 美女福利视频一区| 国产亚洲美女精品久久久| 午夜伦理精品一区| 欧洲亚洲女同hd| 8x海外华人永久免费日韩内陆视频| 亚洲一区二区在线| 日韩激情视频在线播放| 久久精品国产亚洲一区二区| 国产精品白嫩美女在线观看| 在线视频精品一| 国产精品久久久久久av| 国产高清视频一区三区| 日本高清视频一区| 色悠悠国产精品| 欧美成人一二三| 欧美成人免费在线视频| www.欧美精品| 中文字幕亚洲专区| 欧美激情视频一区二区| 亚洲aa在线观看| 亚洲第五色综合网| 国产精品久久久久久久久久新婚| 亚洲国产精品悠悠久久琪琪| 国产视频在线一区二区| 91在线精品视频| 亚洲一区二区三区视频| 欧美日韩激情视频| 国模叶桐国产精品一区| 精品视频中文字幕| 久久国产加勒比精品无码| 亚洲男人第一网站| 国产成人精品一区二区三区| 午夜精品福利视频| xvideos国产精品| 日韩精品在线观看网站| 这里只有精品在线观看| 久久久久久久久久久久久久久久久久av| 久久精品在线视频| 97国产精品视频人人做人人爱| 日韩电影免费观看在线| 日韩av影视在线| 国产成人综合久久| 亚洲免费视频观看| 日本a级片电影一区二区| 日韩在线免费av| 国产网站欧美日韩免费精品在线观看| 91伊人影院在线播放| 91在线色戒在线| 欧洲成人免费视频| 午夜精品免费视频| 97在线视频一区| 精品久久久精品| www.久久久久久.com| 8x海外华人永久免费日韩内陆视频| 欧美午夜激情视频| 亚洲男人天堂2024| 国产不卡在线观看| 成人h猎奇视频网站| 欧美午夜片欧美片在线观看| 欧美福利视频在线| 国产精品久久久久影院日本| 人人爽久久涩噜噜噜网站| 日韩av色在线| 亚洲欧美第一页| 欧美日韩性生活视频| 亚洲欧美一区二区三区在线| 欧美黄色www| 91精品国产综合久久久久久久久| 亚洲国产精品va在看黑人| 国产99视频精品免视看7| 国产97色在线| 在线a欧美视频| 日韩中文字幕在线观看| 欧美精品在线免费观看| 欧美日韩综合视频| 欧美精品久久久久久久久| 日韩黄色在线免费观看| 久久亚洲精品网站| 日韩欧美视频一区二区三区| 国产亚洲精品久久久| 欧美黄色免费网站| 亚洲电影免费观看高清完整版| 日韩电影第一页| 亚洲人精选亚洲人成在线| 亚洲成人久久网| 国产精品va在线| 国产一区二区三区视频免费| 亚洲精品v欧美精品v日韩精品| 亚洲精品二三区| 亚洲尤物视频网| 性色av一区二区三区红粉影视| 色婷婷久久av| 在线成人中文字幕| 国产视频精品一区二区三区| 亚洲综合自拍一区| 亚洲精品女av网站| 在线视频一区二区| 亚洲人成在线免费观看| 国产精品人成电影在线观看| 日韩欧美aⅴ综合网站发布| 国产精品久久久久久久久粉嫩av| 国产亚洲视频中文字幕视频| 91久久久久久久久久久| 欧美性视频在线| 亚洲视屏在线播放| 国产精品海角社区在线观看| 欧美xxxx14xxxxx性爽| 中文字幕精品一区二区精品| 色爱精品视频一区| 亚洲一区二区三区在线视频|