PHP GD庫是一個可以處理圖片的庫,它可以創建、讀取和編輯圖片,生成圖片類型是jpeg、png和gif。使用GD庫,我們可以用PHP編寫程序動態生成圖片并將其顯示在網頁中或者下載圖片到本地。在使用GD庫之前,我們需要確認服務器是否支持GD庫,并且已經安裝和開啟了GD庫擴展。
接下來我們來看幾個示例:
// 創建畫布,并設置畫布大小和顏色 $width = 200; $height = 100; $image = imagecreatetruecolor($width, $height); $bgColor = imagecolorallocate($image, 255, 255, 255); imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); // 設置文本和字體樣式 $text = 'Hello, PHP GD庫!'; $fontFile = './arial.ttf'; $fontSize = 14; $fontColor = imagecolorallocate($image, 255, 0, 0); // 將文本寫入畫布 imagettftext($image, $fontSize, 0, 10, 50, $fontColor, $fontFile, $text); // 輸出圖像 header('Content-Type: image/png'); imagepng($image); imagedestroy($image);
以上代碼會生成一個大小為200x100的畫布,將純白色填充整個畫布,并在畫布中央顯示一段紅色的文本。其中,使用了如下函數:
imagecreatetruecolor()
:創建畫布并設置大小。imagecolorallocate()
:為畫布分配顏色。imagefilledrectangle()
:使用指定顏色填充矩形區域。imagettftext()
:將 TrueType 字體的文本寫入畫布。header()
:設置 HTTP 頭信息。imagepng()
:輸出 PNG 圖像。imagedestroy()
:銷毀畫布。
接下來,我們來看如何生成驗證碼圖片:
// 生成驗證碼文本 $code = ''; for ($i = 0; $i< 4; $i++) { $code .= chr(rand(65, 90)); } // 創建畫布,并設置畫布大小和顏色 $width = 120; $height = 40; $image = imagecreatetruecolor($width, $height); $bgColor = imagecolorallocate($image, 255, 255, 255); imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); // 創建一條干擾線 $lineColor = imagecolorallocate($image, 0, 0, 0); imageline($image, 10, rand(0, $height), $width - 10, rand(0, $height), $lineColor); // 創建多個干擾點 for ($i = 0; $i< 50; $i++) { imagesetpixel($image, rand(0, $width), rand(0, $height), $lineColor); } // 將驗證碼寫入畫布 $fontFile = './arial.ttf'; $fontSize = 20; $fontColor = imagecolorallocate($image, 0, 0, 0); imagettftext($image, $fontSize, 0, 10, 28, $fontColor, $fontFile, $code); // 輸出圖像 header('Content-Type: image/png'); imagepng($image); imagedestroy($image);
以上代碼會生成一個大小為120x40的畫布,將純白色填充整個畫布,生成一條干擾線和多個干擾點,并在畫布中央顯示一個隨機的驗證碼字符串。其中,使用了如下函數:
imageline()
:在兩個點之間畫一條線。imagesetpixel()
:在指定位置繪制一個點。
PHP GD庫可以生成更多樣式的圖片,例如生成縮略圖、添加水印、處理透明圖片等等。我們可以通過簡單的PHP編程來實現這些功能,為網站添加更多有趣的功能和更美的界面。