文章目录
1、创建图像
2、绘制图像
3、输出图像
4、释放资源
首先需要开启gd库扩展()
1、所有的绘图设计都需要在一个图像上完成,所有的操作都基于这个头像
创建图像需要用到imagecreatetruecolor(参数1,参数2)用于控制图片的长和宽,示例如下
$img=imagecreatetruecolor(200,200);//新建一个长和高都为200像素的真彩色图像
2、图像创建完成后,就可以通过这个图像资源,使用各种画像函数设置图像的颜色、填充画布、画点、线段、各种几何图形,以及图像的添加文本等
部分代码
imagecolorallocate()//分配颜色
imagefill()//区域填充
imagesetpixel()//画一个单一像素
imageline()//画一条线段
imagettftext()//用TrueType字体向图像写入文本
imagettfbbox()//计算TrueType文字所占领域
imagecopymerge()//拷贝并合并图像的一部分
示例如下
$color1=imagecolorallocate($img,50,50,50);//分配颜色
$color2=imagecolorallocate($img,229,36,36);//分配颜色
$color3=imagecolorallocate($img,46,219,50);
3、完成整个图像的绘制之后,需要将头像以某种格式保存在服务器的文件中,或者将图像直接输出到浏览器上显示给用户。但在图像输出之前,一定要使用header()函数发送Content-type通知浏览器,这次发送的是图片不是文本!
部分代码
header()
imageif()
imagejpeg()
imagepng()
imagewbmp()
注:header不能输出任何内容
<?php
header('Content-type:image/jpeg;charset= utf-8');
$img=imagecreatetruecolor(200,200);//新建一个长和高都为200像素的真彩色图像
$color1=imagecolorallocate($img,50,50,50);//分配颜色
$color2=imagecolorallocate($img,229,36,36);//分配颜色
$color3=imagecolorallocate($img,46,219,50);
imagefill($img,0,0,$color3);
imagejpeg($img);
输出结果为
4、释放资源
节省空间,imagedestroy(),示例如下
<?php
header('Content-type:image/jpeg;charset= utf-8');
$img=imagecreatetruecolor(200,200);//新建一个长和高都为200像素的真彩色图像
$color1=imagecolorallocate($img,50,50,50);//分配颜色
$color2=imagecolorallocate($img,229,36,36);//分配颜色
$color3=imagecolorallocate($img,46,219,50);
imagefill($img,0,0,$color3);
if(imagejpeg($img,'emperor.jpeg')){
echo'保存成功';
}
imagejpeg($img);
imagedestroy($img);
输出结果
注:在php代码的函数里面,使用的/开头的路径不是指web根目录,而是操作系统的文件的根目录