第9章图形处理ppt课件

上传人:沈*** 文档编号:176537500 上传时间:2022-12-22 格式:PPT 页数:55 大小:3.10MB
收藏 版权申诉 举报 下载
第9章图形处理ppt课件_第1页
第1页 / 共55页
第9章图形处理ppt课件_第2页
第2页 / 共55页
第9章图形处理ppt课件_第3页
第3页 / 共55页
资源描述:

《第9章图形处理ppt课件》由会员分享,可在线阅读,更多相关《第9章图形处理ppt课件(55页珍藏版)》请在装配图网上搜索。

1、第章 图形处理 PHP中的图形处理,主要应用在用户认证、系统安全、数据展示等方面。PHP不仅可以输出多种类型格式的图片,也可以处理服务器上存储的图片。图形处理中包括了图形学、字体、颜色、几何等方面的知识,本章主要介绍常用的图形处理函数,以及在实际中使用到的例子。在统一介绍图形处理函数,将使用这些函数,来实现一个具体的例子,供读者参考。PHP的图形处理功能需要GD库的支持,GD库支持在PHP配置文件中设置。9.1 创建和销毁图形 在PHP中要想操作图形,必须先创建一个图形,从而取得一个句柄,其后所有的操作,都是针对这个句柄进行的。图形操作与文件操作一样,在操作结束后,都需要释放句柄,以节省服务器

2、资源。9.1.1 创建和销毁图形 使用imagecreate()函数,可以创建一个新图形,并返回一个句柄,供其他函数使用。使用imagedestroy()函数,可以释放一个图形句柄,从而节省服务器资源。下面通过一段演示代码,来介绍创建、操作、输出、销毁图形式的方法,9.1.2 新建一个真彩色图形使用imagecreatetruecolor()函数,也可以创建一个新图形,并返回一个图形句柄,但其创建的新图形的背景默认是黑色的。下面演示imagecreatetruecolor()函数的使用方法,代码如清单所示。9.1.3 使用已有图片创建新图形除了使用imagecreate()与imagecrea

3、tetruecolor()函数可以创建图形外,还可以使用函数,根据已有的图像来创建新图形。可以根据已有图形创建新图形的函数有:imagecreatefromgif()函数:使用已有的GIF文件创建新图形。imagecreatefromjpeg()函数:使用已有的JPEG文件创建新图形。imagecreatefrompng()函数:使用已有的PNG文件创建新图形。imagecreatefromwbmp()函数:使用已有的WBMP文件创建新图形。imagecreatefromxbm()函数:使用已有的XBM文件创建新图形。9.2 几何图形与图形填充 在图形创建后,就可以在图形上进行相关操作了,这些

4、操作包括写入文字、填充颜色、画几何图形等。在众多的操作过程中,图形函数都是使用坐标来定位操作对象。图形的宽被视为坐标的轴,图形的高被视为坐标的轴。图形的左上角的坐标就是:0,0。右下角的坐标值,会因为图形的宽与高的不同而不同。本节主要图形处理函数中,与几何图形相关的函数,以及填充颜色的方面。9.2.1 画一个单一像素像素是组成图形的最小元素,所有位图图形都是以像素为基本元素构成的。在PHP中使用imagesetpixel()函数,可以在已创建的图形上画一个像素。下面演示imagesetpixel()函数有4个参数:第1个参数是必选参数,用于指定要操作的图形句柄。第2个参数是必选参数,用于指定像

5、素在X坐标上的位置。第3个参数是必选参数,用于指定像素在坐标上的位置。第4个参数是必选参数,用于指定所画像素的颜色。清单9.4中的代码,在不同的位置,使用不同的颜色,画了四个像素点,最后呈现出来的结果,四个不同颜色的像素,将组成一条斜线。9.2.2 画一条线段 使用imageline()函数,可以在已创建的图形上画一段线段。下面演示imageline()函数的使用方法,代码如清单所示。9.2.3 画椭圆弧使用imagearc()函数,可以在已创建的图形上画一段椭圆弧,椭圆弧的位置、宽度、高度、度数,都是由参数来控制的,当所画的椭圆弧宽度和高度相等,且度数为360度时,画出的将是个圆。下面演示i

6、magearc()函数的使用方法,代码如清单所示。9.2.4 画椭圆使用imageellipse()函数,可以在已创建的图形上画一个椭圆,椭圆的位置、宽度、高度,都是由参数来控制的,当椭圆的宽度和高度相等时,画出的将是一个圆。下面演示imageellipse()函数的使用方法,代码如清单所示。9.2.5 画一个矩形在几何学中一个重要的图形就是矩形,矩形包括:长方形、正方形。使用imagerectangle()函数,可以在已创建的图形上画一个矩形。下面演示imagerectangle()函数的使用方法,代码如清单所示。9.2.6 画一个多边形 使用imagepolygon()函数,可以在已创建的

7、图形上画一个多边形,多边形的顶点数在参数中设置。下面演示imagepolygon()函数的使用方法,9.2.7 区域填充区域填充是使用颜色,对指定位置上色的过程。这一过程可以使用imagefill()函数来完成,imagefill()会指定一个点,与这个点相邻,并具颜色相同的点,都会被指定的颜色重新填充。下面演示imagefill函数的使用方法,9.2.8 画一道椭圆弧且填充虽然使用imagefill()函数,可以为指定区域填充颜色,但是要计算填充点,也是一件很麻烦的事。PHP为此提供了很好的解决方案,在画这些几何图形时,就指定填充颜色,一次性完成画图和填充的工作。使用imagefilleda

8、rc()函数,可以在画出椭圆弧的同时,使用指定颜色对其进行填充。使用此函数的这种功能,就可以很简单的画出一个用于统计的饼状图。下面演示imagefilledarc()函数的使用方法,代码如清单所示。9.2.9 画一个椭圆并填充 使用imagefilledellipse()函数,可以在已创建的图形上画一个椭圆,并使用指定颜色进行填充。下面演示imagefilledellipse()函数的使用方法,9.2.10 画一个矩形并填充 使用imagefilledrectangle()函数,可以在已创建的图形上画一个矩形,并使用指定的颜色进行填充。下面演示imagefilledrectangle()函数的

9、使用方法,9.2.11 画一个多边形并填充 使用imagefilledpolygon()函数,可以在已创建的图形上画一个多边形,并使用指定颜色进行填充。下面演示imagefilledpolygon()函数的使用方法,9.2.12 区域填充到指定颜色的边界为止 使用imagefilltoborder()函数,可以为指定点进行填充颜色,当遇到指定颜色的边界时,就停止填充。下面演示imagefilltoborder()函数的使用方法,9.3 获取图形信息 图形处理不仅仅局限于创建图形,也可以针对已经存在的图形进行操作。要操作已经存的图形,必须了解要操作图形的信息,这些与图形相关的信息,都可以使用相关

10、的图形函数获取。9.3.1 取得当前安装的GD库的信息要想了解当前服务器对于图形的支持等信息,最好的方法就是获取GD库的安装信息。GD库是PHP用于处理图形的一个外部扩展库,要想在PHP中处理图形,必须打开对GD库的支持。使用gd_info()函数,可以取得当前服务器GD库的情况,这些信息包括GD库的版本、对字体支持的情况、对图形类型支持的情况等。下面演示gd_info()函数的使用方法,代码如清单所示。清单 gd_info()函数的使用方法?php/运行gd_info()并返回一个数组$gd_array=gd_info();/显示数组中的内容echo;print_r($gd_array);e

11、cho;?9.3.2 取得图形文件信息关于图形的信息包括:尺寸、大小、类型等。使用getimagesize()函数,可以取得已存在图形文件的相关信息,下面演示getimagesize()函数的使用方法,代码如清单所示。清单 getimagesize()函数的使用方法?php/定义一个变量存储一个文件名$image=tips.png;/获取文件的尺寸、类型、和用于HTML的宽高$size=getimagesize($image);/显示返回数组echo;print_r($size);echo;?9.3.3 取得图形宽度与高度要想取得已创建图形的宽度和高度,可以使用imagesx()与images

12、y()函数,下面演示这两种函数的使用方法,代码如清单所示。清单 imagesx()与imagesy()函数的使用方法imagesx()与imagesy()函数都只有1个必选参数,其值是1个已经创建的图形句柄,这两个函数据可以根据这个句柄,返回新建图形的宽和高。9.3.4 取得图形类型的MIME类型使用image_type_to_mime_type()函数,可以根据IMAGETYPE常量,返回图形文件的MIME值。下面演示image_type_to_mime_type()函数的使用方法,代码如清单所示。清单 image_type_to_mime_type()函数的使用方法9.4 图形与颜色 在创

13、建图形后,只有为其添加上颜色,才能使图形更加有表现力,特别是用于展示数据、或安全认证方面。本节主要介绍图形函数中,与颜色有关的函数,及其在实际中的应用。9.4.1 为图形分配颜色在本章的前3节,已经使用了imagecolorallocate()函数,其作用是为创建的图形分配颜色。imagecolorallocate()函数使用的颜色,都是通过三原色,即红、绿、蓝三种颜色变化而来的,其每个颜色使用0到255的值来表示,也可以使用16进制来表示颜色取值,16进制的颜色取值从0 x00到0 xff。下面演示imagecolorallocate()的使用方法,imagecolorallocate()函

14、数有4个必选参数:第1个参数用于指定要分配颜色的图形句柄。第2个参数用于指定要分配颜色中红色的取值。第3个参数用于指定要分配颜色中绿色的取值。第4个参数用于指定要分配颜色中蓝色的取值。9.4.2 定义透明色使用imagecolorallocatealpha()函数,也可以为指定的图形会配颜色,但与imagecolorallocate()函数相比,imagecolorallocatealpha()函数多了一个参数,这个参数用于设置颜色的透明度。下面演示imagecolorallocate()函数的使用方法,9.4.3 颜色与索引 在图形中使用的颜色都是存储在调色板中的,每一个颜色都对应着一个索引

15、值。可以通过相关的图形函数,查看颜色对应的索引值,或索引值对应的颜色,演示代码如清单所示。9.5 图形的处理 本节主要介绍PHP中与图形处理有关的函数。PHP中对图形的处理包括很多方面,其中主要有图像的复制、部分复制、图像旋转、图像相关设置等。使用与图形处理相关的函数,可以使图片实现更多的效果。9.5.1 复制图形的一部分使用imagecopy()函数,可以把源图形文件中的指定区域,复制到指定图形文件中。下面演示imagecopy()函数的使用方法,代码如清单所示。清单 复制图形的一部分9.5.2 复制图形并调整大小 使用imagecopyresized()函数,不仅可以实现imagecopy

16、()函数的功能,还可以对复制的图形大小进行调整。使用imagecopyresized()函数的这一功能,可以实现图形的缩略图显示。下面演示imagecopyresized()函数的使用方法,代码如清单所示。9.5.3 实现高清晰度缩略图虽然使用imagecopyresized()函数,可以实现输出图形的缩略图,但是生成的缩略图的质量大不如以前,而使用imagecopyresampled()函数,可以实现高清晰度的缩加略图。imagecopyresampled()函数在操作图形时,会重新对复制的源文件进行采样,再进行缩放操作,这样产生的缩略图的质量比较高。下面介绍使用imagecopyresam

17、pled()函数,实现缩略图的方法,代码如清单所示。9.5.4 对图形使用过滤器使用imagefilter()函数,可以使图形呈现不同的效果,下面介绍imagefilter()函数的使用方法,代码如清单所示。清单 imagefilter()函数的使用方法9.5.5 用给定角度旋转图形使用imagerotate()函数,可以使用图形,按指定的度数旋转。下面演示imagerotate()函数的使用方法,代码如清单所示。清单 imagerotate()函数的使用方法9.5.6 设定画线的风格 使用imagesetstyle()函数,可以按像素设置画线的颜色。下面介绍imagesetstyle()函数

18、的使用方法,代码如清单所示。9.5.7 设定画线用的画笔图形 PHP图形中,默认的画笔是像素点,也可以使用imagesetbrush()函数,设置1个图片作为画笔图形。下面演示imagesetbrush()函数的使用方法,代码如清单所示。9.5.8 设定画线的宽度在本章介绍imageline()函数时,使用imageline()函数模拟了画粗线的方法,实际上PHP提供了更好的解决方案,使用imagesetthickness()函数,可以设置画几何图形时,线条的宽度。下面介绍imagesetthickness()函数的使用方法,9.5.9 将某个颜色定义为透明色使用imagecolortrans

19、parent()函数,可以指图形中指定的颜色设置为透明色,此函数在9.5.7小节中已经使用过,详细使用方法,请参照清单9.29中的代码,imagecolortransparent()函数有2个参数:第1个参数是必选参数,其值是用于设置透明色的图形句柄。第2个参数是可选参数,用于指定设置为透明色的颜色值,其值是imagecolorallocate()函数返回的颜色标识符,如果省略此参数,函数将返回当前透明色的标识符。在使用imagecolortransparent()函数时要注意,透明色是图像的一种属性,而不是颜色的属性。一旦设定了某个颜色为透明色,图像中之前画为该色的任何区域都成为透明的。注意

20、:透明度仅能通过imagecopymerge()和真彩色图像复制,不能用 imagecopy()或调色板图像。9.5.10 设定用于填充的贴图 使用imagesettile()函数,可以定义一个图形,并用其填充另一个图形。下面介绍imagesettile()函数的使用方法,代码如清单所示。9.6 图形与字体 字体是图形中一个重要的元素,在PHP中可以使用内置的字体,也可以加载外部字体,在图形中插入漂亮的文字。本节主要介绍图形函数中与字体相关的函数。9.6.1 输出一个字符 字符在图形的输出分为水平输出和垂直输出,要在图形上水平输出一个字符可以使用imagechar()函数,垂直输出字符可以使用

21、imagecharup()函数。下面介绍这两个函数的使用方法9.6.2 输出字符串 在图形中水平输出一个字符串,可以使用imagestring()函数,垂直输出一个字符串,可以使用imagestringup()函数。下面介绍这两个函数的使用方法,代码如清单所示。9.6.3 在图形中使用指定字体 使用imagettftext()函数,可以向图片输出字符的同时,也可指定输出字符所使用的字体,另外imagettftext()函数也可以根据参数,输出不同角度的字符串。下面演示imagettftext()函数的使用方法,9.6.4 输出中文字符 要想在图形中输出中文字符,需要对输出的中文字符进行编码。使

22、用iconv()函数,可以把一种编码的字符,转换为其他编码的字符。下面介绍在图形中输出中文字符的方法,9.7 图形的输出 在图形中进行了文字、颜色、几何图形的操作后,最重要就是输出结果。在前面的章节中,使用了imagepng()函数来输出PNG格式的图形。PHP图形函数支持的图形格式,都可以使用特定的函数来输出。本节主要介绍PHP图形函数中,与输出图形相关的函数。9.7.1 将图形以PNG格式输出到浏览器或文件PNG格式的英文全称是:Portable Network Graphic Format,即流式网络图形格式,这种格式主要用于替换GIF和TIFF格式的文件,其主要扩展名是:.png。使用

23、imagepng()函数可以把图形输出到浏览器中,也可以把图形输出为PNG格式的文件。下面介绍imagepng()函数的使用方法,代码如清单所示。9.7.2 将图形以JPEG格式输出到浏览器或文件 JPEG格式是一种被广泛使用的失真压缩标准方法,其主要扩展有:.jpg、.JPG、.jpeg、.jfif、JPE。使用imagejpeg()函数,可以把图形以JPEG格式,输出到浏览器或文件中。下面介绍imagejpeg()函数的使用方法,代码如清单所示。9.7.3 将图形以GIF格式输出到浏览器或文件GIF格式是用于压缩具有单调颜色,以及清晰细节的图像的标准格式,其主要扩展名为:.gif。使用im

24、agegif()函数,可以把图形以GIF格式,输出到浏览器或文件中。下面介绍imagegif()函数的使用方法,代码如清单所示。9.8 其他图形函数9.8.1 取得服务器支持的图形类型使用imagetypes()函数,可以检查指定的图形类型,是否被服务器所支持。下面介绍imagetypes()函数的使用方法,代码如清单所示。清单 取得服务器支持的图形类型?php/检查服务器是否支持PNG文件if(imagetypes()&IMG_PNG)echo 服务器支持PNG图形格式的文件!;/检查服务器是否支持JPEG文件if(imagetypes()&IMG_JPG)echo 服务器支持JPG图形格式

25、的文件!;/检查服务器是否支持GIF文件if(imagetypes()&IMG_GIF)echo 服务器支持GIF图形格式的文件!;?9.8.2 检查图形是否为真彩色图形使用imageistruecolor()函数,可以检查一个图形是否为真彩色。下面介绍imageistruecolor()函数的使用方法,代码如清单所示。清单 检查图形是否为真彩色图形9.9 常见问题 本章主要介绍了与图形处理相关的函数。图形处理应用的范围很广泛,包括的知识点也比较多。本节主要总结一下在使用图形函数时,容易出现问题,供读者参考。9.9.1 关于分配颜色 图形中颜色的取值,是一件很麻烦的事,设定颜色使用的数据值,以

26、及函数返回的颜色索引值,并不能很直观的反应出是什么颜色,这时就需要一些函数的配合使用。在分配颜色时,可以记得经常使用的颜色值,如:黑(0,0,0)、白(255,255,255)、红(255,0,0)、蓝(0,0,255)、绿(0,255,0)等,至于不经常使用的颜色值,可以使用一些软件获取,例如:Dreamweaver、Photoshop等,也可以通过网络,获取一些小型的取色软件。9.9.2 关于图形格式可以在网络上使用的图形格式很多,在不同的情况下,可以使用不同的图形格式,来优化网络流量。各种图形格式的说明如下所示。GIF分为静态GIF和动态GIF两种格式,其中静态GIF在图片颜色比较少,图

27、片尺寸比较小的情况下,比JPEG格式的文件占空间更少。而动态GIF可以实现最基本的动画,普通的广告,都可以使用些类型的图形格式。PNG格式称为流式网络格式,可见其在网络应用中的份量,在实际应该中,也建议使用PNG格式文件,替代GIF格式的文件。JPEG格式的文件可以呈现很好的色彩,在图形尺寸比较大,颜色比较丰富的情况下,使用JPEG格式的文件,更有优势。9.3.3 关于中文字符 在图形中输出中文字符,必须满足两个条件:以要输出的中文字符,进行转码。输出中主文字符的字体需要支持中文。字符的转码工作,可以使用iconv()函数实现。其使用方法已经在前面的章节进行了介绍。经常使用的中文字体有宋体、黑体等,也可以下载其他格式的中文字体,但是在使用时,一定要字体路径是否正确。9.9.4 关于函数参数 本章介绍的函数中,有一些函数的参数比较多,这很容易引起运行错误。特别是用于图形定位的坐标。在操作图形前,应该建立一个空间感,一般的坐标是超向上,数据数值越大。而在PHP的图形函数中,坐标的原点(0,0)位于图片的左上角,X的值越向下,值越大,Y的值越向右,值越大。参数过多也容易引起参数类型不对应的问题,特别是关于颜色的设置。图形中使用的颜色,都需要使用imagecolorallocate()函数,根据图形文件的句柄分配的,在使用没有经过分配的颜色时,会产生不正确的结果。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!