狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
国产精品一区不卡| 国产一在线精品一区在线观看| 亚洲蜜臀av乱码久久精品| **欧美大码日韩| xnxx国产精品| 久久久久99精品一区| 精品国产区一区| 精品国产一区二区精华| 精品粉嫩aⅴ一区二区三区四区| 欧美一区二区三区色| 日韩一区二区三区免费看| 玖玖玖国产精品| 91香蕉视频在线| 99免费精品视频| 亚洲一区中文日韩| 久久夜色精品一区| 欧美激情一区二区| 国产精品女同互慰在线看| 国产精品久久久久久久久久久免费看| 中文无字幕一区二区三区| 国产精品三级av| 亚洲激情网站免费观看| 亚洲第一成人在线| 免费成人美女在线观看| 国产精品资源在线看| av成人动漫在线观看| 狠狠入ady亚洲精品| 亚洲综合日韩| 欧美三级三级三级爽爽爽| 日韩精品一区国产麻豆| 国产精品美女久久久久aⅴ国产馆| 国产精品第13页| 午夜国产精品影院在线观看| 美女免费视频一区二区| 不卡av在线网| 日韩午夜免费视频| 欧美专区亚洲专区| 久久麻豆一区二区| 一区二区三区四区亚洲| 精品写真视频在线观看| 99国产一区二区三精品乱码| 国产欧美成人| 欧美精品v日韩精品v韩国精品v| 久久久91精品国产一区二区精品| 伊人婷婷欧美激情| 国产乱妇无码大片在线观看| 欧美日韩一区二区国产| 欧美性生活久久| 久久综合资源网| 日日夜夜精品视频免费| 成人av网站在线| 国产亚洲成人一区| 日韩精品一区二区三区蜜臀| 一区二区三区四区视频精品免费 | 日韩成人一级片| 成人av高清在线| 久久aⅴ国产紧身牛仔裤| 欧美成人a∨高清免费观看| 亚洲黄色免费网站| 成人午夜av在线| 久久久天天操| 国产精品无码永久免费888| 轻轻草成人在线| 国内视频精品| 日韩一级高清毛片| 视频在线在亚洲| 欧美三级不卡| 日韩一二三区视频| 日韩成人伦理电影在线观看| 欧美日韩四区| 91精品国产综合久久久蜜臀粉嫩| 亚洲视频在线一区观看| 成人性生交大合| 色婷婷亚洲精品| 亚洲欧美一区二区不卡| 不卡免费追剧大全电视剧网站| 久久国产精品高清| 中文一区二区在线观看| 成人激情黄色小说| 欧美猛男gaygay网站| 香蕉成人伊视频在线观看| 国产精品久久| 日韩免费高清电影| 久久国产精品无码网站| 羞羞答答国产精品www一本| 国产精品久久国产精麻豆99网站| 丁香桃色午夜亚洲一区二区三区| 91精彩视频在线观看| 亚洲一区影音先锋| 亚洲日本黄色| 国产精品美女久久久久久久| 99精品国产99久久久久久白柏| 欧美一区二区三区免费视频| 久久精品久久久精品美女| 噜噜噜躁狠狠躁狠狠精品视频| **性色生活片久久毛片| 黄色成人在线网址| 国产精品久久久久久久蜜臀| av成人免费在线观看| 欧美电视剧在线看免费| 国产精品一区二区三区乱码| 欧美人妇做爰xxxⅹ性高电影| 丝袜亚洲另类欧美综合| 蜜桃久久精品乱码一区二区| 丝袜a∨在线一区二区三区不卡| 亚洲一区综合| 五月婷婷激情综合网| 狂野欧美性猛交xxxx巴西| 亚洲国产cao| 久久先锋资源| 轻轻草成人在线| 欧美日韩另类国产亚洲欧美一级| 久久精品72免费观看| 欧美日本一区二区| 国产精品18久久久久久久久 | 欧美性猛交xxxxxx富婆| 久久成人精品无人区| 欧美精品久久一区二区三区| 国产成人鲁色资源国产91色综| 日韩精品中文字幕一区 | 欧美色精品天天在线观看视频| 精久久久久久久久久久| 日韩美女一区二区三区| 91麻豆国产福利精品| 最新日韩av在线| 国产精品综合| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美日韩夫妻久久| 成人高清免费观看| 中文文精品字幕一区二区| 亚洲乱亚洲高清| 日韩高清一级片| 欧美成人精精品一区二区频| 欧美日韩免费观看一区| 午夜视频一区在线观看| 欧美精品乱码久久久久久| 欧美一区二区三区在线播放 | 久久久久久99精品| 国产欧美91| 国产伦精品一区二区三区免费| 精品国产免费人成电影在线观看四季| 欧美日本亚洲| 日韩福利视频导航| 精品99一区二区三区| 99精品视频免费观看| 精品一二三四在线| 久久精品一区二区三区不卡牛牛 | 日韩精品影音先锋| 午夜亚洲一区| av在线不卡免费看| 亚洲成av人片| 久久久久综合网| 久久国产精品一区二区三区| 成人av在线观| 午夜久久久久久久久久一区二区| 日韩欧美电影在线| 国产精品日本一区二区| 国产69精品久久久久毛片| 亚洲欧美偷拍卡通变态| 91精品国产综合久久精品麻豆 | 国产欧美综合色| 91成人看片片| 在线精品亚洲一区二区| 国产剧情一区二区| 一区二区三区在线免费播放 | 成人av在线电影| 五月婷婷激情综合网| 欧美国产日本韩| 91精品国产综合久久久久久久 | 欧美一区二区视频在线观看2020| 在线电影一区| 成人教育av在线| 秋霞午夜鲁丝一区二区老狼| 国产精品视频第一区| 欧美一区二区观看视频| 久久久久久久久久码影片| 欧美日韩一区在线视频| 粉嫩av一区二区三区粉嫩| 日韩不卡一区二区三区| 亚洲天堂精品视频| 久久综合色一综合色88| 91精品国产色综合久久不卡蜜臀| 久久精品盗摄| aa成人免费视频| 欧美视频观看一区| 99国产麻豆精品| 国产成人精品三级麻豆| 精品一区二区三区在线观看国产 | 欧美日韩一卡| 97国产一区二区| 成人免费三级在线| 国产一区美女在线| 久久精品国产精品亚洲红杏| 亚洲成在人线在线播放| 亚洲乱码国产乱码精品精可以看| 国产精品毛片久久久久久| 久久精品日产第一区二区三区高清版 | 色综合天天综合狠狠| www.成人在线| kk眼镜猥琐国模调教系列一区二区 |