您的位置:澳门402永利com > 计算机 网络 > 中文与英文验证码程序代码,用GD库给图片加中文

中文与英文验证码程序代码,用GD库给图片加中文

发布时间:2019-09-29 06:58编辑:计算机 网络浏览(87)

    <?php
    //定义输出为图像类型
    header("content-type:image/gif");
    //新建图象
    $pic=imagecreate(240,30);
    //定义黑白颜色
    $black=imagecolorallocate($pic,0,0,0);
    $white=imagecolorallocate($pic,255,255,255);
    //定义字体
    $font="c://WIN2000//fonts//simhei.ttf";
    //定义输出字体串
    $str = chr(0xE8).chr(0xB5).chr(0x9B).chr(0xE8).chr(0xBF).chr(0xAA).chr(0xE7).chr(0xBD).chr(0x91)." www.ccidnet.com";
    //写 TTF 文字到图中
    imagettftext($pic,20,0,10,20,$white,$font,$str);
    //建立 GIF 图型
    imagegif($pic);
    //停止图形,释放内部存款和储蓄器空间
    imagedestroy($pic);
    ?>

    //英文验证码相对简单,不要作hex管理,直接用色彩值就OK了。假使
    session_start();
    function rand_create()
    {
        //布告浏览器将在输出PNG图片
        Header("Content-type: image/PNG");
        //筹算好随机数爆发器种子 
        srand((double)microtime()*1000000);
        //准备图片的相干参数  
        $im = imagecreate(62,22);
        $black = ImageColorAllocate($im, 0,0,0);  //景逸SUVGB樱桃红标志符
        $white = ImageColorAllocate($im, 255,255,255); //HavalGB影青标记符
        $gray = ImageColorAllocate($im, 200,200,200); //RubiconGB血牙红标记符
        //伊始作图    
        imagefill($im,0,0,$gray);
        while(($randval=rand()%100000)<10000);{
            $_SESSION["Auth_code"] = $randval;
            //将多少人整数验证码绘入图片 
            imagestring($im, 5, 10, 3, $randval, $black);
        }
        //加入压抑象素   
        for($i=0;$i<200;$i++){
            $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
            imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
        }
        //输出验证图片
        ImagePNG($im);
        //销毁图像标记符
        ImageDestroy($im);
    }
    rand_create();

    //调用方法<img src=www.111cn.net.php />

    //普通话验证码程序如下

    Header("Content-type: image/PNG");
    $str = "这里安装一汉语即使中华夏族民共和国WEB第一站www.111cn.net";
    $imagesW = 140;
    $imagesH = 40;
    //
    $Auimg = imagecreate($imagesW,$imagesH);
    $bgc = ImageColorAllocate($Auimg,255,255,255);
    $font = "heiti.ttf";//这里设置字体,你能够随意下载一款字体哦。
    $white=imagecolorallocate($Auimg,234,185,95);
    imagearc($Auimg, 150, 8, 20, 20, 75, 170, $white);
    imagearc($Auimg, 180, 7,50, 30, 75, 175, $white);
    imageline($Auimg,20,20,180,30,$white);
    imageline($Auimg,20,18,170,50,$white);
    imageline($Auimg,25,50,80,50,$white);
    $noise_num = 800;
    $line_num = 20;
    imagecolorallocate($Auimg,0xff,0xff,0xff);
    $rectangle_color=imagecolorallocate($Auimg,0xAA,0xAA,0xAA);
    $noise_color=imagecolorallocate($Auimg,0x00,0x00,0x00);
    $font_color=imagecolorallocate($Auimg,0x00,0x00,0x00);
    $line_color=imagecolorallocate($Auimg,0x00,0x00,0x00);
    for($i=0;$i<$noise_num;$i++){
     imagesetpixel($Auimg,mt_rand(0,$imagesW),mt_rand(0,$imagesH),$noise_color);
    }
    for($i=0;$i<$line_num;$i++){
     imageline($Auimg,mt_rand(0,$imagesW),mt_rand(0,$imagesH),mt_rand(0,$imagesW),mt_rand(0,$imagesH),$line_color);
    }
    $mtRnd=rand(0,strlen($str)-4);
    if($mtRnd%2)$mtRnd+=1;
    $str = substr($str,$mtRnd,8);
    $str = iconv("GB2312","UTF-8",$str);
    ImageTTFText($Auimg, 20, 0, 16, 30, $font_color, $font, $str);
    ImagePNG($Auimg);
    ImageDestroy($Auimg);
    /*
     共同点就是验证码都依据其余容器来保存如session,cookie等,不然就未有申明的意思了
     本小说由www.111cn.net整,转发请申明来源感谢同盟。

     

    本文由澳门402永利com发布于计算机 网络,转载请注明出处:中文与英文验证码程序代码,用GD库给图片加中文

    关键词:

上一篇:php多文件上传,PHP多文件上传类实例

下一篇:没有了