验证码修改版-要的可以进来了

浏览:1917 发布日期:2013/08/16 分类:技术分享 关键字: 验证码
首先 找到你的 验证码类文件,然后找到 buildImageVerify ,把整个 函数替换掉     static function buildImageVerify($length=4, $mode=3, $type='png', $width=120, $height=60, $size='25',$verifyName='verify') {
        $fontpath=  dirname(__PATH__).'/Public/Font/font.ttf';
        import('ORG.Util.String');
        $randval = String::randString($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(225, 255, 255, 223);
        $g = Array(225, 236, 237, 255);
        $b = Array(225, 236, 166, 125);
        $key = mt_rand(0, 3);

        $backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]);    //背景色(随机)
        $borderColor = imagecolorallocate($im, 100, 100, 100);                    //边框色

        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++) {
            imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $stringColor);
        }
        for ($i = 0; $i < 25; $i++) {
            imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $stringColor);
        }

        $whites = ImageColorAllocate($im, mt_rand(0, 255),mt_rand(0, 255),mt_rand(0, 255));

        $y = $height - ($height - $size) / 2;
        if(file_exists($fontpath)){
            for ($i = 0; $i < $length; $i++) {
                $x = $size * $i + $left+10;
                imagettftext($im, $size, mt_rand(10, 10), $x, $y, $whites, $fontpath, $randval{$i});
            }
        }else{
            for ($i = 0; $i < $length; $i++) {
                imagestring($im, 5, $i * 10 + 5, mt_rand(1, 8), $randval{$i}, $red);
            }
        }
        Image::output($im, $type);
    }





说明:
字体必须存在才能产生效果
字体随即颜色
字体可以替换 Public/Font/font.ttf
附送字体 不支持字母小写,不支持中文

感谢 @前世有约丶 的提示

附件 font.7z ( 17.39 KB 下载:118 次 )

最佳答案
评论( 相关
后面还有条评论,点击查看>>