一漂亮的PHP图片验证码实例

一、显示效果

二、代码如下
代码如下:
* @Author fy
*/

$imgwidth=100; //图片宽度
$imgheight=40; //图片高度
$codelen=4; //验证码长度
$fontsize=20; //字体大小
$charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';
$font = 'Fonts/segoesc.ttf';

$im=imagecreatetruecolor($imgwidth,$imgheight);

$while=imageColorAllocate($im,255,255);
imagefill($im,$while); //填充图像

//取得字符串
$authstr='';
$_len = strlen($charset)-1;
for ($i=0;$i<$codelen;$i++) {
$authstr .= $charset[mt_rand(0,$_len)];
}

session_start();
$_SESSION['scode']=strtolower($authstr);//全部转为小写,主要是为了不区分大小写

//随机画点,已经改为划星星了
for ($i=0;$i<$imgwidth;$i++){
$randcolor=imageColorallocate($im,mt_rand(200,255),255));
imagestring($im,mt_rand(1,5),mt_rand(0,$imgwidth),$imgheight),'*',$randcolor);
//imagesetpixel($im,$randcolor);
}
//随机画线,线条数量=字符数量(随便)
for($i=0;$i<$codelen;$i++)
{
$randcolor=imagecolorallocate($im,255));
imageline($im,$imgwidth,$randcolor);
}

$_x=intval($imgwidth/$codelen); //计算字符距离
$_y=intval($imgheight*0.7); //字符显示图片70%的位置
for($i=0;$i

$randcolor=imagecolorallocate($im,150),150));
//imagestring($im,5,$j,$imgstr[$i],$color3);
// imagettftext ( resource $image,float $size,float $angle,int $x,int $y,int $color,string $fontfile,string $text )
imagettftext($im,$fontsize,mt_rand(-30,30),$i*$_x+3,$_y,$randcolor,$font,$authstr[$i]);

}

//生成图像
header("content-type:image/PNG");
imagePNG($im);
imageDestroy($im);


相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...