收藏 分销(赏)

PHP入门培训教程PHP培训教程PHP基础教程GD库图像处理.pptx

上传人:a199****6536 文档编号:4607869 上传时间:2024-10-06 格式:PPTX 页数:27 大小:250.88KB
下载 相关 举报
PHP入门培训教程PHP培训教程PHP基础教程GD库图像处理.pptx_第1页
第1页 / 共27页
PHP入门培训教程PHP培训教程PHP基础教程GD库图像处理.pptx_第2页
第2页 / 共27页
PHP入门培训教程PHP培训教程PHP基础教程GD库图像处理.pptx_第3页
第3页 / 共27页
PHP入门培训教程PHP培训教程PHP基础教程GD库图像处理.pptx_第4页
第4页 / 共27页
PHP入门培训教程PHP培训教程PHP基础教程GD库图像处理.pptx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、回顾PHP中常见的错误有哪三种?如何开启文件方式的日志记录,使用哪个函数记录?什么是时间戳?相关函数都有哪些?预习检查GD库绘图都需要哪几步骤?如何创建一个画布?如何输出一个图像?本章任务1.PHP中GD库的使用2.验证码的绘制和使用3.PHP图片处理(缩放、裁剪、水印、旋转和翻转)1.PHP中GD库的使用1.1GD简介1.2画布管理1.3设置颜色1.4生成图像1.5绘制图像1.6在图像中绘制文字1.1GD简介PHP不仅限于只产生HTML的输出,还可以创建及操作多种不同格式的图像文件。PHP提供了一些内置的图像信息函数,也可以使用GD函数库创建新图像或处理已有的图像。目前GD2库支持GIF、J

2、PEG、PNG和WBMP等格式。此外还支持一些FreeType、Type1等字体库。JPEG是一种压缩标准的名字,通常是用来存储照片或者存储具有丰富色彩和色彩层次的图像。这种格式使用了有损压缩。PNG是可移植的网络图像,对图像采用了无损压缩标准。GIF原义是“图像互换格式”,是一种基于LZW算法的连续色调的无损压缩格式。GD库图像绘制的步骤在PHP中创建一个图像应该完成如下所示的4个步骤:1.创建一个背景图像(也叫画布),以后的操作都基于此背景图像。2.在背景上绘制图像轮廓或输入文本。3.输出最终图形4.释放资源创建背景绘制图像输出图形释放资源?php/1.创建画布$im=imageCreat

3、eTrueColor(200,200);/建立空白背景$white=imageColorAllocate($im,255,255,255);/设置绘图颜色$blue=imageColorAllocate($im,0,0,64);/2.开始绘画imageFill($im,0,0,$blue);/绘制背景imageLine($im,0,0,200,200,$white);/画线imageString($im,4,50,150,Sales,$white);/添加字串/3.输出图像header(Content-type:image/png);imagePng($im);/以PNG格式将图像输出/4.释

4、放资源imageDestroy($im);1.2画布管理imagecreate-新建一个基于调色板的图像resourceimagecreate(intx_size,inty_size)本函数用来建立空新画布,参数为图片大小,单位为像素(pixel)。支持256色。imagecreatetruecolor-新建一个真彩色图像resourceimagecreatetruecolor(intx_size,inty_size)新建一个真彩色图像画布,需要GD2.0.1或更高版本,不能用于GIF文件格式。imagedestroy-销毁一图像boolimagedestroy(resourceimage)i

5、magedestroy()释放与image关联的内存。1.3设置颜色imagecolorallocate-为一幅图像分配颜色语法:intimagecolorallocate(resourceimage,intred,intgreen,intblue)imagecolorallocate()返回一个标识符,代表了由给定的RGB成分组成的颜色。red,green和blue分别是所需要的颜色的红,绿,蓝成分。这些参数是0到255的整数或者十六进制的0 x00到0 xFF。imagecolorallocate()必须被调用以创建每一种用在image所代表的图像中的颜色。$im=imagecreatet

6、ruecolor(100,100);/创建画布的大小为100 x100$red=imagecolorallocate($im,255,0,0);/由十进制整数设置一个颜色$white=imagecolorallocate($im,0 xFF,0 xFF,0 xFF);/十六进制方式1.4生成图片imagegif-以GIF格式将图像输出到浏览器或文件语法:boolimagegif(resourceimage,stringfilename)imagejpeg-以JPEG格式将图像输出到浏览器或文件语法:boolimagejpeg(resourceimage,stringfilename,intqu

7、ality)imagepng-以PNG格式将图像输出到浏览器或文件语法:boolimagepng(resourceimage,stringfilename)imagewbmp-以WBMP格式将图像输出到浏览器或文件语法:boolimagewbmp(resourceimage,stringfilename,intforeground)1.5绘制图像imagefill-区域填充语法:boolimagefill(resourceimage,intx,inty,intcolor)imagefill()在image图像的坐标x,y(图像左上角为0,0)处用color颜色执行区域填充(即与x,y点颜色相同

8、且相邻的点都会被填充)。imagesetpixel-画一个单一像素语法:boolimagesetpixel(resourceimage,intx,inty,intcolor)imagesetpixel()在image图像中用color颜色在x,y坐标(图像左上角为0,0)上画一个点。imageline-画一条线段语法:boolimageline(resourceimage,intx1,inty1,intx2,inty2,intcolor)imageline()用color颜色在图像image中从坐标x1,y1到x2,y2(图像左上角为0,0)画一条线段。imagerectangle-画一个矩形

9、语法:boolimagerectangle(resourceimage,intx1,inty1,intx2,inty2,intcol)imagerectangle()用col颜色在image图像中画一个矩形,其左上角坐标为x1,y1,右下角坐标为x2,y2。图像的左上角坐标为0,0。imagefilledrectangle-画一矩形并填充语法:boolimagefilledrectangle(resourceimage,intx1,inty1,intx2,inty2,intcolor)imagefilledrectangle()在image图像中画一个用color颜色填充了的矩形,其左上角坐标

10、为x1,y1,右下角坐标为x2,y2。0,0是图像的最左上角。imagepolygon-画一个多边形语法:boolimagepolygon(resourceimage,arraypoints,intnum_points,intcolor)imagepolygon()在图像中创建一个多边形。points是一个PHP数组,包含了多边形的各个顶点坐标,即points0=x0,points1=y0,points2=x1,points3=y1,以此类推。num_points是顶点的总数。imagefilledpolygon-画一多边形并填充语法:boolimagefilledpolygon(resour

11、ceimage,arraypoints,intnum_points,intcolor)imagefilledpolygon()在image图像中画一个填充了的多边形。points参数是一个按顺序包含有多边形各顶点的x和y坐标的数组。num_points参数是顶点的总数,必须大于3。imageellipse-画一个椭圆语法:boolimageellipse(resourceimage,intcx,intcy,intw,inth,intcolor)imageellipse()在image所代表的图像中画一个中心为cx,cy(图像左上角为0,0)的椭圆。w和h分别指定了椭圆的宽度和高度,椭圆的颜色由

12、color指定。imagefilledellipse-画一椭圆并填充语法:boolimagefilledellipse(resourceimage,intcx,intcy,intw,inth,intcolor)imagefilledellipse()在image所代表的图像中以cx,cy(图像左上角为0,0)为中心画一个椭圆。w和h分别指定了椭圆的宽和高。椭圆用color颜色填充。如果成功则返回TRUE,失败则返回FALSE。imagearc-画椭圆弧boolimagearc(resourceimage,intcx,intcy,intw,inth,ints,inte,intcolor)imag

13、earc()以cx,cy(图像左上角为0,0)为中心在image所代表的图像中画一个椭圆弧。w和h分别指定了椭圆的宽度和高度,起始和结束点以s和e参数以角度指定。0位于三点钟位置,以顺时针方向绘画。imagefilledarc-画一椭圆弧且填充boolimagefilledarc(resourceimage,intcx,intcy,intw,inth,ints,inte,intcolor,intstyle)imagefilledarc()在image所代表的图像中以cx,cy(图像左上角为0,0)画一椭圆弧。如果成功则返回TRUE,失败则返回FALSE。w和h分别指定了椭圆的宽和高,s和e参数

14、以角度指定了起始和结束点。style可以是下列值按位或(OR)后的值:IMG_ARC_PIEIMG_ARC_CHORDIMG_ARC_NOFILLIMG_ARC_EDGED1.6在图像中绘制文字imagestring-水平地画一行字符串语法:boolimagestring(resourceimage,intfont,intx,inty,strings,intcol)imagestring()用col颜色将字符串s画到image所代表的图像的x,y坐标处(这是字符串左上角坐标,整幅图像的左上角为0,0)。如果font是1,2,3,4或5,则使用内置字体。imagestringup-垂直地画一行字

15、符串语法:boolimagestringup(resourceimage,intfont,intx,inty,strings,intcol)imagestring()用col颜色将字符串s垂直地画到image所代表的图像的x,y座标处(图像的左上角为0,0)。如果font是1,2,3,4或5,则使用内置字体。imagechar-水平地画一个字符语法:boolimagechar(resourceimage,intfont,intx,inty,stringc,intcolor)imagechar()将字符串c的第一个字符画在image指定的图像中,其左上角位于x,y(图像左上角为0,0),颜色为c

16、olor。如果font是1,2,3,4或5,则使用内置的字体(更大的数字对应于更大的字体)。imagecharup-垂直地画一个字符语法:boolimagecharup(resourceimage,intfont,intx,inty,stringc,intcolor)imagecharup()将字符c垂直地画在image指定的图像上,位于x,y(图像左上角为0,0),颜色为color。如果font为1,2,3,4或5,则使用内置的字体。imagettftext-用TrueType字体向图像写入文本语法:arrayimagettftext(resourceimage,floatsize,floa

17、tangle,intx,inty,intcolor,stringfontfile,stringtext)?php$im=imagecreatetruecolor(400,30);/创建400 x300像素大小的画布$white=imagecolorallocate($im,255,255,255);/创建白色$grey=imagecolorallocate($im,128,128,128);/创建灰色$black=imagecolorallocate($im,0,0,0);/创建黑色 imagefilledrectangle($im,0,0,399,29,$white);/使用白色作为背景 /

18、如果有中文输出,需要将其转码,转换为UTF-8的字符串才可以直接传递$text=iconv(GB2312,UTF-8,LAMP兄弟连无兄弟,不编程!);$font=simsun.ttc;/指定字体,将系统中对应字体复制到当前目录下 imagettftext($im,20,0,12,21,$grey,$font,$text);/输出灰色字串作为阴影 imagettftext($im,20,0,10,20,$black,$font,$text);/输出一个黑色的字符串 header(Content-type:image/png);/通知浏览器将输出格式为PNG的图像 imagepng($im);/

19、向浏览器中输出PNG格式的图像 imagedestroy($im);/销毁资源,释放内存占用的空间2.验证码的绘制和使用验证码(CAPTCHA)是“CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机和人的公共全自动程序。使用验证码的目的:可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区)。验证码的样式也是千奇百态,

20、本节重点讲解使用GD库绘制图像的方式。具体实现步骤设计验证码的步骤验证码在表单中如何使用3.PHP图片处理3.1图片背景管理3.2图片缩放和裁剪3.3添加图片水印3.4图片旋转和翻转3.1图片背景管理从指定的图片文件或URL地址来新建一个图像。成功则返回一个图像标识符,失败时返回一个空字符串,并且输出一条错误信息。由于格式不同,则需要分别使用对应图片背景处理函数。resourceimagecreatefrompng(stringfilename)从PNG文件或URL新建一图像resourceimagecreatefromjpeg(stringfilename)从JPEG文件或URL新建一图像r

21、esourceimagecreatefromgif(stringfilename)从GIF文件或URL新建一图像resourceimagecreatefromwbmp(stringfilename)从WBMP文件或URL新建一图像其他图像处理函数:intimagesx(resourceimage)取得图像宽度intimagesy(resourceimage)取得图像高度arraygetimagesize(string$filename,array&$imageinfo)取得图像大小、类型等信息3.2图片缩放和裁剪boolimagecopyresampled(resource$dst_image

22、,resource$src_image,int$dst_x,int$dst_y,int$src_x,int$src_y,int$dst_w,int$dst_h,int$src_w,int$src_h)重采样拷贝部分图像并调整大小,是将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。成功时返回TRUE,或者在失败时返回FALSE。其中dst_image和src_image分别是目标图像和源图像的标识符。3.3添加图片水印boolimagecopy(resource$dst_im,resource$src_im,int$dst

23、_x,int$dst_y,int$src_x,int$src_y,int$src_w,int$src_h)拷贝图像的一部分(也就是图片合成)。将src_im图像中坐标从src_x,src_y 开始,宽度为src_w,高度为src_h的一部分拷贝到dst_im图像中坐标为dst_x和dst_y的位置上。3.4图片旋转和翻转resourceimagerotate(resource$src_im,float$angle,int$bgd_color,int$ignore_transparent)用给定角度旋转图像将src_im图像用给定的angle角度旋转。bgd_color指定了旋转后没有覆盖到的部分的颜色。旋转的中心是图像的中心,旋转后的图像会按比例缩小以适合目标图像的大小边缘不会被剪去。如果ignore_transparent被设为非零值,则透明色会被忽略(否则会被保留)。总结本章必须掌握的知识点:画布管理和设置颜色绘制和生成图像验证码的绘制和使用图片的一些常见的操作(缩放、添加水印、裁剪、旋转和翻转)

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服