91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP實現帶有干擾線的驗證碼,干擾點、字符傾斜

發布時間:2020-05-07 13:38:37 來源:億速云 閱讀:1339 作者:Leah 欄目:編程語言

今天小編就為大家帶來一篇PHP實現帶有干擾線的驗證碼,干擾點、字符傾斜的文章。小編覺得挺不錯的,為此分享給大家做個參考。一起跟隨小編過來看看吧。

PHP生成驗證碼的類代碼,本驗證碼類支持生成干擾點、干擾線等干擾像素,還可以使字符傾斜。在類中你可以定義驗證碼寬度、高度、長度、傾斜角度等參數,后附有詳細用法:

<?php    
    class class_authcode{    
        public  $authcode   = ''; //驗證碼    
        private $width      = ''; //驗證碼圖片寬    
        private $height     = ''; //驗證碼圖片高    
        private $len        = ''; //驗證碼長度    
        private $tilt       = array(-30,30);//驗證碼傾斜角度    
        private $font       = 'AlteHaasGroteskBold.ttf';//字體文件    
        private $str        = ''; //驗證碼基    
        private $im         = ''; //生成圖片的句柄    
        //構造函數    
        function __construct($width=100,$heigh=30,$len=4) {    
            $this->width    = $width;    
            $this->height   = $heigh;    
            $this->len      = $len;    
            $this->str      = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';    
            $str_len = strlen($this->str)-1;    
            for ($i=0; $i<$len; $i++) {    
                $this->authcode .= $this->str[rand(0,$str_len)];    
            }    
        }    
        //生成驗證碼圖片    
        private function imagecreate(){    
            $this->im = imagecreatetruecolor($this->width,$this->height);    
        }    
        //干擾顏色    
        private function ext_color() {    
            return imagecolorallocate($this->im,rand(50, 180),rand(50, 180),rand(50, 180));    
        }    
        //生成干擾點    
        private function ext_point() {    
            for ($i=0; $i<$this->width*2; $i++) {    
                imagesetpixel($this->im,rand(1,$this->width-1),rand(1,$this->height-1),$this->ext_color());    
            }    
        }
         //生成干擾線    
                private function ext_line() {    
                    for ($i=0; $i<$this->len; $i++) {    
                        $x1 = rand(1,$this->width-1);    
                        $y1 = rand(1,$this->height-1);    
                        $x2 = rand(1,$this->width-1);    
                        $y2 = rand(1,$this->height-1);    
                        imageline($this->im,$x1,$y1,$x2,$y2,$this->ext_color());    
                    }    
                }
                //把驗證碼寫入圖片(不能和$this->imgstrfloat()同時使用)    
                private function imgstr() {    
                    $old_x = 1;    
                    for ($i=0; $i<$this->len; $i++) {    
                        $fontsize = rand(2,5);      //字體大小    
                        $tmp_1 = $fontsize*2.5;    
                        $tmp_2 = $i>0  $tmp_1 : 0;    
                        $y = rand(1,$this->height/2);    
                        $x = rand($old_x+$tmp_2, ($i+1)*($this->width)/$this->len-$tmp_1);    
                        $old_x = $x;    
                        $color = imagecolorallocate($this->im,rand(200, 255),rand(200, 255),rand(200, 255));    
                        imagestring($this->im,$fontsize,$x,$y,$this->authcode[$i],$color);    
                    }    
                }
                //把驗證碼傾斜寫入圖片(注意這里不能和$this->imgstr()方法同時使用)    
                 private function imgstrfloat() {    
                    $old_x = 1;    
                    for ($i=0; $i<$this->len; $i++) {    
                        $fontfloat = rand($this->tilt[0],$this->tilt[1]);    
                        $fontsize = rand(10,15);        //字體大小    
                        $tmp_1 = $i>0  $fontsize : 0;    
                        $y = rand($fontsize+2, $this->height-2);    
                        $x = rand($old_x+$tmp_1+2, ($i+1)*($this->width)/$this->len-$fontsize-2);    
                        $old_x = $x;    
                        $color = imagecolorallocate($this->im, rand(200, 255), rand(200, 255), rand(200, 255));    
                        imagettftext($this->im, $fontsize, $fontfloat, $x, $y, $color, $this->font, $this->authcode[$i]);    
                    }    
                } 
                //輸出驗證碼圖片    
                function output() {    
                    $this->imagecreate();    
                    $this->imgstr();    
                    //$this->imgstrfloat();    
                    $this->ext_point();    
                    $this->ext_line();    
                    header('content-type:image/png');    
                    imagepng($this->im);    
                    imagedestroy($this->im);    
                }    
            }    
?>

本驗證碼用法說明:

$obj = new class_authcode();//實例化對象,并設置驗證碼圖片的寬、高和驗證碼的長度    
$obj->$authcode; //獲取驗證碼    
$obj->output(); //輸出驗證碼圖片

以上就是PHP實現帶有干擾線的驗證碼,干擾點、字符傾斜的簡略介紹,詳細使用情況還需要大家自己使用過才領會。如果想了解更多,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卢氏县| 防城港市| 杨浦区| 徐水县| 抚顺市| 平舆县| 修水县| 勃利县| 河东区| 商水县| 家居| 南昌县| 敦化市| 多伦县| 长葛市| 朝阳县| 忻城县| 镇原县| 陵水| 普兰店市| 东台市| 湘乡市| 郴州市| 柞水县| 洛川县| 油尖旺区| 修水县| 宿迁市| 云霄县| 承德县| 寿阳县| 合作市| 凤山县| 淄博市| 崇文区| 施甸县| 林口县| 区。| 连平县| 全南县| 南部县|