1. 程式人生 > >PHP動態圖像處理

PHP動態圖像處理

水印 繪圖 使用 瀏覽器 總數 mime 區別 gif 驗證碼

PHP中的GD庫的使用

在PHP中,通過GD庫處理圖像,大致的形式就是現在內容裏面生成圖像, 然後繪制圖像,最後輸出到瀏覽器或者將其保存到服務器的磁盤上。

創建一個圖片大致的步驟如下:

  1. 創建畫布

所有的繪圖都需要在一個畫布上面進行繪制。所謂創建畫布,事實上就是在內存裏面開辟一個區域,用來存儲圖像的信息的

  1. 繪制圖像

畫布創建完之後,可以通過這個畫布資源,使用各種畫像函數來設置圖像的顏色,填充畫布,畫點,畫線,添加文本等

  1. 輸出圖像

完成整個圖像的繪制以後,需要將圖像以某種格式保存到服務器指定的下面,或者將其直接輸出到瀏覽器上面,不需要保存。在輸出圖像之前,一定要使用header()函數來設置MIME信息,通知瀏覽器這次發送的是上面文件

  1. 釋放資源

圖像被輸出以後,畫布中的內容也就沒用了,所以我們需要釋放所占有的資源,節約內容

關於使用PHP動態生成圖像,一般不會用來生成很復雜的圖片。一般就是用來生成簡單的圖片:驗證碼,給圖片加水印

創建畫布

如果想要動態繪制圖像,首先就必須要有畫布。創建畫布的過程事實上就是在內存中開辟一個區域。

在PHP裏面創建畫布有兩個函數:

imagecreate(寬,高):新建一幅指定寬高的基於調色板的畫布

imagecreatetruecolor(寬,高):新建一幅真彩色的畫布

兩個函數創建的畫布基本上是一樣的,唯一的區別在於容納顏色的數量不一樣。真彩色所能容納的顏色總數要多一些。但是真彩色也有一個缺點:不能用於GIF文件格式

創建畫布示例:

繪制圖像

在繪制圖像之前,我們需要創建顏色,然後才能通過相應的顏色進行繪畫。這裏創建顏色我們可以理解為創建顏料的過程,需要什麽顏色,就創建什麽顏色即可。

PHP裏面創建顏色的函數為:

imagecolorallocate(圖像資源,紅值,綠值,藍值)

PHP動態圖像處理