畫布繪製
1.整個網頁的輸出是以圖片格式進行輸出的
header('content-type:image/png')
header ( 'Content-Type: image/gif' );
header ( 'Content-Type: image/jpeg' );
2.建立畫布(在記憶體中存放)
resource imagecreatetruecolor ( int $width , int $height ) 新建一個真彩色影象
返回一個影象識別符號,代表了一幅大小為 width 和 height 的黑色影象。
返回值:成功後返回圖象資源,失敗後返回 FALSE 。
<?php
header('content-type:image/png');
$img = imagecreatetruecolor(200,100);
3.建立顏色(顏色管理)
int imagecolorallocate ( resource $image , int $red , int $green , int $blue ) 為一幅影象分配顏色
red , green 和 blue 分別是所需要的顏色的紅,綠,藍成分。這些引數是 0 到 255 的整數或者十六進位制的 0x00 到 0xFF4
$color = imagecolorallocate($img, 255, 0, 0);
4.填充區域
bool imagefill ( resource $image , int $x , int $y , int $color ) 區域填充
image 影象的座標 x , y (影象左上角為 0, 0)處用 color 顏色執行區域填充(即與 x, y 點顏色相同且相鄰的點都會被填充).
imagefill($img, 0, 0, $color);
5.繪製圖形(點)
imagesetpixel() 在 image 影象中用 color 顏色在 x , y 座標(影象左上角為 0,0)上畫一個點。
bool imagesetpixel ( resource $image , int $x , int $y , int $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);
}
6.繪製圖形(線)
imageline() 用 color 顏色在影象 image 中從座標 x1 , y1 到 x2 , y2 (影象左上角為 0, 0)畫一條線段。
bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $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);
}
7.畫一個矩形
imagefilledrectangle() 在 image 影象中畫一個用 color 顏色填充了的矩形,其左上角座標為 x1 , y1 ,右下角座標為 x2 , y2 。0, 0 是影象的最左上角。
bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
$color = imagecolorallocate($img,0,255,0);
// imagerectangle($img, 50, 50, 100, 100, $color);
imagefilledrectangle($img, 50, 50, 100, 100, $color);
8.繪製文字
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 度表示從下向上讀的文字。
由 x , y 所表示的座標定義了第一個字元的基本點(大概是字元的左下角)。
color :顏色索引
fontfile :是想要使用的 TrueType 字型的路徑。
text :UTF-8 編碼的文字字串。
$text = 'hello';
$color = imagecolorallocate($img,255,0,255);
$font = "simsunb.ttf";
imagettftext($img, 20, 0, 10, 50, $color, $font, $text);
9.輸出影象
bool imagepng ( resource $image [, string $filename ] )
將 GD 影象流( image )以 PNG 格式輸出到標準輸出(通常為瀏覽器),或者如果用 filename 給出了檔名則將其輸出到該檔案。
bool imagegif ( resource $image [, string $filename ] )
bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )
imagepng($img);
10.銷燬影象(釋放佔用的資源)
bool imagedestroy ( resource $image ) 銷燬一影象
釋放與 image 關聯的記憶體
imagedestroy($img);