PHP GD 組件是一款功能強大、使用簡單的圖像處理組件。它可以用來創建各種類型的圖像,包括 JPG、PNG、GIF 等多種格式。PHP GD 組件非常適合用來生成驗證碼、處理圖片縮略圖、制作圖片水印等各種需要處理圖像的場景。
舉個例子來說,我們要制作一個帶有文字水印的縮略圖。假設原圖為一張寬度為 800px,高度為 600px 的圖片。我們需要將這張圖片縮小到寬 400px,高 300px,并在其上方添加一個 "by xxx" 的文字水印(xxx 為自己的名字)。下面是相應的 PHP 代碼:
// 讀取原圖,創建一個圖像對象 $source_img = imagecreatefromjpeg("path/to/image.jpg"); // 創建一個新圖像,用來做縮略圖 $thumb_img = imagecreatetruecolor(400, 300); // 生成縮略圖并存儲到新圖像中 imagecopyresampled($thumb_img, $source_img, 0, 0, 0, 0, 400, 300, 800, 600); // 在圖像上方添加一個文字水印 $watermark_text = "by xxx"; $font_size = 16; $font_color = imagecolorallocate($thumb_img, 255, 255, 255); $font_file = "path/to/font.ttf"; $font_height = imagettfbbox($font_size, 0, $font_file, $watermark_text)[1]; $text_x = imagesx($thumb_img) / 2 - strlen($watermark_text) * $font_size / 3; $text_y = $font_height + 5; imagettftext($thumb_img, $font_size, 0, $text_x, $text_y, $font_color, $font_file, $watermark_text); // 輸出生成的圖像 header("Content-type: image/jpeg"); imagejpeg($thumb_img);在這段代碼中,首先我們使用 imagecreatefromjpeg() 函數讀取原圖,創建了一個圖像對象。接著我們又用 imagecreatetruecolor() 函數創建了一個新的圖像對象,用來存儲生成的縮略圖。然后我們調用了 imagecopyresampled() 函數將原圖縮小到指定大小,并存儲到新的圖像對象中。 接下來我們使用 imagettfbbox() 函數獲取到添加水印文字的高度,并計算出水印文字的位置。然后再用 imagettftext() 函數在新圖像對象的上方添加水印文字。 最后,我們使用 imagejpeg() 函數將生成的縮略圖輸出到瀏覽器中。 除了制作縮略圖和添加水印之外,PHP GD 組件還可以用來創建驗證碼、生成二維碼、給圖像應用濾鏡等各種各樣的操作。如果你需要處理一些圖像相關的任務,PHP GD 組件是一個非常不錯的選擇。