繪製圖形和文字
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
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);