版权声明:转载请附上文章地址 https://blog.csdn.net/weixin_38134491/article/details/85465742
php不仅可以处理文本数据,还可以创建不同的动态图像,比如GIF等
注:在php中可以通过GD扩展库实现对图像的处理,不仅可以创建图像而且可以处理已有图像
- 创建图像
- 绘制图像
- 生成图像
- 释放资源
- 图形验证码
- 水印
- 缩放与裁剪
在php中通过GD库处理图像的操作都是在内存中处理,操作完成以后再以文件流的方式输出到浏览器或保存在服务器的磁盘中
创建图像的4个步骤
创建图像
-创建新的:
$img=imagecreatetruecolor(int $a, int $b); //新建一个真彩图像
-打开服务器或网络文件中已经存在的GIF, JPEG,PNG格式图像
imagecreatefromjpeg( );
imagecreatefrompng( );
imagecreatefromgif( );
imagecreatefromwbmp( );
//创建或打开失败的时候会返回字符串,并且输出一条错误信息
imagesx();//输出画布宽度
imagesy();//输出画布高度
getimagesize();//取得图像大小
绘制图像
使用各种画像函数设置图像的颜色,填充画布、画点、线段、各种几何图案,以及图像添加文本等
扫描二维码关注公众号,回复:
4802565 查看本文章
//通过创建的图像资源开始绘制
1. imagecolorallocate() //分配颜色
2. imagefill() //区域填充
3. imagesetpixel() //画一个单一像素
4. imageline() //画一条线段
5. imagerectangle() //画一个矩阵
6. imagestring() //水平的画一个字符串
7. imagettftext() //用TrueType字体向图像写入文字
8. imagettfbbox() //计算TrueType文字所占区域
9. imagecopy() //拷贝图像的一部分
10. imagecopymerge() //拷贝并合并图像的一部分
11. imagecopyresampled() //重采样拷贝部分图像并调整大小
输出图像
将图像以某种格式保存到服务器的文件中,或者将图像直接输出到浏览器上显示给用户,但在图像输出之前一定要使用header( )函数发送 Content-type通知浏览器,这次发送的是图像不是文本
输出图像之前其实还要先生成图像:
//生成图像
header()
imagegif()
imagejpeg()
imagepng()
imagewbmp()
- 下面是把生成的图片输出到浏览器的方法
<?php
header('Content-type:image/jpeg'); //在该函数之前不能输出任何内容,默认情况下header('Content-type:text/html');
$img=imagecreatetruecolor(200, 200); //新建一个长和高都为200像素的真彩图像,$img是资源类型
$color1=imagecolorallocate($img,0,101,124); //给图片加颜色
$color2=imagecolorallocate($img,208,223,239);
imagefill($img,0,0,$color2); //填充颜色
imagejpeg($img); //生成图像
imagedestroy($img); //销毁图像
/* 整个此php文件代表的是一张图片,虽然是php格式,可以把这张图片输出到浏览器*/
- 下面是把生成的图片保存到文件夹的方法
<?php
header('Content-type:text/html;charset=utf-8'); //在该函数之前不能输出任何内容,默认情况下header('Content-type:text/html');
$img=imagecreatetruecolor(200, 200); //新建一个长和高都为200像素的真彩图像,$img是资源类型
$color1=imagecolorallocate($img,0,101,124); //给图片加颜色
$color2=imagecolorallocate($img,208,223,239);
imagefill($img,0,0,$color2); //填充颜色
if(imagejpeg($img,'ROBIN.jpeg')){ //保存图像
echo"保存成功!";
}
imagedestroy($img); //销毁图像
输出图像:
header函数注意点:
该函数不能有任何内容,在我们php代码的函数里,是我们使用的开头路径,这个不是指web根目录而是操作系统文件根目录,而是操作系统的根目录。
释放图像
最后是释放图像