图片验证码文件,加减法计算方式
/**
* 图片验证码文件,加减法计算方式
*/
class ImageCode {
private $jiashu = 0;//加数或者减数
private $jianshu = 0;//被加数或者被减数
private $yunsuan = '';//运算符
private $deshu = 0;//得数
private $string = '';//字符串样式
private $img; //图片对象
private $width = 100;//图片宽度
private $height = 50;//图片高度
private $ttf = 'arial.ttf'; //字体文件
private $session = 'code';//session 变量
private function jiashu() {
//header('Content-type:image/png');
header("Content-type:image/JPEG");
$this->jiashu = rand(1,10);
$this->jianshu = rand(1,10);
$this->yunsuan = $this->jiashu > $this->jianshu ? '-':'+';
$this->deshu = $this->jiashu > $this->jianshu ? $this->jiashu - $this->jianshu:$this->jiashu + $this->jianshu;
}
public function show($w = 100,$h=50,$t='arial.ttf',$code='code') {
$this->jiashu();
$this->string = $this->jiashu.$this->yunsuan.$this->jianshu.'=?';
$this->width =$w;
$this->height = $h;
$this->ttf = $t;
$this->session = $code;
session_start();
$_SESSION[$this->session] = $this->deshu;
$this->images();
}
private function images() {
$this->img = imagecreate($this->width, $this->height);
$background_color = imagecolorallocate($this->img, 255, 255, 255);
imagecolortransparent($this->img,$background_color);
imagettftext($this->img,14,0,1,20,imagecolorallocate($this->img, 0, 0, 0),$this->ttf,$this->string);
$this->echoImages();
}
private function echoImages() {
imagepng($this->img);//以PNG格式将图像输出到浏览器
imagedestroy($this->img);//销毁图像
}
}
$ImageCode = new ImageCode;
$ImageCode->show(130,35,'arial.ttf','code');