图像处理技能

基本图像处理技能

要想利用图片处理技能,必须先到php.ini中,开启“php_gd2.dll”库——常日称为GD库!

php验证码技术PHP验证码技巧的实现 HTML

创建画布

画布 = 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保存为文件。

代码演示: