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);