zoukankan      html  css  js  c++  java
  • 验证码类

    <?php
     class Imagecode{
      private $width ;
      private $height;
      private $counts;
      private $distrubcode;
      private $fonturl;
      private $session;
      function __construct($width = 120,$height = 30,$counts = 5,$distrubcode="1235467890qwertyuipkjhgfdaszxcvbnm",$fonturl="C:/Windows/Fonts/cour.ttf"){
       $this->width=$width;
       $this->height=$height;
       $this->counts=$counts;
       $this->distrubcode=$distrubcode;
       $this->fonturl=$fonturl;
       $this->session=$this->sessioncode();
       session_start();
       $_SESSION['code']=$this->session;
      }
     
       function imageout(){
       $im=$this->createimagesource();
       $this->setbackgroundcolor($im);
       $this->set_code($im);
       $this->setdistrubecode($im);
       ImageGIF($im);
       ImageDestroy($im);
      }
     
      private function createimagesource(){
       return imagecreate($this->width,$this->height);
      }
      private function setbackgroundcolor($im){
       $bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255),rand(200,255));//卤鲁戮掳脩脮脡芦
       imagefill($im,0,0,$bgcolor);
      }
      private function setdistrubecode($im){
       $count_h=$this->height;
       $cou=floor($count_h*2);
       for($i=0;$i<$cou;$i++){
        $x=rand(0,$this->width);
        $y=rand(0,$this->height);
        $jiaodu=rand(0,360);
        $fontsize=rand(8,15);
        $fonturl=$this->fonturl;
        $originalcode = $this->distrubcode;
        $countdistrub = strlen($originalcode);
        $dscode = $originalcode[rand(0,$countdistrub-1)];
        $color = ImageColorAllocate($im, rand(40,140),rand(40,140),rand(40,140));
        imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);
       
       }
      }
      private function set_code($im){
        $width=$this->width;
        $counts=$this->counts;
        $height=$this->height;
        $scode=$this->session;
        $y=floor($height/2)+floor($height/4);
        $fontsize=rand(30,35);
        $fonturl="C:/Windows/Fonts/cour.ttf";//$this->fonturl;
       
        $counts=$this->counts;
        for($i=0;$i<$counts;$i++){
         $char=$scode[$i];
         $x=floor($width/$counts)*$i+8;
         $jiaodu=rand(-20,30);
         $color = ImageColorAllocate($im,rand(0,50),rand(50,100),rand(100,140));
         imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$char);
        }
      }
      private function sessioncode(){
        $originalcode = $this->distrubcode;
        $countdistrub = strlen($originalcode);
        $_dscode = "";
        $counts=$this->counts;
        for($j=0;$j<$counts;$j++){
         $dscode = $originalcode[rand(0,$countdistrub-1)];
         $_dscode.=$dscode;
        }
        return $_dscode;
       
      }
     }
     Header("Content-type: image/GIF");
     $imagecode=new Imagecode(160,50);
     $imagecode->imageout();
  • 相关阅读:
    C++11——Lambda表达式
    匿名空间使用
    C++11——可调用对象包装器、绑定器
    winhttp 发送https的get请求
    C++11——基于范围的for循环
    C++11——列表初始化
    C++11——委托构造和继承构造函数
    C++11——using的使用
    使用appnium,Uiautomatorviewer连接手机报错:Unexpected error while obtaining UI hierarchy java.lang.reflect.Invocation【已解决】
    逆向 | IATHook 全屏加速挂
  • 原文地址:https://www.cnblogs.com/cdy07341/p/6648900.html
Copyright © 2011-2022 走看看