標籤:
GD庫簡介
GD指的是Graphic Device,PHP的GD庫是用來處理圖形的擴充庫,通過GD庫提供的一系列API,可以對映像進行處理或者直接產生新的圖片。
PHP除了能進行文本處理以外,通過GD庫,可以對JPG、PNG、GIF、SWF等圖片進行處理。GD庫常用在圖片加浮水印,驗證碼產生等方面。
PHP預設已經整合了GD庫,只需要在安裝的時候開啟就行。
header("content-type: image/png");$img=imagecreatetruecolor(100, 100);$red=imagecolorallocate($img, 0xFF, 0x00, 0x00);imagefill($img, 0, 0, $red);imagepng($img);imagedestroy($img);
繪製線條
要對圖形進行操作,首先要建立一個畫布,通過imagecreatetruecolor函數可以建立一個真彩色的空白圖片:
$img = imagecreatetruecolor(100, 100);
GD庫中對於畫筆所用的顏色,需要通過imagecolorallocate函數進行分配,通過參數設定RGB的顏色值來確定畫筆的顏色:
$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);
然後我們通過調用繪製線段函數imageline進行線條的繪製,通過指定起點跟終點來最終得到線條。
imageline($img, 0, 0, 100, 100, $red);
線條繪製好以後,通過header與imagepng進行映像的輸出。
header("content-type: image/png");imagepng($img);
最後可以調用imagedestroy釋放該圖片佔用的記憶體。
imagedestroy($img);
通過上面的步驟,可以發現PHP繪製圖形非常的簡單,但很多時候我們不只是需要輸出圖片,可能我們還需要得到一個圖片檔案,可以通過imagepng函數指定檔案名稱將繪製後的映像儲存到檔案中。
imagepng($img, ‘img.png‘);
在映像中繪製文字
GD庫可以進行多種圖形的基本操作,常用的有繪製線條,背景填充,畫矩形,繪製文字等。
跟繪製線條類似,首先需要建立一個圖片與初始化顏色。
$img = imagecreatetruecolor(100, 100);$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);
然後使用imagestring函數來進行文字的繪製,這個函數的參數很多:imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col ),可以通過$font來設定字型的大小,x,y設定文字顯示的位置,$s是要繪製的文字,$col是文字的顏色。
imagestring($img, 5, 0, 0, "Hello world", $red);header("content-type: image/png");imagepng($img);imagedestroy($img);
輸出影像檔
前面我們已經瞭解到,通過imagepng可以直接輸出映像到瀏覽器,但是很多時候,我們希望將處理好的映像儲存到檔案,以便可以多次使用。通過指定路徑參數將映像儲存到檔案中。
$filename = ‘img.png‘;imagepng($img, $filename);
使用imagepng可以將映像儲存成png格式,如果要儲存成其他格式需要使用不同的函數,使用imagejpeg將圖片儲存成jpeg格式,imagegif將圖片儲存成gif格式,需要說明的是,imagejpeg會對圖片進行壓縮,因此還可以設定一個品質參數。
$filename = ‘img.jpg‘;?imagejpeg($img, $filename, 80);
16/7/11_PHP-GD庫介紹