Размер файла: 1.61Kb
<?
class captcha
{
var $str;
var $x = 100;
var $y = 40;
var $img;
var $gif=false;
var $png=false;
var $jpg=false;
function captcha($str)
{
if (!function_exists('gd_info'))
{
header('Location: /style/errors/gd_err.gif');
exit;
}
if (imagetypes() & IMG_PNG)$this->png=true;
if (imagetypes() & IMG_GIF)$this->gif=true;
if (imagetypes() & IMG_JPG)$this->jpg=true;
$this->str=$str;
$this->img=imagecreatetruecolor($this->x, $this->y);
imagefill($this->img, 0, 0, imagecolorallocate ($this->img, 255, 255, 255));
}
function create()
{
for ($i=0; $i<5 ;$i++ )
{
$n = $this->str{$i};
if ($this->png)$num[$n]=imagecreatefrompng(H.'/style/captcha/'.$n.'.png');
elseif ($this->gif)$num[$n]=imagecreatefromgif(H.'/style/captcha/'.$n.'.gif');
elseif ($this->jpg)$num[$n]=imagecreatefromjpeg(H.'/style/captcha/'.$n.'.jpg');
imagecopy($this->img, $num[$n], $i*15+10, 8, 0, 0, 15, 20);
}
}
function MultiWave()
{
include_once H.'sys/inc/MultiWave.php';
$this->img=MultiWave($this->img);
}
function colorize($value=90)
{
if (function_exists('imagefilter'))
imagefilter($this->img, IMG_FILTER_COLORIZE, mt_rand(0, $value), mt_rand(0, $value), mt_rand(0, $value));
}
function output($q=50)
{
@ob_end_clean();
if ($this->jpg)
{
header("Content-type: image/jpeg");
imagejpeg($this->img,null,$q);
}
elseif ($this->png)
{
header("Content-type: image/png");
imagepng($this->img);
}
elseif ($this->gif)
{
header("Content-type: image/gif");
imagegif($this->img);
}
exit;
}
}
?>