1. 程式人生 > >繪製圖形和文字

繪製圖形和文字

1.繪製圖形

我們要想在畫布上繪製圖形我們可以用imagesetpixel() 繪製一個點

imagesetpixel---畫一個單一畫素也就是畫一個點

語法結構為bool imagesetpixel  ( resource $image  , int $x  , int $y  , int $color  )

imagesetpixel()  在 image  影象中用 color  顏色在 x , y  座標(影象左上角為 0,0)上畫一個點。

我們先給點建立一個顏色

$color = imagecolorallocate($img,0,0,0);

 在繪製出來

imagesetpixel($img,100,50,$color);

然後我們在畫布上隨機畫10個點,程式碼如下 

$color = imagecolorallocate($img,0,0,0);
//隨機畫10個點
for($i=0;$i<10;$i++){
	$x=rand(0,200);
	$y=rand(0,100);
	imagesetpixel($img,$x,$y,$color);
}

 我們也可以在畫布上繪製圖形我們可以用imageline()  繪製一個線段

語法結構為  bool imageline 

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

imageline()  用 color  顏色在影象 image  中從座標 x1 , y1  到 x2 , y2 (影象左上角為 0, 0)畫一條線段。

我們還是先給線段建立一個顏色

$color = imagecolorallocate($img,0,0,255);

 然後我們從左上角畫到右下角

imageline($img,0,0,200,100,$color);

當然我們也可以隨機畫幾條斜線

//隨機畫10條線
$color = imagecolorallocate($img,0,0,255);
for($i=0;$i<10;$i++){
	$x1=rand(0,200);
	$y1=rand(0,100);
	$x2=rand(0,200);
	$y2=rand(0,100);
	imageline($img,$x1,$y1,$x2,$y2,$color);
}

 我們還可以畫一個矩形用imagerectangle() 

語法結構為   bool imagerectangle  ( resource $image  , int $x1  , int $y1  , int $x2  , int $y2  , int $col  )

imagerectangle()  用 col  顏色在 image  影象中畫一個矩形,其左上角座標為 x1, y1,右下角座標為 x2, y2。影象的左上角座標為 0, 0。

//畫一個矩形
$color = imagecolorallocate($img,0,255,0);
imagerectangle($img,50,50,100,100,$color);

我們還可以用imagefilledrectangle() 來畫一個矩形

語法結構為  bool imagefilledrectangle  ( resource $image  , int $x1  , int $y1  , int $x2  , int $y2  , int $color  )

imagefilledrectangle()  在 image  影象中畫一個用 color  顏色填充了的矩形,其左上角座標為 x1 , y1 ,右下角座標為 x2 , y2 。0, 0 是影象的最左上角。

//畫一個矩形
$color = imagecolorallocate($img,0,255,0);
imagefilledrectangle($img,50,50,100,100,$color);

這兩者的區別就是一個會填充顏色,一個不會

2.繪製文字

繪製文字我們使用imagettftext 

語法結構為   array imagettftext  ( resource $image  , float $size  , float $angle  , int $x  , int $y  , int $color  , string $fontfile  , string $text  )

各個引數分別為

size   :字型的尺寸。根據 GD 的版本,為畫素尺寸(GD1)或點(磅)尺寸(GD2)。

angle   :角度製表示的角度,0 度為從左向右讀的文字。更高數值表示逆時針旋轉。例如 90 度表示從下向上讀的文字。

i$x , $y:由 x , y  所表示的座標定義了第一個字元的基本點(大概是字元的左下角)。

color   :顏色索引

fontfile   :是想要使用的 TrueType 字型的路徑。(也就是字型庫,我們可以在c盤的windows中fonts中找到simsunb.ttc)

text   :UTF-8 編碼的文字字串。

//輸出文字
$text="hello";
$color=imagecolorallocate($img,255,255,0);
$font = "simsun.ttf";
imagettftext($img,20,0,10,50,$color,$font,$text);