修改thinkphp验证码样式(颜色边框背景)

做网站,常常需要自定义一些自己喜欢的颜色背景样式,验证码也不例外。

Thinkphp 默认验证码是白色调为主的。在比较暗色调的网站上非常的显眼不好看,于是

我这里和大家说一下如何修改thinkphp验证码样式:

首先找到Thinkphp 目录下 thinkphp\Lib\ORG\Util目录下面有一个

Image.class

打开查找大概323行的时候有一个 buildImageVerify 方法。这个方法是专门生成验证码的。

这个方法代码如下:
[code]
static function buildImageVerify($length=4, $mode=1, $type=’png’, $width=48, $height=22, $verifyName=’verify’) {
import(‘ORG.Util.String’);
$randval = String::rand_string($length, $mode);
$_SESSION[$verifyName] = md5($randval);
$width = ($length * 10 + 10) > $width ? $length * 10 + 10 : $width;
if ($type != ‘gif’ && function_exists(‘imagecreatetruecolor’)) {
$im = @imagecreatetruecolor($width, $height);
} else {
$im = @imagecreate($width, $height);
}
$r = Array(29, 18, 9, 45);
$g = Array(29, 18, 9, 45);
$b = Array(29, 18, 9, 45);
$key = mt_rand(0, 3);

$backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]); //背景色(随机)
$borderColor = imagecolorallocate($im, 48, 38, 30); //边框色
$pointColor = imagecolorallocate($im, mt_rand(199, 255), mt_rand(93, 148), mt_rand(14, 31)); //点颜色

@imagefilledrectangle($im, 0, 0, $width – 1, $height – 1, $backColor);
@imagerectangle($im, 0, 0, $width – 1, $height – 1, $borderColor);
$stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
// 干扰
for ($i = 0; $i < 10; $i++) {
$fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $fontcolor);
}
for ($i = 0; $i < 25; $i++) {
$fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $pointColor);
}
for ($i = 0; $i < $length; $i++) {
imagestring($im, 5, $i * 10 + 5, mt_rand(1, 8), $randval{$i}, $stringColor);
}
// @imagestring($im, 5, 5, 3, $randval, $stringColor);
Image::output($im, $type);
}
[/code]
这里的
[code]
$r = Array(29, 18, 9, 45);
$g = Array(29, 18, 9, 45);
$b = Array(29, 18, 9, 45);
[/code]
是用来随机选取背景色组合的,可以自己修改想要的。
这里是RGB颜色。RGB颜色可以用ps来选取。!

边框和文字颜色也差不多,就修改数值就可以了。
好了就到这里。