圖象函數_PHP
來源:互聯網
上載者:User
關鍵字
函數
圖象
描述
映像
顏色
一個
PHP中有一組映像函數,可以動態產生gif格式的映像資料流並輸出到伺服器. 為了這組函數能夠工作,系統中必須有gd庫的支援.如果是在Unix下, 應該在編譯PHP之前先取得gd的源碼並編譯之,產生libgd.a和一些.h檔案,分別拷到系統的庫目錄和標頭檔目錄中(例如/usr/lib和/usr/include);如果是在Windows下,PHP3.0的安裝程式會安裝一個gd.dll檔案,在程式中加一句'dl("gd.dll");'即可使用映像函數.
主要的映像函數有:
(1)ImageCreate(寬度,高度)
返回一個映像描述符.
(2)ImageCreateFromGif(檔案名稱);
返回一個映像描述符.
(3)ImageColorAllocate(映像描述符,紅,綠,藍);
返回一個顏色描述符.由於Gif映像只能有256色,必須先對它分配調色盤, 這個語句就是分配一個調色盤項.
(4)ImageColorTransparent(映像描述符,顏色描述符);
指定某顏色為透明色.
(5)ImageArc(映像描述符,圓心橫座標,圓心縱座標,橢圓寬,橢圓高,起始角,終止角,顏色描述符);
ImageChar(映像描述符,字型,x,y,字元,顏色描述符);
ImageCharUp(映像描述符,字型,x,y,字元,顏色描述符);
ImageCopyResized(靶心圖表像描述符,源映像描述符,目標x,目標y,源x,源y,目標寬,目標高,源寬,源高);
ImageDashedLine(映像描述符,x1,y1,x2,y2,顏色描述符);
ImageFill(映像描述符,起始點x,起始點y,顏色描述符);
ImageFilledPolygon(映像描述符,各頂點數組,頂點數,顏色描述符);
ImageFilledRectangle(映像描述符,x1,y1,x2,y2,顏色描述符);
ImageFillToBorder(映像描述符,起始點x,起始點y,邊界色,填充色);
ImageLine(映像描述符,x1,y1,x2,y2,顏色描述符);
ImagePolygon(映像描述符,各頂點數組,頂點數,顏色描述符);
ImageRectangle(映像描述符,x1,y1,x2,y2,顏色描述符);
ImageSetPixel(映像描述符,x,y,顏色描述符);
ImageString(映像描述符,字型,x,y,字串,顏色描述符);
ImageStringUp(映像描述符,字型,x,y,字串,顏色描述符);
這些都是畫圖函數,需要略做解釋的就是多邊形的頂點數組內依次存放著第一點x,第一點y,第二點x,第二點y,...
(6)ImageLoadFont(檔案名稱);
檔案應該是一個位元影像字型檔,返回一個字型號.系統預設帶有1-5字型號, 可以直接使用.
(7)ImageSX,ImageSY
分別得到一個映像的寬度和高度,接收一個映像描述符參數.
(8)ImageColorAt(映像描述符,x,y);
ImageColorClosest(映像描述符,紅,綠,藍);
ImageColorExact(映像描述符,紅,綠,藍);
ImageColorSet(映像描述符,顏色描述符,紅,綠,藍);
ImageColorsForIndex(映像描述符,顏色描述符);
ImageColorsTotal(映像描述符);
前三個返回一個顏色描述符.ImageColorExact如果找不到匹配則返回-1.
ImageColorsForIndex返回一個三項的數組,元素分別是紅,綠,藍值.
ImageColorsTotal返回總顏色數.
(9)ImageFontHeight,ImageFontWidth
接收一個字型號作為參數.
(10)ImageGif(映像描述符,[檔案名稱]);
如無檔案名稱,則將gif資料流送往瀏覽器.這時程式一開始應該有一句: Header("Content-type: image/gif")
(11)ImageDestroy(映像描述符);
映像函數中有一個小Bug(至少在PHP3.0RC和PHP3.0RC3 For Unix的源碼中已經發現,現在www.php.net上的下載檔案應該已經更改),就是ImageSetPixel總是在(y,y)處畫點,不管x的值是什麼,不過這個問題不是很大.