首页 > php图像处理 > php 复杂生成验证码图片

php 复杂生成验证码图片

<?php
function image3($length = 4, $type = 'png', $width = 180, $height = 60, $fontface = 'fpnf.ttf', $verifyName = 'verify') {
    $code = $this->rand_string($length, 4);
    $width = ($length * 25) > $width ? $length * 25 : $width;
    $authCode = new Zend_Session_Namespace('Auth_Code');
    $authCode->imagecode = $randval;
    $im = imagecreatetruecolor($width, $height);
    $borderColor = imagecolorallocate($im, 100, 100, 100); //边框色
    $bkcolor = imagecolorallocate($im, 250, 250, 250);
    imagefill($im, 0, 0, $bkcolor);
    @imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);
    // 干扰
    for ($i = 0; $i < 15; $i++) { //开源代码phprm.com
        $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 < 255; $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) , $fontcolor);
    }
    if (!is_file($fontface)) {
        $fontface = dirname(__FILE__) . "/" . $fontface;
    }
    for ($i = 0; $i < $length; $i++) {
        $fontcolor = imagecolorallocate($im, mt_rand(0, 120) , mt_rand(0, 120) , mt_rand(0, 120)); //这样保证随机出来的颜色较深。
        $codex = substr($code, $i, 1);
        imagettftext($im, mt_rand(16, 20) , mt_rand(-60, 60) , 40 * $i + 20, mt_rand(30, 35) , $fontcolor, $fontface, $codex);
    }
    $this->output($im, $type);
}
function output($im, $type = 'png') {
    header("Content-type: image/" . $type);
    $ImageFun = 'Image' . $type;
    $ImageFun($im);
    imagedestroy($im);
}


本文地址:http://www.phprm.com/tuxiang/fs4494.html

转载随意,但请附上文章地址:-)

标签:php图片 php生成验证码

相关文章

发表留言