Вход Регистрация
Файл: sys/inc/captcha.php
Строк: 53
<?php

class captcha
{
    var 
$str;
    var 
$x = 100;
    var 
$y = 40;
    var 
$img;
    var 
$gif = false;
    var 
$png = false;
    var 
$jpg = false;

    function 
__construct( $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;
    }
}
Онлайн: 3
Реклама