第10章 图像操作ppt课件(完整版).pptx

上传人:春哥&#****71; 文档编号:16924482 上传时间:2022-05-20 格式:PPTX 页数:48 大小:2.58MB
返回 下载 相关 举报
第10章 图像操作ppt课件(完整版).pptx_第1页
第1页 / 共48页
第10章 图像操作ppt课件(完整版).pptx_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《第10章 图像操作ppt课件(完整版).pptx》由会员分享,可在线阅读,更多相关《第10章 图像操作ppt课件(完整版).pptx(48页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第10章 图像操作ppt课件(完整版)第10章 图像操作PHP基础案例教程(第2版)学习目标/Target 熟悉PHP图像基础知识,能够开启GD库扩展以及说出常见的图像格式 掌握图像的常见操作,能够在程序中绘制基本的图像 掌握图像的高级处理,能够对图像进行叠加、缩放、过滤等处理章节概述/ Summary在PHP项目的开发中,经常会涉及对图像的处理,通常情况下,大多数人的第一个想法就是利用专业的制图软件(如Photoshop)处理图像。但是,对于一些需要即时处理的需求,例如在图像上叠加一张图像,对图像进行缩放、过滤等,这些需求直接由PHP程序来完成会更加方便。本章将针对PHP图像操作进行详细讲解

2、。目录/Contents010203PHP图像基础知识图像的常见操作图像的高级处理PHP图像基础知识 先定一个小目标!熟悉GD库扩展,能够说出GD库扩展的作用10.1.1 GD库扩展10.1.1 GD库扩展GD库扩展是PHP处理图像的扩展库,它提供了一系列用来处理图像的函数,这些函数可以实现验证码、缩略图和水印等功能。在PHP中,要想使用GD库扩展,需要先开启该扩展。extension=10.1.1 GD库扩展通过phpinfo()函数查看GD库扩展是否开启成功。 先定一个小目标!熟悉常见图像格式,能够说出常见图像格式的特点10.1.2 常见的图像格式10.1.2 常见的图像格式图像格式是指图

3、像在计算机中存储的格式。对常见的图像格式有一定的了解,有助于在项目开发中根据图像的格式选择对应的图像处理函数。(1)JPEG 通常用来存储照片或者具有丰富色彩和色彩层次的图像,使用了有损压缩。(2)GIF 用来存储包含文本、直线和单块颜色的图像,只有256色,支持有限的透明度和动画。(3)PNG 无损压缩,支持透明度,如果保存细节丰富的照片体积会比较大。(4)WBMP 支持1位颜色,在WAP手机里显示,但最终没有得到广泛应用。(5)WebP 同时兼容有损压缩和无损压缩的图像文件格式,压缩能力比JPEG强。10.1.2 常见的图像格式PHP提供了gd_info()函数,它会返回一个关联数组来描述

4、GD库的信息。Array( GD Version = bundled (2.1.0 compatible) FreeType Support = 1 FreeType Linkage = with freetype GIF Read Support = 1 GIF Create Support = 1 JPEG Support = 1 PNG Support = 1 WBMP Support = 1 XPM Support = 1 XBM Support = 1 WebP Support = 1 JIS-mapped Japanese Font Support = )图像的常见操作 先定一个小

5、目标!掌握图像的绘制方法,能够完成图像的绘制10.2.1 绘制图像快速入门10.2.1 绘制图像快速入门通过PHP绘制图像和在纸上绘画类似,基本的流程就是有一张画纸,然后在画纸上绘制各种图形,最后填充颜色完成作品。首先要创建一个画布,它相当于绘画的图纸。然后选取颜色,相当于绘画时选择的颜料。接着将画布背景涂成白色,然后画一个红色的圆形。最后输出图像。 先定一个小目标!掌握图像的基本操作,能够完成创建画布、处理颜色和输出图像操作10.2.2 图像的基本操作10.2.2 图像的基本操作PHP有多种创建图像的方式,可以基于一个已有的文件创建,也可以直接创建一个空白画布。常用的创建画布的函数如下。函数

6、功能resource imagecreate(int $width, int $height)创建指定宽高的空白画布图像resource imagecreatetruecolor(int $width, int $height )创建指定宽高的真彩色空白画布图像resource imagecreatefromgif(string $filename)从给定的文件路径创建GIF格式的图像resource imagecreatefromjpeg(string $filename)从给定的文件路径创建JPEG格式的图像resource imagecreatefrompng(string $filen

7、ame)从给定的文件路径创建PNG格式的图像1. 创建画布10.2.2 图像的基本操作当创建一个空白画布时,需要设置画布的宽和高,imagecreate()函数创建的画布仅支持256色,imagecreatetruecolor()函数创建一个真彩色的画布,支持的色彩比较丰富,但不支持GIF格式。根据已有的图像创建画布时,需要传递文件路径,根据图像格式调用对应的函数。例如,依据PNG格式的图像创建画布,则调用imagecreatefrompng()函数。1. 创建画布10.2.2 图像的基本操作创建好画布后,需要为画布分配颜色,常用分配颜色函数分别是imagecolorallocate()函数和

8、imagecolorallocatealpha()函数。2. 处理颜色10.2.2 图像的基本操作2. 处理颜色(1)imagecolorallocate()函数imagecolorallocate()函数用于为画布分配颜色,基本语法格式如下。$img表示画布。$red、$green和$blue分别表示颜色的RGB值,其取值范围可以是0255的整数或0 x000 xFF的十六进制数。int imagecolorallocate(resource $img, int $red, int $green, int $blue)10.2.2 图像的基本操作$alpha用于设置颜色的透明度,其取值范围是

9、0127,0表示完全不透明,127表示全透明。2. 处理颜色(2)imagecolorallocatealpha()函数imagecolorallocatealpha()函数用于为画布分配颜色,在设置颜色的同时可以指定颜色透明度,基本语法格式如下。int imagecolorallocatealpha(resource $img, int $red, int $green, int $blue, int $alpha)10.2.2 图像的基本操作完成图像制作后,可以将图像直接输出到浏览器中或者保存到指定的文件路径中。PHP中输出图像函数如表所示。函数功能imagejpeg(resource $

10、img , string $filename , int $quality =75)输出JPEG格式的图像imagegif(resource $img , string $filename)输出GIF格式的图像imagepng(resource $img , string $filename)输出PNG格式的图像imagewbmp(resource $img , string $filename , int $foreground)输出WBMP格式的图像imagewebp(resource $img, string $filename , int $quality = 80)输出WebP格式的

11、图像3. 输出图像10.2.2 图像的基本操作参数$img表示图像资源,通常是调用imagecreate()函数或imagecreatetruecolor()函数的返回值。参数$filename表示文件的保存路径。参数$quality用于设置生成的图像质量,取值范围为0100,0表示质量最差,文件最小;100表示质量最佳,文件最大。3. 输出图像在调用输出图像函数前,需要使用header()函数发送HTTP响应头给浏览器,告知输出内容的MIME类型,从而使浏览器正确解析图像。T10.2.2 图像的基本操作在创建画布时,若要保留PNG格式图像的透明通道,则使用imagesavealpha()函数

12、进行相关的设置,基本语法格式如下。$img为图像资源。$saveflag表示是否保留透明通道,默认值为false,表示不保留透明通道,true表示保留透明通道。3. 输出图像bool imagesavealpha(resource $img, bool $saveflag) 先定一个小目标!掌握基本形状的绘制,能够根据实际需要绘制基本形状10.2.3 绘制基本形状10.2.3 绘制基本形状在绘制图像时,无论多么复杂的图像都是由基本图形组成的,例如点、线、面(矩形、圆)等。掌握了这些基本图形的绘制方法后,才能绘制出各种风格独特的图像。10.2.3 绘制基本形状函数功能imagesetpixel(

13、resource $img, int $x, int $y, int $color)在坐标($x, $y)处使用$color在$img上绘制一个点imageline(resource $img, int $x1, int $y1, int $x2, int $y2, int $color)从坐标(x1,y1)到(x2,y2)使用$color在$img上绘制一条线段imagerectangle(resource $img, int $x1, int $y1, int $x2, int $y2, int $color)使用$color在$img上绘制一个矩形,其左上角坐标为(x1,y1),右下角坐

14、标为(x2,y2)imagepolygon(resource $img, array $points, int $num_points , int $color)使用$color在$img上创建一个多边形,$points包含了多边形的各个顶点坐标,$num_points是顶点的总数imagearc(resource $img, int $cx, int $cy, int $w, int $h, int $s, int $e, int $color)在$img上绘制一个以坐标(cx,cy)为中心的椭圆弧。$w和$h分别表示椭圆弧的宽度和高度,$s和$e表示起点和终点的角度。0位于三点钟位置,以顺

15、时针方向绘制imageellipse(resource $img, int $cx, int $cy, int $w, int $h, int $color)在$img上绘制一个以坐标($cx,$cy)为中心的椭圆。$w和$h分别表示椭圆的宽度和高度。若$w和$h相等,则为正圆在GD函数库中,提供了许多绘制基本图形的函数。10.2.3 绘制基本形状为了实现在绘制基本图形时将图像填充成指定颜色,PHP还提供了一些函数。函数功能imagefill(resource $img, int $x, int $y, int $color)在$img图像的坐标($x,$y)处用$color色执行区域填充(即

16、与$x,$y点颜色相同且相邻的点都会被填充)imagefilledrectangle(resource $img, int $x1, int $y1, int $x2, int $y2, int $color)在$img上绘制一个矩形并填充$color颜色,其左上角坐标为(x1,y1),右下角坐标为(x2,y2)imagefilledpolygon(resource $img, array $points, int $num_points, int $color)在$img上绘制一个多边形并填充$color颜色,$num_points的值必须大于 3imagefilledarc(resourc

17、e $img, int $cx, int $cy, int $w, int $h, int $s, int $e, int $color, int $style)在$img上绘制一个以坐标($cx,$cy)中心的椭圆弧且填充$color颜色,$w和$h分别表示椭圆弧的宽度和高度,$s和$e分别为起点和终点的角度,$style为圆弧的样式imagefilledellipse(resource $img, int $cx, int $cy, int $w, int $h, int $color)在$img上绘制一个以坐标($cx,$cy)为中心的椭圆并填充$color颜色,$w和$h分别指定了椭圆

18、的宽度和高度 先定一个小目标!掌握文本的绘制,能够开发验证码、文字水印功能10.2.4 绘制文本10.2.4 绘制文本array imagettftext( resource $img, / 图像资源 float $size, / 字体大小 float $angel, / 文字倾斜角度 int $x, / 绘制位置的x坐标 int $y, / 绘制位置的y坐标 int $color, / 文字颜色 string $fontfile, / 字体文件路径 string $text/ 文字内容);在PHP中,绘制文本通常用于开发验证码、文字水印等功能。imagettftext()函数用于将文字写入到

19、图像中,基本语法格式如下。10.2.4 绘制文本除了imagettftext()函数之外,PHP还提供了其他绘制文本函数。函数功能imagechar(resource $img, int $font, int $x, int $y, string $c, int $color)将字符串$c的第一个字符绘制在$img中,坐标为($x,$y),颜色为$color,字体为$fontimagecharup(resource $img, int $font, int $x, int $y, string $c, int $color)将字符串$c的第一个字符垂直绘制在$img中,坐标为($x,$y),颜

20、色为$color,字体为$fontimagestring(resource $img, int $font, int $x, int $y, string $s, int $color)将字符串$s绘制在$img中,其坐标为($x,$y),颜色为$color,字体为$font imagestringup(resource $img, int $font, int $x, int $y, string $s, int $color)将字符串$s垂直绘制在$img中,其坐标为($x,$y),颜色为$color,字体为$font图像的高级处理 先定一个小目标!掌握图像叠加与缩放,能够完成图像的叠加与

21、缩放操作10.3.1 图像叠加与缩放10.3.1 图像叠加与缩放在项目开发中,为图像添加水印、生成缩略图都是很常见的功能。GD库中提供了许多图像处理的函数,可以实现这些功能。函数功能imagecopy(resource $dst_img, resource $src_img, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h)将$src_img图像中从坐标($src_x, $src_y)开始,宽度为$src_w,高度为$src_h的一部分复制到$dst_img图像中坐标为($dst_x, $dst_y)

22、的位置上imagecopymerge(resource $dst_img, resource $src_img, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct )复制并合并图像,$pct决定合并程度,其值范围是0100。当$pct=0时,$dst_img中不显示$src_img;当$pct=100时,与imagecopy()效果相同imagecopymergegray(resource $dst_img, resource $src_img, int $dst_x, int $d

23、st_y, int $src_x, int $src_y, int $src_w, int $src_h, int $pct)此函数与imagecopymerge()函数的功能类似,但在合并时会在复制前将目标像素转换为灰度级来保留原色度10.3.1 图像叠加与缩放函数功能imagecopyresampled(resource $dst_img, resource $src_img, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h)将$src_img从坐标

24、($src_x, $src_y)开始,宽度为 $src_w,高度为$src_h的一部分复制到$dst_img图像中坐标为($dst_x, $dst_y)且宽度为$dst_w、高度为$dst_h的位置。若目标宽度和高度与复制部分不同,则会进行相应的收缩和拉伸imagecopyresized(resource $dst_img, resource $src_img, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h)将$src_img从坐标($src_x, $

25、src_y)开始,宽度为 $src_w、高度为$src_h的一部分复制到$dst_img图像中坐标为($dst_x, $dst_y)且宽度为$dst_w、高度为$dst_h的位置。若目标宽度和高度与复制部分不同,则会进行相应的收缩和拉伸10.3.1 图像叠加与缩放实现图像叠加时,可以将图像全部叠加到目标图像中,也可以只将局部图像叠加到目标图像中。1. 图像叠加10.3.1 图像叠加与缩放在程序开发中,图像的缩放首先要获取原图的宽和高,然后根据不同的需求选择不同的缩放方式,常用的图像缩放方式如下。2. 图像缩放 先定一个小目标!掌握图像过滤,能够根据实际需要进行图像过滤10.3.2 图像过滤10

26、.3.2 图像过滤PHP不仅可以绘制基本图形,还可以对图像进行过滤,例如反色、浮雕、模糊、柔滑等效果。PHP中的imagefilter()函数可以对图像进行过滤,该函数的语法格式如下。bool imagefilter( resource $image, / 图像资源 int $filtertype, / 过滤类型 int $arg1, / 根据过滤类型确定其作用 int $arg2, / 根据过滤类型确定其作用 int $arg3, / 根据过滤类型确定其作用 int $arg4 / 根据过滤类型确定其作用)10.3.2 图像过滤$filtertype可以设置的值如下。过滤类型说明 IMG_F

27、ILTER_NEGATE反转图像的颜色 IMG_FILTER_GRAYSCALE通过将红色、绿色、蓝色分量更改为其加权总和,将图像转换成灰度 IMG_FILTER_BRIGHTNESS改变图像的亮度,用$arg1设定亮度级别,取值范围-255255 IMG_FILTER_CONTRAST改变图像的对比度,用$arg1设定对比度级别 IMG_FILTER_COLORIZE用指定颜色转换图像,用$arg1、$arg2、$arg3指定red、blue、green,取值范围为0255;$arg4指定透明度,取值范围为0127 IMG_FILTER_EDGEDETECT用边缘检测来突出图像的边缘10.3

28、.2 图像过滤过滤类型说明IMG_FILTER_EMBOSS使图像浮雕化IMG_FILTER_GAUSSIAN_BLUR将高斯模糊应用于图像IMG_FILTER_SELECTIVE_BLUR将选择性模糊应用于图像IMG_FILTER_MEAN_REMOVAL去除图像上的噪点并产生“粗糙”效果IMG_FILTER_SMOOTH使图像更柔滑,用$arg1设定平滑级别IMG_FILTER_PIXELATE对图像应用像素化效果,$arg1设置块大小,$arg2设置像素化效果模式IMG_FILTER_SCATTER对图像应用散射效果,$arg1、$arg2设置效果强度,$arg3设置像素颜色动手实践:在

29、线相册 先定一个小目标!掌握在线相册的开发,能够独立完成代码编写动手实践:在线相册在生活中,人们将照片冲洗出来后,通常会放入到相册中,以便于更好地翻阅。而随着数码时代的到来,大多数人选择直接将照片保存在计算机或手机中,或上传到互联网中分享。在线相册就是一种用于保存图像的Web应用,用户可以在网站中创建相册、上传图片、浏览图片,或者将相册的URL地址分享给其他人浏览。动手实践:在线相册在线相册的功能主要包括创建相册、上传图片、排序、搜索,以及浏览相册和图片等功能。用户可以在一个相册中创建多个子相册,可以将图片设置为相册的封面。动手实践:在线相册动手实践:在线相册本项目的具体开发需求如下。配置一个

30、虚拟主机“”用于测试和运行项目。支持最大5MB的图片上传,将图片保存到服务器,并提供一个URL来访问。使用MySQL数据库保存相册数据(相册结构、图片保存地址等)。在一个相册内可以创建子相册,默认最多支持5级嵌套,且能够限制最多层级数。在相册中显示图片列表时,为避免图片文件过大造成页面打开缓慢,只显示缩略图。在浏览图片时,可以通过“上一张”“下一张”按钮切换到本相册内的其他图片。支持相册和图片的删除,在删除相册时只允许删除空相册。可以将相册内的某张图片设置为相册封面。可以通过文件名来搜索相册中的图片。本章小结本章主要介绍了PHP的图像处理技术,首先介绍了GD库和常见图像格式,然后介绍了图像的一些常见操作,最后讲解了对图像的高级处理,包括图像的叠加、缩放和过滤。通过本章的学习,大家应能够熟练掌握PHP中基本绘图技术,能够在实际项目中处理图像。本章小结

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

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com