99久久免费国产精品-天天爽夜夜爽夜夜爽-色噜噜久久综合伊人一本-国产无遮挡又黄又爽免费视频

首頁>> 開發(fā)技術(shù)知識>> 平面廣告設(shè)計知識>>PHP網(wǎng)站建設(shè)開發(fā)用的圖形驗證碼源碼下載


PHP網(wǎng)站建設(shè)開發(fā)用的圖形驗證碼源碼下載

最近經(jīng)常有人問我這個Blog中的圖形驗證碼是如何做的.下面是這個PHP圖形驗證碼的源程序.

歡迎指正.

樣式:

class.image.php

/*
===========================================================   
    class.image.php    Zhu Weiwei
    Copyright © 2006-2008
    http://www.jzxue.com China. All Rights Reserved.
===========================================================
*/
class Image
{
    private $img;
    private $width;
    private $height;
    private $color;
    private $font;
    private $mime="image/jpeg";

    /* 1,GIF  2,JPEG  3,PNG */
    private $type=2;
    private $angle=0;
    private $text;
    private $textW;
    private $textH;
    private $size=5;
    private $tcolor;

     
    function __construct($w="100", $h="50"){
        $this->width=$w;
        $this->height=$h;
    }
   
    function create() {
        if ($this->type != 1 && function_exists('imagecreatetruecolor')) {
            // 本函數(shù)不能用于 GIF 文件格式
            // 本函數(shù)需要 GD 2.0.1 或更高版本。
            // 返回一個圖像標(biāo)識符,代表了一幅大小為 x_size 和 y_size 的黑色圖像
            $this->img=imagecreatetruecolor($this->width,$this->height);
        }else {
            $this->img=imagecreate($this->width,$this->height);
        }       
    }

    /*
    * 1=GIF     2=JPG
    * 3=PNG
    */
    function createFromFile($f){
        $imgInfo=getimagesize($f);
        $this->type=$imgInfo[2];

        switch($this->type){
        case 1:
            $this->loadGifFile($f);
            break;
           
        case 2:
            $this->loadJpegFile($f);
            break;
           
        case 3:
            $this->loadPngFile($f);
            break;
           
        default:
            die("This Image Type Not Support loadimage !");
            exit();
        }
    }
   
    function loadGifFile($f){
        // 1.6  -- 2.0.28
        //二者之間版本的 GD 庫時本函數(shù)不可用
        $this->img=imagecreatefromgif($f ) or die("Load Gif picture error!") ;
        $this->width=imagesx($this->img); 
        $this->height=imagesy($this->img);  
        $this->mime="image/gif";
        $this->type=1;
    }
   
   
    function loadJpegFile($f){
        //JPEG 支持僅在 PHP 與 GD-1.8 或更高版本一起編譯時可用
        $this->img=imagecreatefromjpeg($f) or die("Load Jpeg picture error!") ;
        $this->width=imagesx($this->img); 
        $this->height=imagesy($this->img);  
        $this->mime="image/jpeg";
        $this->type=2;
    }
   
   
    function loadPngFile($f){
        $this->img=imagecreatefrompng($f )  or die("Load Png picture error!") ;
        $this->width=imagesx($this->img); 
        $this->height=imagesy($this->img);  
        $this->mime="image/png";
        $this->type=3;
    }

     
   
    function setBackgroundColor($r, $g, $b){
        ## 用color 顏色填充了的矩形
        ## 其左上角坐標(biāo)為 x1,y1
        ## 右下角坐標(biāo)為 x2,y2
        ## 0, 0 是圖像的最左上角
        $color =imagecolorallocate($this->img, $r, $g, $b);
        return imagefilledrectangle($this->img, 0, 0, $this->width, $this->height, $color);
    }
   
    function setColor($r, $g, $b){
        $this->color=imagecolorallocate($this->img, $r, $g, $b);
        return (-1 == $this->color) ? (false) : ($this->color);
    }
   
   
    function setTextColor($r, $g, $b){
        $this->tcolor=imagecolorallocate($this->img, $r, $g, $b);
        return (-1 == $this->tcolor) ? (false) : ($this->tcolor);
    }
   
     
    function setText($t){
        $this->text=$t;
    }

    function waterMark($r, $g, $b, $alpha){
        $this->tcolor=imagecolorclosestalpha($this->img, $r, $g, $b, $alpha);
    }
     
   
    function setFontFile($f){ 
        $this->font=$f;
    }
   
    function addTrueTypeText($xoffset,$yoffset){
        #$x=( ( $this->width - $this->textW - 10) > 0) ? ($this->width - $this->textW - 10) : (0) ;
        #$y=( ( $this->height-10) >  0) ? ($this->height-10) : ($this->height);
        // 用 TrueType 字體向圖像寫入文本
        // **x,y 坐標(biāo)是字符串左下角坐標(biāo),整幅圖像的左上角為 0,0
        imagettftext($this->img,
            $this->size,
            $this->angle,
            $xoffset,
            $yoffset,
            $this->tcolor,
            $this->font,
            $this->text);
    }

    function addText() {
        // http://www.devdao.com/ 用 color 顏色將字符串 s 畫到 image
        // **x,y 坐標(biāo)是字符串左上角坐標(biāo),整幅圖像的左上角為 0,0
        // 如果font 是 1,2,3,4 或 5,則使用內(nèi)置字體。
        imagestring ($this->img, $font, $x, $y, $this->text, $this->tcolor);       
    }
   
    function setSize($s){
        $this->size=$s;
    }
   
    function setAngle($a){
        $this->angle=$a;
    }     
   
   
    function setWidth($w){
        $this->width=$w;
    }
   
   
    function setHeight($h){
        $this->height=$h;
    }
   
   
    function getWidth(){
        return $this->width;
    }
   
   
    function getHeight(){
        return $this->height;
    }

    function setPixel($x,$y,$color){
        return imagesetpixel($this->img, $x, $y, $color);
    }

    function setLine($x1,$y1,$x2,$y2,$color){
        return imageline($this->img, $x1, $y1, $x2, $y2, $color);
    }
   
    function createImageFile($f="default"){
        if( !empty($f) ){
            switch($this->type){
                case 1:
                imagegif($this->img, $f.".gif",80);
                break;
               
                case 2:
                imagejpeg($this->img, $f.".jpg" , 80);
                break;
               
                case 3:
                imagepng($this->img, $f.".png", 80);
                break;
               
                default:
                die("This Image Type Not Support create !");
                exit();
            }
            imagedestroy($this->img);
        }
    }

                                       
    function show(){
        header("Content-type: ".$this->mime); 
        switch($this->type){
            case 1:
            imagegif($this->img);
            break;
           
            case 2:
            imagejpeg($this->img);
            break;
           
            case 3:
            imagepng($this->img);
            break;
           
            default:
            die("This Image Type Not Support  show !");
            exit();
        }
        imagedestroy($this->img);
    }
     
    /* Zoom Out Picture */
    function roomOut($maxW, $maxH){
        $WW=(($maxW) and ($this->width > $maxW));
        $HH=(($maxH) and ($this->height > $maxH));
       
        if($WW or $HH){
            if($WW){
                $wRatio =$maxW / $this->width;
                $wResize=true;
            }
            if($HH){
                $hRatio =$maxH / $this->height;
                $hResize=true;
            }
           
            if($wResize and $hResize){
                if($wRatio < $hRatio){
                    $ratio=$wRatio;
                }else{
                    $ratio=$hRatio;
                }
            }elseif($wResize){
                $ratio=$wRatio;
            }elseif($hResize){
                $ratio=$hRatio;
            }
        }else{
            $ratio=1;
        }
       
        $newWidth=$this->width * $ratio; 
        $newHeight=$this->height * $ratio;
       
        if(function_exists("imagecopyresampled")){
            $newimg=imagecreatetruecolor($newWidth, $newHeight);
            imagecopyresampled($newimg, $this->img, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height);
        }else{
            $newimg=imagecreate($newWidth, $newHeight);
            imagecopyresized($newimg, $this->img, 0, 0, 0, 0, $newWidth, $newHeight, $this->width, $this->height);
        }
        $this->img=$newimg;        
        $this->width=  $newWidth;
        $this->height=$newHeight;
    }
}
imgverifycode.php

/*
===========================================================   
    imgverifycode.php    Zhu Weiwei
    Copyright © 2006-2008
    http://www.jzxue.com China. All Rights Reserved.
===========================================================
*/
<?php
require('class.image.php');
# char number
$n = 4;
#font size
$s = 18;
#font padding
$p = 5;
#font angle -a,a
$a = 15;
#image width
$w = ($s+$p)*$n+$p;
#image height;
$h = intval($s*1.5);

$c = ($h + $s)/2;
$o = abs($h-$s-2*$p)/2;
$r = 1;

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
#$str = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz';
#$str = '0123456789';

$len = strlen($str)-1;
$code = '';


$im = new Image($w,$h);
$im->create();
$im->setBackgroundColor( mt_rand(0xdd,0xff), mt_rand(0xdd,0xff), mt_rand(0xdd,0xff) );

$im->setSize( $s );

for($i=$p; $i<$w-$p; $i=$i+$s+$p){
    $char = $str{mt_rand(0,$len)};
    $code = $code.$char;
   
    $im->setFontFile($CFG->dirroot.'/font/'.mt_rand(2,5).'.ttf');
   
    $im->setText( $char );
    $im->setAngle( mt_rand(-$a,$a) );
    $im->setTextColor(mt_rand(0x0,0x66),mt_rand(0x0,0x66),mt_rand(0x0,0x66) );
    $im->addTrueTypeText($i,mt_rand($c-$o,$c+$o));
    for($j=0; $j<8*$r; $j++){
        $xs = mt_rand($i-$s/2+$p,$i+$s/2-$p);
        $ys = mt_rand($p,$h-$p);
        $color = $im->setColor(mt_rand(0x0,0x66),mt_rand(0x0,0x66),mt_rand(0x0,0x66));
        $im->setLine( $xs, $ys, $xs+mt_rand(-$s/2,$s/2), $ys+mt_rand(-$s/2,$s/2), $color);
    }
}   

$SESS = new Session();
$SESS->setParameter('verifycode',$code);

for($i=0; $i<200*$r; $i++){
    $color = $im->setColor(mt_rand(0x0,0x66),mt_rand(0x0,0x66),mt_rand(0x0,0x66));
    $im->setPixel(mt_rand(0,$w), mt_rand(0,$h),$color);
}

$im->show();



分享聯(lián)系我們

掃二維碼與項目經(jīng)理溝通 我們在微信上24小時期待你的聲音

感謝您的關(guān)注分享“PHP網(wǎng)站建設(shè)開發(fā)用的圖形驗證碼源碼下載”
煙寒網(wǎng)絡(luò)真誠為您服務(wù) ,點擊客服直接咨詢下單.

我們服務(wù)

南寧網(wǎng)絡(luò)公司南寧網(wǎng)站建設(shè)

網(wǎng)站建設(shè)

高端網(wǎng)站建設(shè)服務(wù)商、相信品牌力量、相信知名企業(yè);制作后收費13014982176!

南寧微信小程序/微信公眾號

微信小程序/微信公眾號

微信小程序 背靠10億流量,不論用戶需求是什么,都能被開發(fā)使用 一點創(chuàng)意,就能在“社交圈”中脫穎而出。

南寧網(wǎng)站優(yōu)化/SEO

網(wǎng)站優(yōu)化/SEO

讓您的網(wǎng)站更靠近排名位置,讓客戶更容易找到您,seo優(yōu)化是一個漫長過程,整個網(wǎng)站營銷花最少的錢起最大的作用。

我們服務(wù)客戶


企業(yè)形象網(wǎng)站、個人博客、政府門戶網(wǎng)站、新聞傳媒網(wǎng)站最省錢、省時、省備案 建站快、效率高更多服務(wù)
廣西華崧集團網(wǎng)站品牌設(shè)計

廣西華崧集團網(wǎng)站品牌設(shè)計

廣西華崧林業(yè)發(fā)展集團(以下簡稱華崧集團)組建于2017年8月,集團總部位于廣西壯...

廣西大和平房地產(chǎn)有限公司

廣西大和平房地產(chǎn)有限公司

廣西鴻生源環(huán)保科技有限公司

廣西鴻生源環(huán)保科技有限公司

主站蜘蛛池模板: 日本高清www午色夜在线视频 | 国产精品自在欧美一区| 无码一区二区三区av免费蜜桃| 国产精品成人观看视频国产奇米| 亚洲丁香五月激情综合| 亚洲v欧美v国产v在线观看| 无码精品人妻一区二区三区漫画 | 欧美丰满大爆乳波霸奶水多| 狂野欧美性猛xxxx乱大交| 国产内射老熟女aaaa∵| 久久久精品国产sm最大网站 | 波多野结衣美乳人妻hd电影欧美| 国产偷国产偷亚洲清高| 毛茸茸的中国女bbw| 国产蜜臀av在线一区尤物| 久久久久久人妻一区精品| 久久综合九色综合久99| 国产成人a∨麻豆精品| 亚洲日韩小电影在线观看| 蜜芽忘忧草三区老狼大豆| 国产精品免费看久久久| 88久久精品无码一区二区毛片 | 亚洲熟妇色xxxxx欧美老妇| 成人免费无遮挡在线播放| 在教室伦流澡到高潮hgl视频| 国产精品美女久久久久久久久| 美女扒开大腿让男人桶| 丰满人妻熟妇乱又伦精品软件| 欧美乱妇高清无乱码在线观看| 在线亚洲午夜片av大片| 精品视频一区二区三区在线观看| 亚洲一本到无码av中文字幕| 欧美激情视频一区二区三区免费| 国产精品无码无在线观看| 东北妇女精品bbwbbw| 手机看片福利一区二区三区| 亚洲国产精品热久久| 无码免费一区二区三区| 国产色欲av一区二区三区| 亚洲国产欧洲综合997久久| 久久精品国产精品亚洲色婷婷|