官方文件:
php可以建立和操作多種不同格式的影象檔案。php提供了一些內建的影象資訊函式,也可以使用gd函式庫建立和處理已有的函式庫。目前gd2庫支援gif、jpeg、png和wbmp等格式。此外還支援一些freetype、type1等字型庫。
首先要在php的配置檔案(php.ini)中開啟php_gd2的擴充套件
如果有其他的整合軟體,可以直接勾選上php_gd2。筆者使用的wampserver,就可以直接勾選上php的php_gd2擴充套件:
通常情況下,php_gd2擴充套件預設是開啟的。
通過gd_info()獲得有關gd的詳細資訊
<?php輸出結果:$gdinfoarr =gd_info();
foreach($gdinfoarr
as$e => $v
)?>
gd version = bundled (2.1.0 compatible)其中1代表支援的功能,空代表不支援。從上面也可以看到gd庫的版本資訊。freetype support = 1
freetype linkage = with freetype
t1lib support =
gif read support = 1
gif create support = 1
jpeg support = 1
png support = 1
wbmp support = 1
xpm support = 1
xbm support = 1
在php中建立乙個影象通常應該完成4步:
1.建立乙個背景影象(也叫畫布),以後的操作都是基於該影象
2.在背景上繪製影象資訊
3.輸出影象
4.釋放資源
<?php輸出結果如下://1. 建立畫布
$im = imagecreatetruecolor(200, 200); //
建立空白背景
$white = imagecolorallocate ($im, 255, 255, 255); //
設定繪圖顏色
$blue = imagecolorallocate ($im, 0, 0, 64);
//2. 開始繪畫
imagefill($im, 0, 0, $blue); //
繪製背景
imageline($im, 0, 0, 200, 200, $white); //
畫線 imagestring($im, 4, 50, 150, 'sales', $white); //
新增字串
//3. 輸出影象
header('content-type: image/png');
imagepng (
$im); //
以 png 格式將影象輸出
//4. 釋放資源
imagedestroy($im
);
?>
上面我們已經了知道了gd庫的基本使用,下面顯示驗證碼功能
login.html 檔案
<verifycode.php 檔案html
>
<
head
>
<
title
> login
title
>
head
>
<
body
>
<
div>
<
div><
span
>username:
span
><
span
><
input
type
="text"
/>
span
>
div>
<
div><
span
>password:
span
><
span
><
input
type
="password"
>
span
>
div>
<
div>
<
span
>verify:
span
>
<
span
><
input
type
="text"
/>
span
>
<
span
><
img
alt="img"
src="verifycode.php"
>
span
>
div>
<
div>
<
input
type
="submit"
value
="submit"
>
div>
div>
body
>
html
>
<?php然後訪問 http://localhost/test/login.html//建立畫布
$im = imagecreatetruecolor(80, 40);
//建立畫筆
$red = imagecolorallocate ($im, 255,0,0);
$black = imagecolorallocate ($im, 0, 0, 0);
//將整個畫布鋪為紅色
imagefill($im, 0, 0, $red
);$verify = "";
dowhile( strlen($verify) < 4);
$_session["verifycode"] = $verify;//
將值儲存到session變數中
$font = 'arial.ttf';
imagettftext(
$im, 20, 0, 10,30, $black,$font,$verify);//
將驗證碼繪製到畫布上
header('content-type: image/png');
imagepng (
$im); //
以 png 格式將影象輸出
//釋放資源
imagedestroy($im);
效果圖:
這裡的驗證碼很「規矩」,可以對上面的驗證碼拓展,比如漸變背景,干擾線,多種文字,文字旋轉,不同字型 等等。
玩轉PHP的GD庫
1 漢字驗證碼 通常的 驗證碼都喜歡使用數字或者字元的組合的形式,但對於某些有價值的 服務中,可能需要更 為嚴格的驗證碼。例如163郵箱惡意註冊驗證 qq號申請驗證都不同程度使用漢字認證。利用php的gd庫,幾行 輕鬆搞定,若果輸出漢字或者特殊字 符,需要您提供ttf字型檔。效果如下 如下 定義輸出...
玩轉PHP的GD庫
php中的gd庫,主要是提供了一組php圖形處理的函式,功能很強大,可以做出很炫的效果。在web2.0應用中,或多或少都會碰到。所以你在應聘web2.0 php工程師的時候,經常會被問到gd庫。其實,php中的gd庫函式比較簡單,你大體清楚它們的功能就可以了,我提供了幾個小例子幫助你記憶和理解。1 ...
php的gd模組 如何在PHP中開啟GD庫支援
注意 akcms已於2019年12月27日宣布停止更新,此文件僅供老使用者參考,不建議新使用者選擇akcms建站。注意 akcms6.1.2已取消授權機制,文件中關於授權 服務 技術支援等的內容均已失效。linux下開啟php的gd庫支援 開啟gd庫支援有以下幾種方法 檢測gd庫是否安裝命令 php...