图像处理技能
基本图像处理技能
要想利用图片处理技能,必须先到php.ini中,开启“php_gd2.dll”库——常日称为GD库!
创建画布
画布 = ImageCreate(宽, 高); //普通低实行画布
画布 = ImageCreateTrueColor(宽, 高); //真彩色画布
画布 = ImageCreatefromJpeg(图片文件路径)
画布 = ImageCreatefromGif(图片文件路径)
画布 = ImageCreatefromPng(图片文件路径)
画布基本操作
分配颜色:ImageColorAllocate(画布, 红,绿,蓝):
便是指设定“画图的刷子”的颜色,结果是一个“颜色值”
红绿蓝都是0-255的数字。
添补画布:ImageFill(画布, x, y, 颜色):
在画布的位置(x,y)处,“倾倒”设定颜色的“墨水”——结果是,凡是跟该点“连成一片”的区域,都染上了该颜色
画布上写字:ImageString(画布,大小,x,y,笔墨,颜色);
大小:只有1-5个数字可用,表示从最小到最大的笔墨。
x,y:是指放笔墨的左上角位置;
笔墨:便是要输出的字符串,不能利用中文。
参考另一个可以更自由书写笔墨的函数:imagettftext()
画直线:imageline(画布,点1x,点1y,点2x,点2y,颜色);
画矩形:imagerectangle(画布,左上角x,左上角y,右下角x,右下角y,颜色);
画弧线:imgarc(画布,中央x,中央y,椭圆宽,椭圆高,起始角度,终止角度,颜色)
获取图片尺寸:imagesx(画布),imagesy(画布)
适用于从现有图片来创建的画布。
获取图片尺寸及类型:getImageSize(图片文件路径), 结果是一个数组:array(0=>宽度, 1=>高度, 2=>类型标记,'mine'=>mime字符串)
举例1:
举例2:画直线,画矩形,画弧线:
举例3:
输出图片(图像)
对付一个画布资源(来源于多少个imagecreate....()函数),它要变成(表现为)图片(文件),有两种做法:
做法1:
直接输出成为一个图片文件——须要指定路径和文件名(含后缀):
imagegif( $画布, “./xxx.gif”);
imagejpeg( $画布, “./xxx.jpg”);
imagepng( $画布, “./xxx.png”);
做法2:
直接将一个php代码中的画布资源,“输出为一个要求的结果”——便是在浏览器中直接看到图片。
比如类似这样:
http://www.abc.com/page1.php //结果,浏览器中看到的是一个图片——而不是html网页!
或:
page2.html中有一个img标签,类似这样:
<img src=”http://www.abc.com/page1.php” />//结果,page2.html中看到一个图片(及其他网页内容)
特殊把稳:上述这种情形,都是指:一个php文件,实行的结果是一个可显示的图片——个中不能有任何html或其他笔墨输出!
!
!
结果为:
或直接浏览该php文件:
验证码技能的实现
便是用于识别是“人”还是“机器”的一种程序。
验证码实在是一个“我们的程序天生”的图片——我们的程序能够认识它——但别人的不可以。
基本事理:
页面1:
随机产生一个验证码(文本),并存入session;
该页面可以天生一张图片,图片上有该文本。
页面2:
显示page1的图片,并让人(用户)去输入看到的图片上的文本。
以及填写其他表单信息,并提交到页面3
页面3:
取出页面1存入到session的那个文本信息,跟页面2上用户输入并提交的验证码信息进行比拟:
如果相等:表示是合法的提交
如果不等:表示造孽提交——机器自动提交。
代码实现:
page1:valicCode.php
page2:登录的试图文件login.html
page3:登录提交后的checklogin动作(方法)中:
图片缩放技能
事理:
1,打开一个图片——即将一个图片文件载入到一个“画布”中——画布1
2,新建另一个画布(画布2):个中可以将画布1的某些“局部矩形区域”,copy出来放入当前画布的某个位置并设定大小。
3,将画布2保存为文件。
代码演示: