//验证码类 class ValidateCode {  private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子  private $code;//验证码  private $codelen = 4;//验证码长度  private $width = 130;//宽度  private $height = 50;//高度  private $img;//图形资源句柄  private $font;//指定的字体  private $fontsize = 20;//指定字体大小  private $fontcolor;//指定字体颜色  //构造方法初始化  public function __construct() {   $this->font = dirname(__FILE__).'/font/elephant.ttf';//注意字体路径要写对,否则显示不了图片  }  //生成随机码  private function createCode() {   $_len = strlen($this->charset)-1;   for ($i=0;$i<$this->codelen;$i++) {    $this->code .= $this->charset[mt_rand(0,$_len)];   }  }  //生成背景  private function createBg() {   $this->img = imagecreatetruecolor($this->width, $this->height);   $color = imagecolorallocate($this->img, mt_rand(157,255), mt_rand(157,255), mt_rand(157,255));   imagefilledrectangle($this->img,0,$this->height,$this->width,0,$color);  }  //生成文字  private function createFont() {   $_x = $this->width / $this->codelen;   for ($i=0;$i<$this->codelen;$i++) {    $this->fontcolor = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));    imagettftext($this->img,$this->fontsize,mt_rand(-30,30),$_x*$i+mt_rand(1,5),$this->height / 1.4,$this->fontcolor,$this->font,$this->code[$i]);   }  }  //生成线条、雪花  private function createLine() {   //线条   for ($i=0;$i<6;$i++) {    $color = imagecolorallocate($this->img,mt_rand(0,156),mt_rand(0,156),mt_rand(0,156));    imageline($this->img,mt_rand(0,$this->width),mt_rand(0,$this->height),mt_rand(0,$this->width),mt_rand(0,$this->height),$color);   }   //雪花   for ($i=0;$i<100;$i++) {    $color = imagecolorallocate($this->img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));    imagestring($this->img,mt_rand(1,5),mt_rand(0,$this->width),mt_rand(0,$this->height),'*',$color);   }  }  //输出  private function outPut() {   header('Content-type:image/png');   imagepng($this->img);   imagedestroy($this->img);  }  //对外生成  public function doimg() {   $this->createBg();   $this->createCode();   $this->createLine();   $this->createFont();   $this->outPut();  }  //获取验证码  public function getCode() {   return strtolower($this->code);  } }