计应134软件实验班(刘瑞锋)学习笔记:
1.图形处理
(1)简单图像:
我们在浏览网页的时候,发现浏览器中的图片都是加了logo或水印的,这样就会让图片更加富有吸引力。对图形图像处理我们要使用GD2函数库,在对图形图像进行处理时我们要用GD2中的imagecreate()函数创建一个画布。如图所示
php脚本语言:
运行结果:
这样两张图片就显示出来了,并且其中一张以半透明的形式覆盖在另一张图片上。
2.验证码处理
(1)用户登录:
现在用户登录网页的时候有许多地方都用到了验证码,但是验证码显示有的要用到JSON才会显示,所以为了方便,我是直接找的一个不用JSON就可以生成验证码的文件。如果用户和密码正确,验证码不正确,用户就不能登录,并提示验证码错误。如图所示:
通过当前页面的<img src="">来调用一个验证码文件(验证码文件是在网上找的,但是忘记是哪里了),把生成的验证码显示在登录页面中。
验证码代码:
<?php
Header("Content-type: image/PNG");
srand((double)microtime()*1000000);//播下一个生成随机数字的种子,以方便下面随机数生成的使用
$im = imagecreate(62,20); //制定图片背景大小
$black = ImageColorAllocate($im, 0,0,0); //设定三种颜色
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,0,0,$gray); //采用区域填充法,设定(0,0)
while(($authnum=rand()%100000)<10000);
//将四位整数验证码绘入图片
$_SESSION['yzm']=$authnum; //把验证码注册到session变量
imagestring($im, 5, 10, 3, $authnum, $black);
// 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 座标处(图像的左上角为 0, 0)。
//如果 font 是 1,2,3,4 或 5,则使用内置字体
for($i=0;$i<200;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
ImagePNG($im);
ImageDestroy($im);
?>
Header("Content-type: image/PNG");
srand((double)microtime()*1000000);//播下一个生成随机数字的种子,以方便下面随机数生成的使用
$im = imagecreate(62,20); //制定图片背景大小
$black = ImageColorAllocate($im, 0,0,0); //设定三种颜色
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,0,0,$gray); //采用区域填充法,设定(0,0)
while(($authnum=rand()%100000)<10000);
//将四位整数验证码绘入图片
$_SESSION['yzm']=$authnum; //把验证码注册到session变量
imagestring($im, 5, 10, 3, $authnum, $black);
// 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 座标处(图像的左上角为 0, 0)。
//如果 font 是 1,2,3,4 或 5,则使用内置字体
for($i=0;$i<200;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
ImagePNG($im);
ImageDestroy($im);
?>
感觉php越来越高大上了。