画布绘制

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.绘制图形(点)

扫描二维码关注公众号,回复: 4441251 查看本文章

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


 

猜你喜欢

转载自blog.csdn.net/qq_43628350/article/details/84401120