您的位置:首页 > 其它

一个验证码图片生成(刚写的,拿出来分享)

2007-10-22 10:34 267 查看
流程:
1.随机出一个4位的随机数存到sessioon中
2.设置图片长和宽
3.创建图像
4.设置背景
5.将随机数写入图片
6.加入干扰素(在图片上随机打印N个 点)
7.给图片家边框
8.输出图片
//之后就是把用户输入的验证码数字跟 $_SESSION['login_validate'] 变量做比较就ok了
[php]<?php
session_start();
//设置随机数种子
srand((double)microtime()*1000000);
//随机出4个数字

for($i=0;$i<4;$i++){
$mun.= mt_rand(0,9);
}

$_SESSION['login_validate'] = $mun;

$img_height=60; //先定义图片的长、宽
$img_width=20;

$img = imagecreate($img_height,$img_width);//创建图像
ImageColorAllocate($img, 255,255,255);//设置图像背景

$color_rand = ImageColorAllocate($img, mt_rand(0,100),mt_rand(0,100),mt_rand(0,100));
imagestring($img, 5, 12, 2, $_SESSION['login_validate'],$color_rand); //验证数字嵌入图片

for($i=0;$i<100;$i++) //加入干扰象素
{
imagesetpixel($img, mt_rand(1,$img_height-1), mt_rand(1,$img_width-1), ImageColorAllocate($img, mt_rand(150,250),mt_rand(150,250),mt_rand(100,250)));
}

//画上边框
ImageRectangle($img,0,0,$img_height-1,$img_width-1,ImageColorAllocate($img,mt_rand(0,100),mt_rand(0,100),mt_rand(0,100)));

Header("Content-type: image/png"); //告诉浏览器,下面的数据是图片,而不要按文字显示
//生成png格式
ImagePNG($img);
ImageDestroy($img);
?>
[/php]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: