PHP基于GD库验证码的制作

 

<?php

$count = 4;
$type = 2;
$code = getCode($count, $type);

$width = 20 * $count;
$height = 30;

$img = imagecreatetruecolor($width, $height);

$bg = imagecolorallocate($img, 200, 200, 200);
imagefill($img, 0, 0, $bg);

$color[] = imagecolorallocate($img, 54, 37, 52);
$color[] = imagecolorallocate($img, 27, 22, 69);
$color[] = imagecolorallocate($img, 124, 119, 22);
$color[] = imagecolorallocate($img, 23, 79, 16);
$color[] = imagecolorallocate($img, 10, 14, 91);

imagerectangle($img, 0, 0, $width-1, $height-1, $color[rand(0,count($color)-1)]);

for($i = 0; $i < $count; $i++){
imagettftext($img, 18, rand(-40,40), 8+(18*$i), 24, $color[rand(0,count($color)-1)], 'msyh.ttc', $code[$i]);
}

for($i = 0; $i < 200; $i++){
$randColor = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255));
imagesetpixel($img, rand(0,$width), rand(0,$height), $randColor);
}

for($i = 0; $i < 5; $i++){
$randColor = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255));
imageline($img, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height), $randColor);
}

header("Content-Type:image/png");
imagepng($img);

imagedestroy($img);

function getCode($count=4, $type=0){
$str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$code = null;

$end = array(9,35,61);

for($i = 0; $i < $count; $i++){
$code .= $str[rand(0,$end[$type])];
}

return $code;
}

// echo getCode();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值