加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-12 20:07:12 所属栏目:PHP教程 来源:网络整理
导读:一、显示效果 二、代码如下 代码如下: * @Author fy */ $imgwidth=100; //图片宽度 $imgheight=40; //图片高度 $codelen=4; //验证码长度 $fontsize=20; //字体大小 $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789'; $font = 'Fonts/segoe

一、显示效果

二、代码如下
代码如下:
* @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);


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读