利用PHP应用图像处理生成验证码
2009-10-26 11:32
471 查看
第一种生成方式:
<?php
session_start();
header("content-type:image/png"); //设置创建图像格式
$image_width=80; //设置图像宽度
$image_height=18; //设置图像高度
srand(microtime()*100000); //设置随机数的种子
for($i=0;$i<4;$i++){ //循环输出一个四位的随机数
$new_number.=dechex(rand(0,15));
}
$_SESSION[check_checks]=$new_number; //将获取的随机数验证码写入SESSION变量中
$num_image=imagecreate($image_width,$image_height); //创建一个画布
imagecolorallocate($num_image,255,255,255); //设置画面的颜色
for($i=0;$i<strlen($_SESSION[check_checks]);$i++){ //循环读取SESSION变量中的验证码
$font=mt_rand(3,5); //设置随机的字体
$x=mt_rand(1,8)+$image_width*$i/4; //设置随机字符所在位置的X轴坐标
$y=mt_rand(1,$image_height/4); //设置随机字符所在位置的Y轴坐标
$color=imagecolorallocate($num_image,mt_rand(1,100),mt_rand(0,150),mt_rand(0,200)); //设置字符的颜色
imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color); //水平输出字符
}
imagepng($num_image);
imagedestroy($num_image);
?>
第二种生成方式:
<?php
session_start();
//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreate(44,18);
$back = ImageColorAllocate($im, 245,245,245);
imagefill($im,0,0,$back); //背景
srand((double)microtime()*1000000);
//生成4位数字
for($i=0;$i<4;$i++){
$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
$authnum=rand(0,9);
$vcodes.=$authnum;
imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}
for($i=0;$i<100;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
ImagePNG($im);
ImageDestroy($im);
$_SESSION['VCODE'] = $vcodes;
?>
<?php
session_start();
header("content-type:image/png"); //设置创建图像格式
$image_width=80; //设置图像宽度
$image_height=18; //设置图像高度
srand(microtime()*100000); //设置随机数的种子
for($i=0;$i<4;$i++){ //循环输出一个四位的随机数
$new_number.=dechex(rand(0,15));
}
$_SESSION[check_checks]=$new_number; //将获取的随机数验证码写入SESSION变量中
$num_image=imagecreate($image_width,$image_height); //创建一个画布
imagecolorallocate($num_image,255,255,255); //设置画面的颜色
for($i=0;$i<strlen($_SESSION[check_checks]);$i++){ //循环读取SESSION变量中的验证码
$font=mt_rand(3,5); //设置随机的字体
$x=mt_rand(1,8)+$image_width*$i/4; //设置随机字符所在位置的X轴坐标
$y=mt_rand(1,$image_height/4); //设置随机字符所在位置的Y轴坐标
$color=imagecolorallocate($num_image,mt_rand(1,100),mt_rand(0,150),mt_rand(0,200)); //设置字符的颜色
imagestring($num_image,$font,$x,$y,$_SESSION[check_checks][$i],$color); //水平输出字符
}
imagepng($num_image);
imagedestroy($num_image);
?>
第二种生成方式:
<?php
session_start();
//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreate(44,18);
$back = ImageColorAllocate($im, 245,245,245);
imagefill($im,0,0,$back); //背景
srand((double)microtime()*1000000);
//生成4位数字
for($i=0;$i<4;$i++){
$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
$authnum=rand(0,9);
$vcodes.=$authnum;
imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}
for($i=0;$i<100;$i++) //加入干扰象素
{
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
}
ImagePNG($im);
ImageDestroy($im);
$_SESSION['VCODE'] = $vcodes;
?>
相关文章推荐
- php图形图像处理之生成验证码
- PHP的gd库(图像生成和处理)的应用
- PHP基本知识 图像处理,验证码的应用
- 利用php生成验证码
- PHP 图形图像操作(生成图像验证码、添加水印等)
- PHP应用-图像处理ppt
- GD2使用图像处理技术生成验证码
- 解决PHP生成验证码时“图像因其本身有错无法显示”的错误
- PHP图形图像的典型应用 --常用图像的应用(验证码)
- php封装一个生成图像验证码
- 利用ASP.NET一般处理程序动态生成Web图像
- php学习笔记:利用gd库生成图片,并实现随机验证码
- 利用php的GD库生成验证码
- PHP利用GD库绘图和生成验证码图片
- 【PHP学习】GD库分析(图像生成和处理)
- PHP图像处理及验证码
- 利用php生成验证码
- php基础之gd图像生成、缩放、logo水印和简单验证码实现
- PHP生成图像验证码的方法小结(2种方法)