PHP中绘制图像的一些函数总结

PHP中绘制图像的函数非常丰富,包括点、线、各种几何图形等可以想象出来的平面图形,都可以通过PHP中提供的各种画图函数完成。我们在这里介绍一些常用的图像绘制,如果使用我们没有介绍过的函数,可以参考手册实现。另外,这些图形绘制函数都需要使用画布资源,并在画布中的位置通过坐标(原点是在画布左上角的起始位置,以像素为单位,沿着X轴正方向向右延伸,Y轴正方向向下延伸)决定,并且还可以通过函数的最后一个参数,设置每个图形的颜色。画布中的坐标系统如图所示。

PHP中绘制图像的一些函数总结

一、函数图形区域填充imageFill()

通过PHP仅仅绘制出只有边线的几何图形是不够的,还可以使用对应的填充函数,完成图形区域的填充。除了每个图形都有对应的填充函数之外,还可以使用imageFill()函数实现区域填充。该函数的语法格式如下:

复制代码 代码如下:


bool imagefill(resource $image,int $x ,int $y,int $color)                    //区域填充


该函数在参数$image代表的图像上,相对于图像左上角(0,0)坐标处,从坐标($x,$y)处用参数$color指定的颜色执行区域填充。与坐标($x,$y)点颜色相同且相邻的点都会被填充。例如在下面的示例中,将画布的背景设置为红色。代码如下所示:

复制代码 代码如下:


<?php
$im = imagecreatetruecolor(100, 100); //创建100*100大小的画布
$red = imagecolorallocate($im, 255, 0, 0); //设置一个颜色变量为红色
 
imagefill($im, 0, 0, $red); //将背景设为红色
 
header('Content-type:image/png'); //通知浏览器这不是文本而是一个图片
imagepng($im); //生成PNG格式的图片输出给浏览器
 
imagedestroy($im); //销毁图像资源,释放画布占用的内存空间
?>

二、绘制点和线imageSetPixel()、imageline()

画点和线是绘制图像中最基本的操作,如果灵活使用,可以通过它们绘制出千变万化的图像。在PHP中,使用imageSetPixel()函数在画布中绘制一个单一像素的点,并且可以设置点的颜色。其函数的原型如下所示:

复制代码 代码如下:


bool imagesetpixel(resource $image,int $x,int $y,int $color)                         //画一个单一像素


该函数在第一个参数$image中提供的画布上,距离圆点分别为$x和$y的坐标位置,绘制一个颜色为$color的一个像素点。理论上使用画点函数便可以画出所需要的所有图形,也可以使用其他的绘图函数。如果需要绘制一条线段,可以使用imageline()函数,其语法格式如下所示:

复制代码 代码如下:


bool imageline(resource $image,int $x1,int $y1,int $x2,int $y2,int $color)                //画一条线段


我们都知道两点确定一条线段,所以该函数使用$color颜色在图像$image中,从坐标($x1,$y1)开始到($x2,$y2)坐标结束画一条线段。

三、绘制矩形imageRectangle()、imageFilledRectangle()

可以使用imageRectangle()函数绘制矩形,也可以通过imageFilledRectangle()函数绘制一个矩形并填充。这两个函数的语法格式如下所示:

复制代码 代码如下:


bool imagerectangle(resource $image,int $x1 , int $y1,int $x2,int $y2,int $color)                    //画一个矩形
bool imagefilledrectangle(resource image,int $x1 ,int $y1 ,int $x2 ,int $y2,int $color)                      //画一个矩形并填充


这两个函数的行为类似,都是在$image图像中画一个矩形,只不过前者是使用$color参数指定矩形的边线颜色,而后者则是使用这个颜色填充矩形。相对于图像左上角的(0,0)位置,矩形的左上角坐标为($x1,$y1),右下角坐标为($x2,$y2)。

四、绘制多边形imagePolygon()、imagefilledpolygon()

可以使用imagePolygon()函数绘制一个多边形,也可以通过imageFilledPolygon()函数绘制一个多边形并填充。这两个函数的语法格式如下:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5f6dd7a0e9f760e05e527d1d4f618959.html