轻松学PHP之图形图像处理

上传人:宝路 文档编号:48005988 上传时间:2018-07-08 格式:PPTX 页数:36 大小:1.65MB
返回 下载 相关 举报
轻松学PHP之图形图像处理_第1页
第1页 / 共36页
轻松学PHP之图形图像处理_第2页
第2页 / 共36页
轻松学PHP之图形图像处理_第3页
第3页 / 共36页
轻松学PHP之图形图像处理_第4页
第4页 / 共36页
轻松学PHP之图形图像处理_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《轻松学PHP之图形图像处理》由会员分享,可在线阅读,更多相关《轻松学PHP之图形图像处理(36页珍藏版)》请在金锄头文库上搜索。

1、第第1111章章 图形图像处理图形图像处理+PHP不仅限于处理文本数据,PHP还可以处 理多种格式的图像。虽然在PHP中有一些简 答的图形图像处理函数是可以直接使用 的。但是大多数要处理的图像都要通过GD 库来处理,它不仅可以创建新图像,而且 可以处理已有的图像。本章我们的重点就 是学习GD库。11.1 11.1 加载加载GDGD库库+在PHP 5之后的版本中默认就安装了GD库,默认情况下 GD库是没有被加载的。我们需要通过配置php.ini来加载 GD库,如图所示。 +在将图中的语句改为图中所示的形式后重启服务器即可 成功加载。当然我们使用的集成环境默认就加载了GD 库。当然读者最好打开ph

2、p.ini文件确认一下。在修改配 置后我们可以通过两种方法来验证。11.1 11.1 加载加载GDGD库库+(1)通过输出PHP信息确认GD库已成功加 载。+(2)通过gd_info()取得GD库信息。11.2 11.2 创建图像创建图像+在PHP中GD库处理图像的操作都是先在内 存中处理,操作完成后再以数据流的方式 输出到浏览器或者保存在服务器磁盘中。 创建一个图像通常要经过四个步骤: +(1)创建画布 +(2)绘制图像 +(3)输出图像 +(4)释放资源 +下面我们就来分别学习这些步骤。11.2.1 11.2.1 创建画布创建画布+在使用GD库处理图像时,首先要创建一张画布。创建画布就是在

3、内 存中开辟一块存储区域,以后GD库的所有操作都是基于这个画布处 理的。 +我们通常使用imagecreate()和imagecreatetruecolor()来创建指定的画布 ,它们的语法如图所示。 +以上两个函数都可以创建一张画布,成功都会返回一个资源句柄,失 败则返回FALSE。不同的是它们可以容纳的色彩范围不同, imagecreate()创建一个基于普通调色板的图像,通常支持256色。 imagecreatetruecolor()可以创建一个真色彩图像,但是该函数不可以用 于GIF格式图像。11.2.1 11.2.1 创建画布创建画布+(1)演示使用创建画布函数创建画布。 +由于我们

4、没有在画布上执行任何操作,因此浏览器不会显示出 画布。除了使用上面两个函数可以创建一个画布外。我们还可 以通过表中的函数打开服务器或者网络文件中已经存在的图 像。 +表中的函数都只接受一个文件路径或者URL,在执行成功后返 回文件句柄,失败则返回FALSE。函数名描述imagecreatefromgif()通过GIF文件或者URL新建一个图像imagecreatefromjpeg()通过JPEG文件或者URL新建一个图像imagecreatefrompng()通过PNG文件或者URL新建一个图像imagecreatefromwbmp()通过WBMP文件或者URL新建一个图像11.2.1 11.

5、2.1 创建画布创建画布+(1)演示通过常用新建图像函数新建图像。 +以上代码就通过两种方式创建了图像。但是由于我们并 没有输出图像,因此浏览器不会有任何显示。但是我们 可以通过imagesx()和imagesy()来获取创建图像的尺寸( 以像素为单位),它们的语法如图所示。 +(2)通过imagesx()和imagesy()获得新建图像的宽和高。11.2.211.2.2 输出图像输出图像+在进过上面这些函数的学习,相比读者已经很像看 看这些图像到底是什么样子的。在PHP中可以使用 不同的函数输出不同格式的图像,如表是常用的输 出图像函数。函数名描述imagegif()输出一个GIF格式图像到

6、浏览 器或文件imagejpeg()输出一个JPEG格式图像到浏览 器或文件imagepng()输出一个PNG格式图像到浏览 器或文件11.2.211.2.2 输出图像输出图像+表中函数的语法如图所示。 +在所示的语法中,如果指定了第二个参数则图 像会以文件的形式输出。11.2.211.2.2 输出图像输出图像+(1)使用图像输出函数输出创建的图像。+(2)演示代码会出现的错误。+(3)演示使用ob_clean()清除输出缓冲后正 确输出图像。+(4)代码运行在IE内核之外浏览器的情 况。11.2.211.2.2 输出图像输出图像+为了保持兼容,我们需要在程序中使用 header()来指浏览器

7、以什么形式输出类型,它 的语法如图所示。 +(1)演示使用header()函数指定浏览器输出类 型,从而正确输出图像。11.2.311.2.3 释放资源释放资源+在图像的所有资源使用完毕后,我们通常就需要释放图 像处理所占用的内存了。在PHP中通过imagedestroy()来 释放资源,它的语法如图所示。 +(1)演示图像处理程序执行完毕后使用imagedestroy() 释放内存资源。 +(2)证明释放资源是有意义的。11.2.411.2.4 设置颜色设置颜色+前面我们已经学习了如何建立一张画布,但是要是现在就开始 绘画,是不会成功的,因为我们现在还没有“彩笔”。这样就是 开始绘画结果就像

8、是拿一支没有笔芯的笔在画布上画一样,都 是徒劳的。下面我们就来创建我们的“彩笔”设置颜色。 +在PHP中通过imagecolorallocate()来设置颜色,它的语法如图所 示。 +imagecolorallocate()会返回一个标识符,代表了由给定的RGB成 分组成的颜色。图中所示语法中$red、$green、$blue的取值可 以是0到255的整数或者十六进制的0x00到0xFF。11.2.411.2.4 设置颜色设置颜色+(1)演示使用imagecolorallocate()设置颜 色。+(2)演示为背景设置不同的颜色。11.2.511.2.5 绘制图像绘制图像+在前面小节的学习中我

9、们学习了通过使用 相关函数来打开服务器存储的图像或者通 过URL打开互联网上的图像。在本节,我 们要学习的是自己通过使用一些函数来绘 制图像。这开始之前我们需要明白的一个 知识点就是PHP的坐标系统,11.2.511.2.5 绘制图像绘制图像+如图所示。 +通过坐标系统,我们就可以比较准确地定位到 一个点,然后通过相关函数来绘制图形。下面 我们来学习PHP中绘制各种图形的函数。1.1.区域填充区域填充+区域填充不可以用来绘制图像。它可以将一个已存 在图像中大面积的颜色很方便地替换为别的颜色。 在PHP中通过imagefill()来执行区域填充,它的语法 如图所示。 +imagefill()会将

10、与(x,y)点处颜色相同并且相邻的 颜色替换为$color设置的颜色。1.1.区域填充区域填充+(1)演示使用区域填充将一张图片连续的 白色部分替换为蓝色。+(2)演示使用随机数作为参数设置颜色并 使用imagefill()填充图像。2.2.绘制点和线绘制点和线+在PHP中,我们可以通过imagesetpixel()来 绘制一个像素点,它的语法如图所示。2.2.绘制点和线绘制点和线+(1)演示在一张画布上绘制像素点。+(2)演示通过循环和随机数配合在画布绘 制多个像素点。2.2.绘制点和线绘制点和线+在PHP中我们使用imageline()来绘制一条直线,它的语法如图所 示。 +imageli

11、ne()函数看起来参数比较多,其实也是很容易理解的。 因为线就是连接两个点而组成的,所以坐标就应该有两对也就 是四个了。 +(1)演示在画布上绘制两条白色对角线。 +(2)演示使用循环联合随机数在一张画布内绘制线条。3.3.绘制矩形绘制矩形+在PHP中我们使 用 imagerectangle() 来绘制一个矩 形。和 imagerectangle() 类似的函数是 imagefilledrectang le()它会在绘制完 成矩形后并填充 矩形,它们的语 法如图所示。3.3.绘制矩形绘制矩形+为了使表达更加清 楚,我们再以图的 形式表示出矩形与 函数的对应关系如 图所示。+(1)演示使用 im

12、agerectangle()和 imagefilledrectangl e()绘制矩形。4.4.绘制多边形绘制多边形+前面我们以及学习了绘制矩形,但是通常这是不能满足我们对 图像的要求。在PHP中我们可以使用imagepolygon()来绘制一个 多边形,例如三角形,五边形,八边形等图形。也可以使用 imagefilledpolygon()来绘制并填充多边形,它们的语法如图所 示。4.4.绘制多边形绘制多边形+在所示的语法中,$points是保存多边形顶点 坐标的数组,它的保存的详细信息如图所 示。4.4.绘制多边形绘制多边形+这还要注意的一个知识点是数组的顶点坐标数不得小于多边形顶点数 $n

13、um_points,我们来看图。 +图中形象地表示了顶点坐标组与顶点数的关系,那么我们就可以利用这个特 点来做出一个随机绘制多边形的程序。 +(1)演示使用imagepolygon()和imagefilledpolygon()联合随机数绘制随机图 像。5.5.绘制椭圆绘制椭圆+在PHP中可以使用imageellipse()来绘制一个椭 圆,使用imagefilledellipse()绘制并填充椭圆, 它们的语法如图所示。5.5.绘制椭圆绘制椭圆+在学习这些函数的使 用之前,我们首先来 了解一下绘制出的圆 形的坐标系统,如图 所示。+(1)演示使用绘制椭 圆函数的使用方法以 及输出结果。6.6.

14、绘制弧线绘制弧线+在PHP中我们可以使用imagearc()来画出一条弧线或者圆形,也可以使用imagefilledarc()来绘制弧线或者圆形 并填充,它的语法如图所示。 +在imagefilledarc()语法中,$style可以有如下值: +IMG_ARC_PIE:普通填充,产生圆形边界。 +IMG_ARC_CHORD:只使用直线连接起始和结束点,与IMG_ARC_PIE方式互斥。 +IMG_ARC_NOFILL:指明弧或弦只有轮廓,不填充。 +IMG_ARC_EDGED:用直线将起始和结束点与中心点相连。6.6.绘制弧线绘制弧线+在绘制弧线之前 还需要读者了解 的就是绘制弧线 函数的角

15、度系统 ,如图所示。 +(1)演示 imagearc()和 imagefilledarc()的使用方法以及 输出的效果。 +(2)演示利用 imagefilledarc()绘制有3D效果的 饼状图。11.2.611.2.6 在图像上绘制文字在图像上绘制文字+在PHP中除了可以在画布上绘制图像以外,还 可以将文字绘制在画布上。我们通常会使用如 表中所示的函数将文字绘制在图像上。函数名描述imagestring()水平绘制一行字符串imagestringup()垂直绘制一行字符串imagechar()水平绘制一个字符imagecharup()垂直绘制一个字符imagettftext()用TrueT

16、ype字体向图像写入文本11.2.611.2.6 在图像上绘制文字在图像上绘制文字+以上函数的语法如图所示。 +由于imagestringup()、imagechar()和imagecharup()与imagestring() 的参数都相同,因此就不费较大篇幅来讲解语法。在图11.21中 的$font可以为1、2、3、4和5,代表使用内置字体。如果想使 用其他字体则可使使用imageloadfont()来载入新字体。 imagettftext()返回一个保存了输出的文本四个角的坐标值的数 组。11.2.611.2.6 在图像上绘制文字在图像上绘制文字+(1)演示使用imagestring()、 imagestringup()、imagechar()和 imagecharup()在图像上绘制文字。+(2)演示使用imagettftext()在图像上绘制 字符。11.3 11.3 通过通过GDGD库生成验证码库生成验证码+我们已经将PHP常用的图形图像处理函数学习完毕了。 我们常常

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号