日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
PHP繪制圖像
在 php 中繪制圖像的函數(shù)非常豐富,包括點(diǎn)、線、各種幾何圖形等可以想象出來(lái)的平面圖形,都可以通過(guò) PHP 中提供的各種畫(huà)圖函數(shù)完成。無(wú)論是多么復(fù)雜的圖形都是在這些最基本的圖形基礎(chǔ)上進(jìn)行深化的,只有掌握了最基本圖形的繪制方法,才能夠繪制出各種具有獨(dú)特風(fēng)格的圖形。

使用 PHP 繪制一個(gè)圖像通常需要以下 4 個(gè)步驟:

  • 創(chuàng)建一個(gè)背景圖像,以后所有操作都是基于此背景;
  • 在圖像上繪圖輪廓或者輸入文本;
  • 輸出最終圖形;
  • 清除內(nèi)存中所有資源。

繪制圖形函數(shù)都需要使用畫(huà)布資源,并在畫(huà)布中的位置通過(guò)坐標(biāo)(原點(diǎn)是該畫(huà)布左上角的起始位置,以像素為單位,沿著 X 軸正方向向右延伸,Y 軸正方向向下延伸)決定,而且還可以通過(guò)函數(shù)中的最后一個(gè)參數(shù),設(shè)置每個(gè)圖形的顏色。畫(huà)布中的坐標(biāo)系統(tǒng)如下所示。



圖:使用 PHP 繪制圖像的坐標(biāo)

1、區(qū)域填充

區(qū)域填充不可以用來(lái)繪制圖像,但它可以將一個(gè)已存在圖像的顏色替換為其它顏色。在 PHP 中通過(guò) imagefill() 函數(shù)來(lái)執(zhí)行區(qū)域填充,它的語(yǔ)法格式如下所示:

imagefill(resource $image, int $x, int $y, int $color)

其中,$image 為創(chuàng)建的圖像資源;$x 和 $y 為要設(shè)置顏色的橫縱坐標(biāo);$color 為要設(shè)置的顏色。

imagefill() 會(huì)將與坐標(biāo)(x,y)相鄰的顏色替換為 $color 設(shè)置的顏色。

【示例】使用 imagefill() 函數(shù)將一張圖片某個(gè)區(qū)域替換為藍(lán)色。

運(yùn)行結(jié)果如下圖所示:



圖:使用 imagefill() 函數(shù)進(jìn)行區(qū)域填充

2、繪制點(diǎn)和線

畫(huà)點(diǎn)和線是繪制圖像中最基本的操作,如果靈活使用,可以通過(guò)它們繪制出千變?nèi)f化的圖像。在 PHP 中,使用 imagesetpixel() 函數(shù)在畫(huà)布中繪制一個(gè)單一像素的點(diǎn),并且可以設(shè)置點(diǎn)的顏色,函數(shù)的語(yǔ)法格式如下:

imagesetpixel(resource $image, int $x, int $y, int $color)

該函數(shù)可以在第一個(gè)參數(shù) $image 提供的畫(huà)布中,在($x,$y)的坐標(biāo)位置上,繪制一個(gè)顏色為 $color 的一個(gè)像素點(diǎn)。在實(shí)際開(kāi)發(fā)中還可以通過(guò)循環(huán)和隨機(jī)數(shù)的結(jié)合來(lái)繪制更多的像素點(diǎn)。

如果需要繪制一條線段,則可以使用 imageline() 函數(shù),其語(yǔ)法格式如下:

imageline(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)

我們都知道兩個(gè)點(diǎn)可以確定一條線段,所以該函數(shù)可以在 $image 提供的畫(huà)布中,從坐標(biāo)($x1,$y1)到坐標(biāo)($x2,$y2)繪制一條顏色為 $color 的線段。

【示例】使用 imagesetpixel() 和 imageline() 函數(shù)在畫(huà)布中繪制一些點(diǎn)和直線。

運(yùn)行結(jié)果如下圖所示:



圖:繪制隨機(jī)的點(diǎn)和線

3、繪制矩形

在 PHP 中我們可以使用 imagerectangle() 或者 imagefilledrectangle() 函數(shù)來(lái)繪制一個(gè)矩形,與 imagerectangle() 函數(shù)不同的是 imagefilledrectangle() 函數(shù)會(huì)在繪制完成矩形后填充矩形,它們的語(yǔ)法格式如下所示:

imagerectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)
imagefilledrectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color)

這兩個(gè)函數(shù)的功能類似,都是在 $image 畫(huà)布中畫(huà)一個(gè)矩形,矩形的左上角坐標(biāo)為($x1,$y1),右下角坐標(biāo)為($x2,$y2),不同的是 imagerectangle() 是使用 $color 參數(shù)指定矩形的邊線顏色,而 imagefilledrectangle() 則是使用這個(gè)顏色填充矩形。

【示例】使用 imagerectangle() 和 imagefilledrectangle() 函數(shù)分別繪制一個(gè)矩形。

運(yùn)行結(jié)果如下圖所示:



圖:繪制矩形

4、繪制多邊形

學(xué)會(huì)了繪制矩形,那如果想要繪制三角形、五邊形等多邊形呢?在 PHP 中可以使用 imagepolygon() 函數(shù)來(lái)繪制一個(gè)多邊形;也可以使用 imagefilledpolygon() 來(lái)繪制并填充一個(gè)多邊形,它們的語(yǔ)法格式如下所示:

imagepolygon(resource $image, array $points, int $num_points, int $color)
imagefilledpolygon(resource $image, array $points, int $num_points, int $color)

這兩個(gè)函數(shù)都是可以在畫(huà)布 $image 中畫(huà)一個(gè)多邊形;第二個(gè)參數(shù) $points 是一個(gè)數(shù)組,包含了多邊形的各個(gè)頂點(diǎn)坐標(biāo),例如 $points[0]=x0,$points[1]=y0,$points[2]=x1,$points[3]=y1,依此類推;第三個(gè)參數(shù) $num_points 用來(lái)設(shè)置多邊形的頂點(diǎn)數(shù),必須大于 3;至于第四個(gè)參數(shù),imagepolygon() 函數(shù)會(huì)使用 $color 顏色來(lái)指定多邊形邊線的顏色,而 imagefilledpolygon() 則是使用 $color 來(lái)填充多邊形。

注意:$points 數(shù)組中的頂點(diǎn)坐標(biāo)數(shù)(坐標(biāo)是成對(duì)出現(xiàn)的)不得小于多邊形的頂點(diǎn)數(shù) $num_points。

【示例】使用 imagepolygon() 和 imagefilledpolygon() 函數(shù)結(jié)合隨機(jī)數(shù)繪制隨機(jī)的多邊形圖像。

運(yùn)行結(jié)果如下圖所示:



圖:繪制隨機(jī)的多邊形

5、繪制橢圓

在 PHP 中可以使用 imageellipse() 函數(shù)來(lái)繪制一個(gè)橢圓,或者使用 imagefilledellipse() 函數(shù)繪制并填充一個(gè)橢圓,它們的語(yǔ)法如下所示:

imageellipse(resource $image, int $cx, int $cy, int $width, int $height, int $color)
imagefilledellipse(resource $image, int $cx, int $cy, int $width, int $height, int $color)

這兩個(gè)函數(shù)都可以在畫(huà)布 $image 上繪制一個(gè)橢圓,其中 $cx 和 $cy 分別代表橢圓圓心的橫縱坐標(biāo);$width 和 $height 分別代表橢圓的寬度和高度;至于 $color,imageellipse() 用來(lái)指定橢圓邊線的顏色,而 imagefilledellipse() 則用 $color 顏色來(lái)填充橢圓。

【示例】分別使用 imageellipse() 和 imagefilledellipse() 函數(shù)來(lái)繪制橢圓。

運(yùn)行結(jié)果如下圖所示:



圖:繪制橢圓

6、繪制弧線

在 PHP 中可以使用 imagearc() 函數(shù)來(lái)畫(huà)出一條弧線或者圓形,也可以使用 imagefilledarc() 函數(shù)來(lái)繪制弧線或者圓形并填充,它們的語(yǔ)法格式如下所示:

imagearc(resource $image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color)
imagefilledarc(resource $image, int $cx, int $cy, int $width, int $height, int $start, int $end, int $color, int $style)

這兩個(gè)函數(shù)都可以在畫(huà)布 $image 上繪制一個(gè)橢圓弧,其中 $cx 和 $cy 分別為圓弧中心點(diǎn)的橫縱坐標(biāo);$width 和 $height 分別為圓弧的寬度和高度;$start 和 $end 分別代表圓弧的起點(diǎn)角度和終點(diǎn)角度,0° 為鐘表 3 點(diǎn)鐘的位置,以順時(shí)針?lè)较蜻f增;至于 $color 參數(shù),imagearc() 用來(lái)表示圓弧的線條顏色,而 imagefilledarc() 用來(lái)表示弧線區(qū)域的填充色;

imagefilledarc() 函數(shù)比 imagearc() 函數(shù)多了一個(gè) $style 參數(shù),它用來(lái)設(shè)置顏色的填充類型,可以是如下的值:

  • IMG_ARC_PIE:普通填充,產(chǎn)生圓形邊界;
  • IMG_ARC_CHORD:只使用直線連接起點(diǎn)和終點(diǎn),與 IMG_ARC_PIE 互斥;
  • IMG_ARC_NOFILL:指明弧或弦只有輪廓,不填充;
  • IMG_ARC_EDGED:用直線將起始和結(jié)束點(diǎn)與中心點(diǎn)相連,和 IMG_ARC_NOFILL 一起使用是畫(huà)餅狀圖輪廓的好方法。

【示例】分別使用 imagefilledarc() 和 imagearc() 函數(shù)繪制圓弧。

運(yùn)行結(jié)果如下所示:



圖:繪制弧線

文章標(biāo)題:PHP繪制圖像
文章網(wǎng)址:http://m.5511xx.com/article/coppojo.html