GD库的使用

PHP除了自身内置了许多强大的功能外,还有一个更强大的功能:扩展。有了PHP的扩展后,PHP可以处理的东西就会变得非常的多。比如我们今天要学的PHP处理图片,需要使用PHP的GD库,虽然PHP自带的有几个图片处理函数,但是最常用的还是使用GD库。

使用GD库前需要安装GD库扩展,不同版本的GD库可以支持不同的图像格式,具体可以根据手册。我们主要学习几个GD库的函数的使用。

PHP通过GD扩展去操作图片,是先在内存中处理,处理完以后以文件流的方式输出,可以输出到浏览器,也可以输出到磁盘上。因此一般的步骤是:

  1. 创建画布。其实就是在内存中开辟一块区域。
  2. 在画布上绘制图形。可以填充颜色,绘制“点”、“线”、“文本”、“图像”等
  3. 输出图像(浏览器或者磁盘)。
  4. 销毁图像,释放资源。

画图步骤

创建画布:
imagecreate()

创建一个机遇普通调色板的画布。

imagecreatetruecolor()

创建一个真彩画布,该函数不支持gif格式。

$img = imagecreatetruecolor(300,300);
绘制图像
imagecolorallocate()

创建颜色资源,该函数可以重复调用。

imagecolorallocate($img,rand(0,255), rand(0,255),rand(0,255));
//封装成哥随机函数
function create_color($img)
{
    return imagecolorallocate($img,rand(0,255), rand(0,255),rand(0,255));
}
imagefill()

向一个区域填充颜色。

imagefill($img,0,0,create_color($img));
imagesetpixel()

在画布中花点点。

for($i=0;$i<1000;$i++){
    imagesetpixel($img, rand(0,300), rand(0,300) ,create_color($img));
}
imageline()

在画布中画线。

for($i=0;$i<20;$i++){
    imageline($img,rand(0,300),rand(0,300),rand(0,300),rand(0,300),create_color($img));
}
imagerectangle();

在画布上画矩形

imagerectangle($img,10,50,60,100,create_color($img));
imagefilledrectangle()

在画布中画矩形并填充颜色

imagefilledrectangle($img,10,50,60,100,create_color($img));
imageellipse() / imagefilledellipse();

在画布中画椭圆/画椭圆并填充

imageellipse($img,50,50,60,100,create_color($img));
imagefilledellipse($img,50,50,60,100,create_color($img));
imagepolygon() / imagefilledpolygon()

在画布中画多边形

imagepolygon($img,array(50,60,50,90,100,110),3,create_color($img));
imagefilledpolygon($img,array(50,60,50,90,100,110),3,create_color($img));
imagestring() / imagechar()

在画布中绘制一行文字 / 一个字符

imagestring($img,4,20,150,'abcdefghijklmn',create_color($img));
imagestringup($img,4,20,150,'abcdefghijklmn',create_color($img));
imagechar($img,4,20,150,'a',create_color($img));
imagecharup($img,4,20,150,'a',create_color($img));
输出图像

imagepng($img, [$filename]) 输出png格式图片 imagegif($img, [$filename]) 输出gif格式图片 imagejpeg($img, [$filename]) 输出jpg格式图片

销毁图像
imagedestroy($img);

更多内容

GD库手册地址:http://php.net/manual/zh/book.image.php


猜你喜欢

转载自blog.csdn.net/qq_40005528/article/details/80286074
今日推荐