PHP不仅可以处理文本数据,还可以创建不同的动态图像,比如GIF、PNG、JPEG、WBMP、XMP等
在PHP中通过GD库处理图像的操作都是在内存中处理,操作完成以后再以文件流的方式输出到浏览器或保存在服务器的磁盘中
注:在PHP中可以通过GD扩展库实现对图像的处理,不仅可以创建图像而且可以处理已有图像
图像是资源类型数据 resource
用之前需要开启GD扩展库
1)创建图像
2)绘制图像
3)生成图像(输出图像)
4)释放资源
5)图形验证码
6)水印
7)缩放与裁剪
创建图像的4个步骤
1)创建图像
所有的绘图设计都需要在一个图像上完成,以后的操作都基于这个图像
1. 创建新图像
$img=imagecreatetruecolor(int $a, int $b); //新建一个真彩图像
2. 打开服务器或网络文件中已经存在的GIF, JPEG,PNG,WBMP格式图像
imagecreatefromjpeg( );
imagecreatefrompng( );
imagecreatefromgif( );
imagecreatefromwbmp( );
//创建或打开失败的时候会返回字符串,并且输出一条错误信息
imagesx();//输出画布宽度
imagesy();//输出画布高度
getimagesize();//取得图像大小
2)绘制图像
图像创建完成后,就可以通过这个图像资源,使用各种画像函数设置图像的颜色,
填充画布、画点、线段、各种几何图案,以及图像添加文本等
//通过创建的图像资源开始绘制
1. imagecolorallocate() //分配颜色
2. imagefill() //区域填充
3. imagesetpixel() //画一个单一像素
4. imageline() //画一条线段
5. imagerectangle() //画一个矩阵
6. imagestring() //水平的画一个字符串
7. imagettftext() //用TrueType字体向图像写入文字
8. imagettfbbox() //计算TrueType文字所占区域
9. imagecopy() //拷贝图像的一部分
10. imagecopymerge() //拷贝并合并图像的一部分
11. imagecopyresampled() //重采样拷贝部分图像并调整大小
3)输出图像
完成整个图像的绘制后,将图像以某种格式保存到服务器的文件中,或者将图像直接输出到浏览器上显示给用户,
但在图像输出之前一定要使用header( )函数发送 Content-type通知浏览器,这次发送的是图像不是文本
注意点:在header()函数之前不能有任何输出内容
PHP输出的可能是Text/Html文件,也可能是图像
//生成图像
header()
imagegif()
imagejpeg() //以jpeg格式将图像输出到浏览器或文件中
imagepng()
imagewbmp()
1. 把生成的图片输出到浏览器的方法
header('Content-type:image/jpeg');
$img=imagecreatetruecolor(200,200);
$color1=imagecolorallocate($img,229,36,36); //取色
imagefill($img,0,0,$color1);
imagejpeg($img); //生成图像
imagedestroy($img);
//此php文件就像网络中的图片,可以被引用,直接调用地址即可
2. 把生成的图片保存到 images文件夹的方法
header('Content-type:text/html;charset=utf-8');
$img=imagecreatetruecolor(200,200);
$color1=imagecolorallocate($img,229,36,36);
imagefill($img,0,0,$color1);
if (imagejpeg($img,'images/robin.jpeg')){
echo '保存成功!';
}
imagedestroy($img);
''/" 在HTML文件里表示WEB根目录,可以在a标签里调用;在PHP文件里只能表示磁盘的根目录
4)释放资源
imagedestroy( );