圖象函數_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的值是什麼,不過這個問題不是很大.
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.