width=$width; $this->height=$height; $this->codelen=$codelen; $this->fontsize=$fontsize; } //生成随机码 private function crecteCode(){ $_len= strlen($this->charset)-1; for($i=0;$i<$this->codelen;$i++){ $this->code.=$this->charset[mt_rand(0, $_len)]; } return $this->code; } //生成背景 private function createBg(){ $this->img= imagecreatetruecolor($this->width, $this->height); $Bgcolor= imagecolorallocate($this->img, mt_rand(0, 150), mt_rand(50, 100), mt_rand(0, 150)); imagefill($this->img, 0, 0, $Bgcolor); } //生成文字 private function createFont(){ $fontcolor=imagecolorallocate($this->img, mt_rand(100, 200), mt_rand(100, 200), mt_rand(100, 200)); imagefttext ($this->img, $this->fontsize, mt_rand(-10,10), $this->width/6, $this->height/1.2, $fontcolor, $this->font, $this->crecteCode()); } //生成线条、雪花 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<20;$i++){ $color= imagecolorallocate($this->img, mt_rand(150, 200), mt_rand(150, 200), mt_rand(150, 200)); 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->createLine(); $this->createFont(); $this->outPut(); } //获取验证码 public function getCode(){ echo $this->crecteCode(); } } ?>