狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

用PHP創建動態圖形

用PHP創建動態圖形

更新時間:2024-04-12 文章作者:未知 信息來源:網絡 閱讀次數:

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

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


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

圖A




我們把這個頁面叫著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



(相關附件:清單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

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
国产精品久久久久久妇女6080| 久久精品国产亚洲一区二区三区| 久久午夜免费电影| 91麻豆精品国产91久久久久久| 欧美综合久久久| 在线观看亚洲专区| 欧美在线视频全部完| 欧美性淫爽ww久久久久无| 色噜噜狠狠色综合中国| 色哦色哦哦色天天综合| 欧美偷拍一区二区| 这里只有精品视频在线观看| 欧美精品一二三四| 日韩一级黄色大片| 国产日韩精品一区二区三区 | 天天操天天干天天综合网| 亚洲国产三级在线| 蜜臀久久久久久久| 国产福利一区在线| 91网页版在线| av不卡在线看| 在线观看亚洲a| 日韩精品综合一本久道在线视频| 2021中文字幕一区亚洲| 中文字幕一区二区三区精华液 | 六月丁香婷婷久久| 国产99精品国产| 亚洲视频高清| 在线免费观看视频一区| 日韩美女主播在线视频一区二区三区| 亚洲精品在线三区| 日韩一区在线看| 免费观看日韩电影| 99久久精品久久久久久清纯| 亚洲精品韩国| 7777精品伊人久久久大香线蕉超级流畅| 337p日本欧洲亚洲大胆色噜噜| 亚洲欧美日韩中文播放| 日韩av中文在线观看| 成人aa视频在线观看| 亚洲毛片视频| 日韩视频在线你懂得| 最新国产精品久久精品| 久久成人久久爱| 欧美日韩一区二区三区在线视频| 久久久99国产精品免费| 日韩免费视频线观看| 亚洲精品视频自拍| 国产在线视视频有精品| 亚洲国产精品123| 欧美日韩不卡在线| 亚洲日本va在线观看| 国产精品香蕉一区二区三区| 激情文学一区| 日韩欧美一级二级| 亚洲一区视频在线| 99re6这里只有精品视频在线观看| 国产精品有限公司| 2023国产精华国产精品| 久久精品免费看| 亚洲人妖在线| 精品国产1区2区3区| 日本欧美一区二区| 亚洲国产精品123| 精品伦理精品一区| 美女视频黄频大全不卡视频在线播放| 国产精品v欧美精品∨日韩| 欧美日韩国产乱码电影| 亚洲在线视频一区| 欧美日韩国产探花| 欧美成人性福生活免费看| 日本aⅴ亚洲精品中文乱码| 亚洲大片在线| 国产日韩欧美不卡在线| 国产盗摄女厕一区二区三区| 久久综合伊人| 亚洲毛片av在线| 国产精品videosex极品| 精品久久久久久久久久久久久久久 | 中文字幕在线不卡一区| thepron国产精品| 制服丝袜成人动漫| 日韩av不卡在线观看| 国产麻豆综合| 一区二区三区日韩欧美| 欧美久久久久久久| 国产亚洲女人久久久久毛片| 粉嫩蜜臀av国产精品网站| 欧洲av在线精品| 免费的国产精品| 色av综合在线| 青椒成人免费视频| 久久综合伊人| 捆绑紧缚一区二区三区视频 | 中文字幕国产一区| 欧美人与禽猛交乱配视频| 久久久久久久网| 99久久久久久| 国产视频一区二区三区在线观看| 99久久99精品久久久久久| 精品日韩成人av| 91丨porny丨首页| 国产女同性恋一区二区| 欧美xx69| 亚洲欧洲精品天堂一级| 国产亚洲在线| 肉丝袜脚交视频一区二区| 麻豆久久久9性大片| 麻豆91在线播放免费| 欧美精品自拍偷拍动漫精品| 国产精品一区二区三区网站| 欧美一区日本一区韩国一区| 国产99久久久国产精品免费看| 精品国产三级a在线观看| 91在线视频观看| 亚洲精品视频一区二区| 色综合久久九月婷婷色综合| 六月婷婷色综合| 精品国产1区2区3区| 欧美人成在线| 午夜a成v人精品| 在线综合+亚洲+欧美中文字幕| 成人丝袜高跟foot| 中文字幕在线观看不卡| 色综合av在线| 成人精品在线视频观看| 国产精品久久久久7777按摩| 亚洲影视综合| 国产一区二区中文字幕| 国产午夜精品一区二区三区视频| 亚洲动漫精品| 极品销魂美女一区二区三区| 久久久久国产精品麻豆ai换脸 | 99精品视频免费观看| 久久精品国产第一区二区三区| 精品国产三级a在线观看| 亚洲国产第一| 激情六月婷婷综合| 国产精品天天看| 91久久精品一区二区| 99久久精品免费精品国产| 亚洲一区中文在线| 欧美一级精品在线| 永久域名在线精品| 国产精品一区二区久激情瑜伽| 国产日韩欧美a| 久久综合九色综合欧美狠狠| www..com久久爱| 亚洲成a人v欧美综合天堂下载 | 国产精品高清亚洲| 欧美日韩中文字幕精品| 国产精品99一区二区| 九一久久久久久| 亚洲欧美在线另类| 欧美一级视频精品观看| 亚洲一区二区三区色| aaa欧美色吧激情视频| 视频一区中文字幕| 国产精品人人做人人爽人人添| 欧美日韩精品专区| 在线视频国内自拍亚洲视频| 国产丶欧美丶日本不卡视频| 一区二区激情小说| 国产校园另类小说区| 欧美另类高清zo欧美| 国产一区二区三区的电影| 91在线视频在线| 国产美女精品在线| 午夜电影久久久| 综合激情成人伊人| 精品少妇一区二区三区免费观看 | 国产在线精品一区二区夜色| 夜夜夜精品看看| 欧美激情一区二区三区蜜桃视频| 欧美日韩精品是欧美日韩精品| 国产一区二区高清视频| 欧美一区二区三区在线免费观看 | 久久野战av| 亚洲精品自在在线观看| 欧美激情第8页| 99这里只有久久精品视频| 狠狠狠色丁香婷婷综合激情 | 精品成人国产| 91视视频在线观看入口直接观看www | 欧美一区视频| 日本vs亚洲vs韩国一区三区| 亚洲免费观看视频| 久久综合999| 7878成人国产在线观看| 久久综合中文| 香蕉成人久久| 国产乱码精品一区二区三区不卡| 欧美国产专区| 欧美呦呦网站| 91丨九色丨国产丨porny| 成人av在线资源| 高清beeg欧美| 成人午夜免费视频| 欧美国产精品中文字幕| 欧美日韩高清在线|