PHP 解析PHP的GD庫

2022-05-02 23:27:12 字數 3767 閱讀 4465

官方文件:

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)

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

其中1代表支援的功能,空代表不支援。從上面也可以看到gd庫的版本資訊。

在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 檔案

<

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

>

verifycode.php 檔案

<?php 

//建立畫布

$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);

然後訪問 http://localhost/test/login.html

效果圖:

這裡的驗證碼很「規矩」,可以對上面的驗證碼拓展,比如漸變背景,干擾線,多種文字,文字旋轉,不同字型 等等。

玩轉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...