1、第十四章 图形处理,本章目标,掌握GD库绘制图像的过程 掌握直线和虚线的绘制函数 掌握矩形和多边形的绘制函数 掌握弧形、扇形、椭圆和圆形的绘制函数 掌握文本绘制函数 综合运用图像绘制函数,本章内容,14.4 根据投票结果生成条形图,14.3 绘制文本,14.2 绘制图形,14.1 概述,14.1 概述,PHP图像支持 GD库基础,14.1.1 PHP图像支持,PHP的图像生成和处理包括 Exif EXIF扩展可交换图像信息和使用图像元数据 GD 图像处理和GD库 ImageMagick 是PHP扩展,使用ImageMagick API创建、编辑和撰写位图图像 Gmagick 是PHP扩展,使用
2、GraphicsMagick API来创建、修改和获取图像信息 Cairo 是PHP扩展,用来创建和修改图形的2D矢量图库,14.1.2 GD库基础,可以通过两种方式查看服务器所支持的GD版本和它的配置参数 调用phpinfo()方法 使用function_exists(imagecreate)函数, GD库的图像生成过程分为三步 创建图像 在画布上添加图形和文本 显示或者保存图像,14.1.2 GD库基础(续),Imagecreate()函数 用于新建一个基于调色板的图像 resource imagecreate ( int x_size , int y_size ) Imagecreate
3、truecolor()函数 用于创建一个真彩色图像 resource imagecreatetruecolor ( int x_size , int y_size ) Imagecolorallocate()函数 可以为一幅图像分配颜色 int imagecolorallocate ( resource image , int red , int green , int blue ) Imagefill()函数 实现画布区域填充颜色 bool imagefill ( resource image , int x , int y , int color ),14.1.2 GD库基础(续),GD库
4、根据不同的图像类型,提供了不同的输出图像函数 bool imagepng ( resource image , string filename ) 以PNG格式将图像输出到浏览器或文件 bool imagegif ( resource image , string filename ) 以GIF格式将图像输出到浏览器或文件 bool imagewbmp ( resource image , string filename , int foreground ) 以WBMP格式将图像输出到浏览器或文件 bool imagejpeg ( resource image , string filenam
5、e , int quality ) 以JPEG格式将图像输出到浏览器或文件,14.1.2 GD库基础(续),销毁图像 Imagedestroy()函数用于销毁图像对象,释放图像所占用的内存空间 bool imagedestroy ( resource $image ) 返回支持的图像类型 imagetypes()函数可以返回当前PHP版本所支持的图像类型,14.2 绘制图形,绘制直线和虚线 绘制矩形和多边形 绘制弧形、扇形、椭圆形和圆形,14.2.1 绘制直线和虚线,绘制直线 使用imageline()函数实现绘制一条直线的功能 bool imageline ( resource image
6、, int x1 , int y1 , int x2 , int y2 , int color ) 画线宽度 使用imagesetthickness()函数来设置画线的宽度bool imagesetthickness ( resource image , int thickness ) 绘制虚线 使用Imagedashedline()函数 bool imagedashedline ( resource image , int x1 , int y1 , int x2 , int y2 , int color ) 用imagesetstyle()函数和imageline()函数的组合来绘制一条虚
7、线,14.2.2 绘制矩形和多边形,空心矩形bool imagerectangle ( resource image , int x1 , int y1 , int x2 , int y2 , int col ) 实心矩形 Imagefilledrectangle()函数用来绘制一个具有填充色的矩形bool imagefilledrectangle ( resource image , int x1 , int y1 , int x2 , int y2 , int color ),14.2.2 绘制矩形和多边形(续),空心多边形 使用imagepolygon()函数绘制一个未填充颜色的多边形b
8、ool imagepolygon ( resource image , array points , int num_points , int color ) 实心多边形 Imagefilledpolygon()函数用来绘制一个具有填充颜色的多边形bool imagefilledpolygon ( resource image , array points , int num_points , int color ),14.2.3 绘制弧形、扇形、椭圆形和圆形,Imagearc()函数 GD库使用imagearc()函数实现绘制一个未填充的弧形、椭圆形和圆形 bool imagearc ( r
9、esource image , int cx , int cy , int w , int h , int s , int e , int color ) Imagefilledarc()函数 GD库使用Imagefilledarc()函数绘制具有填充色的扇形、椭圆形和圆形 bool imagefilledarc(resource image, int cx, int cy, int w, int h, int s, int e, int color, int style),14.2.3 绘制弧形、扇形、椭圆形和圆形(续),Imageellipse()函数 GD库使用Imageellipse(
10、)函数绘制一个无填充颜色的椭圆形和圆形bool imageellipse ( resource image , int cx , int cy , int w , int h , int color ) Imagefilledellipse()函数 GD库使用Imagefilledellipse()函数绘制具有填充颜色的椭圆形和圆形bool imagefilledellipse ( resource image , int cx , int cy , int w , int h , int color ) 绘制3D效果的饼状图,14.3 绘制文本,imagestring()函数 imagest
11、ring()函数是使用内置的GD字体绘制水平文本 bool imagestring ( resource image , int font , int x , int y , string s , int col ) imagestringup()函数 imagestringup()函数是使用内置GD字体绘制垂直地一行文本 bool imagestringup ( resource image , int font , int x , int y , string s , int col ),14.3 绘制文本(续),imagettftext()函数 imagettftext()函数是用TrueType字体向图像写入文本array imagettftext ( resource image , float size , float angle , int x , int y , int color , string fontfile , string text ) 为3D效果饼状图添加图例,14.4 根据投票结果生成条形图,示例 使用彩色的条形图显示投票结果,本章总结,GD库绘制图像的过程 直线和虚线的绘制函数 矩形和多边形的绘制函数 弧形、扇形、椭圆和圆形的绘制函数 文本绘制函数 运用图像绘制函数,