PHP影像處理組件GD的常用函數總結——概述
PHP有一系列很強大的圖形處理函數,他們都統一包含在GD庫中,這些函數已經基本滿足了一個網路應用的常規影像處理要求,而且使用十分簡單。
而我們有好多搞PHP的朋友(包括我)都認為這些函數反正不是很常用,都懶的去研究或者瞭解這些函數了,而當要面臨影像處理方面的事情的時候,又很茫然,書道用時方恨少啊!
本系列這幾篇文章就是給大家歸納一下PHP的影像處理函數,不要求掌握,只希望能讓各位對這些函數有個大體印象,最起碼,有影像處理方面的討論或者問題的時候,心裡能想起這些函數,這樣大家在想解決方案的時候就能做到胸有成竹啦!廢話有點多!
本篇是開篇,所以先將一下和這些函數相關的GD庫,還有函數的分類,之後的文章將根據分類,來具體說。
PHP函數都是在GD庫中的,要想使用GD庫,PHP要開啟GD庫支援,由於考慮本系列文章面對的不是菜鳥所以,就不講如何開啟GD庫的支援啦。
PHP的影像處理函數大概分為幾類:
1.基本資料函數
主要是映像類型,映像寬高,庫版本等最基本的函數。
2.映像轉換函式
包含映像格式之間的相互轉換函式
3.映像建立和銷毀函數
包含映像各種建立映像的方式的函數還有銷毀影像處理相關資源的函數
4.畫圖操作函數
包含畫圖相關函數,如畫線,畫圓,畫方形等函數
5.映像操作函數
對映像進行一些效果處理的函數
6.映像設定函數
設定映像的一些參數,比如:畫線的寬度啊、映像是否透明啊、是否真彩啊等等
7.映像文字函數
在映像上寫字的一些函數
8.映像輸出函數
映像弄好了,總得輸出吧,這些函數就是用來輸出的,輸出到哪裡?瀏覽器、檔案等
開篇就講這些啦,接下來的幾篇就分類講這些函數啦。
PHP影像處理組件GD的常用函數總結——基本資料函數
基本資料函數主要有以下幾個:
gd_info
當前PHP環境GD庫的基本資料
imagetypes
支援的映像類型
getimagesize
擷取一個映像的大小
imagecolorat
取得映像的某個像素的色彩索引值
imagesx
取得映像寬度
imagesy
取得映像高度
下面就具體來講述啦!
gd_info
取得當前安裝的GD庫的資訊,返回數組
數組鍵含義:
GD Version
string 值。描述了安裝的 libgd 的版本。
Freetype Support
boolean 值。如果安裝了 Freetype 支援則為 TRUE。
Freetype Linkage
string 值。描述了 Freetype 串連的方法。取值可能為:'with freetype', 'with TTF library' 和 'with unknown library'。本單元僅在 Freetype Support 的值為 TRUE 時有定義。
T1Lib Support
boolean 值。如果包含有 T1Lib 支援則為 TRUE。
GIF Read Support
boolean 值。如果包含有讀取 GIF 映像的支援則為 TRUE。
GIF Create Support
boolean 值。如果包含有建立 GIF 映像的支援則為 TRUE。
JPG Support
boolean 值。如果包含有 JPG 支援則為 TRUE。
PNG Support
boolean 值。如果包含有 PNG 支援則為 TRUE。
WBMP Support
boolean 值。如果包含有 WBMP 支援則為 TRUE。
XBM Support
boolean 值。如果包含有 XBM 支援則為 TRUE。
如: 複製代碼 代碼如下:<?php
var_dump(gd_info());
?>
輸出為: 複製代碼 代碼如下:array(9) {
["GD Version"]=>
string(24) "bundled (2.0 compatible)"
["FreeType Support"]=>
bool(false)
["T1Lib Support"]=>
bool(false)
["GIF Read Support"]=>
bool(true)
["GIF Create Support"]=>
bool(false)
["JPG Support"]=>
bool(false)
["PNG Support"]=>
bool(true)
["WBMP Support"]=>
bool(true)
["XBM Support"]=>
bool(false)
}
imagetypes
返回當前 PHP 版本所支援的映像類型
原型:int imagetypes ( void )
本函數以位元欄位方式返回與當前 PHP 版本關聯的 GD 庫所支援的映像格式。將返回以下結果,IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP| IMG_XPM。
如:檢查是否支援 PNG 複製代碼 代碼如下:<?php
if (imagetypes() & IMG_PNG) {
echo "PNG Support is enabled";
}
?>
getimagesize
取得映像大小
原型:array getimagesize ( string filename [, array &imageinfo] )
測定任何GD庫支援的影像檔的大小並返回映像的尺寸以及檔案類型和一個可以用於普通 HTML 檔案中 <IMG> 標記中的 height/width 文本字串。
如果不能訪問 filename 指定的映像或者其不是有效映像,getimagesize() 將返回 FALSE 併產生一條 E_WARNING 級的錯誤。
返回一個具有四個單元的數組。
索引 0 包含映像寬度的像素值
索引 1 包含映像高度的像素值
索引 2 是映像類型的標記
1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。
這些標記與 PHP 4.3.0 新加的 IMAGETYPE 常量對應。
索引 3 是文本字串,內容為“height="yyy" width="xxx"”,可直接用於 IMG 標記。
imagecolorat
取得某像素的色彩索引值
原型:int imagecolorat ( resource image, int x, int y )
返回 image 所指定的圖形中指定位置像素的色彩索引值。
如果 PHP 編譯時間加上了 GD 庫 2.0 或更高的版本並且映像是真彩色映像,則本函數以整數返回該點的 RGB 值。
如,用移位加掩碼來取得紅,綠,藍各自成分的值: 複製代碼 代碼如下:<?php
$im = ImageCreateFromPng("rockym.png");
$rgb = ImageColorAt($im, 100, 100);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>
imagesx/imagesy
這兩個函數比較簡單,取得映像寬度/高度
原型如下:
int imagesx ( resource image )
int imagesy ( resource image )
返回 image 所代表的映像的寬度/高度。
轉載自 http://www.sourcejoy.com/