%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/cargonizer/domains/cargonizer.com.tr/public_html/includes/
Upload File :
Create Path :
Current File : /home/cargonizer/domains/cargonizer.com.tr/public_html/includes/thumbnail.php

<?
    class Thumbnail {
        var $errmsg        = "";
        var $error        = false;
        var $format        = "";
        var $file        = "";
        var $max_width  = 0;
        var $max_height = 0;
        var $percent    = 0;
    
        function Thumbnail($file, $max_width = 0, $max_height = 0, $percent = 0) {
            if (!file_exists($file)) {
                $this->errmsg = "Dosya yok";
                $this->error  = true;
            }
            else if (!is_readable($file)) {
                $this->errmsg = "Dosya okunamiyor";
                $this->error  = true;
            }
        
            if (strstr(strtolower($file), ".gif"))
                $this->format = "GIF";
            else if (strstr(strtolower($file), ".jpg") ||
                 strstr(strtolower($file), ".jpeg"))
                $this->format = "JPEG";
            else if (strstr(strtolower($file), ".png"))
                $this->format = "PNG";
            else {
                $this->errmsg = "Bilinmeyen dosya formati";
                $this->error  = true;
            }
        
            if ($max_width == 0 && $max_height == 0 && $percent == 0)
                $percent = 100;
        
            $this->max_width  = $max_width;
            $this->max_height = $max_height;
            $this->percent      = $percent;
            $this->file      = $file;
        }
    
        function calc_width($width, $height) {
            $new_width  = $this->max_width;
            $new_wp     = (100 * $new_width) / $width;
            $new_height = ($height * $new_wp) / 100;
            return array($new_width, $new_height);
        }
    
        function calc_height($width, $height) {
            $new_height = $this->max_height;
            $new_hp     = (100 * $new_height) / $height;
            $new_width  = ($width * $new_hp) / 100;
            return array($new_width, $new_height);
        }
    
        function calc_percent($width, $height) {
            $new_width  = ($width * $this->percent) / 100;
            $new_height = ($height * $this->percent) / 100;
            return array($new_width, $new_height);
        }
    
        function return_value($array) {
            $array[0] = intval($array[0]);
            $array[1] = intval($array[1]);
            
            return $array;
        }
    
        function calc_image_size($width, $height) {
            $new_size = array($width, $height);
            
            if($this->percent > 0){
                $new_size = $this->calc_percent($width, $height);
                return $this->return_value($new_size);
            }else{
                $Ratio = ($height / $width);
                
                if($width > $this->max_width || $height > $this->max_height) {
                    if(($width > $this->max_width) && ($this->max_width > 0)) {
                        $new_size[0] = $this->max_width;
                        $new_size[1] = $new_size[0] * $Ratio;
                    }else{
                        if($this->max_height > 0){
                            $new_size[0] = $width;
                            $new_size[1] = $height;
                        }
                    }
                    
                    if($this->max_height > 0){
                        if ($new_size[1] > $this->max_height) {
                            $new_size[1] = $this->max_height;
                            $new_size[0] = $new_size[1] / $Ratio;
                        }
                    }
                }
                
                return $this->return_value($new_size);
            }
        }
    
        function show_error_image() {
            header("Content-type: image/png");
            $err_img   = imagecreate(90, 90);
            $bg_color  = imagecolorallocate($err_img, 0, 0, 0);
            $fg_color1 = imagecolorallocate($err_img, 255, 255, 255);
            $fg_color2 = imagecolorallocate($err_img, 255, 0, 0);
            //imagestring($err_img, 3, 6, 6, "HATA:", $fg_color2);
            //imagestring($err_img, 3, 55, 6, $this->errmsg, $fg_color1);
            imagepng($err_img);
            imagedestroy($err_img);
        }
    
        function show($name = "") {
        if ($this->error) {
            $this->show_error_image();
            return;
        }
    
        $size      = getimagesize($this->file);
        $new_size  = $this->calc_image_size($size[0], $size[1]);
        #
        # Good idea from Mariano Cano Pérez
        # Requires GD 2.0.1 (PHP >= 4.0.6)
        #
        $new_image = imagecreatetruecolor($new_size[0], $new_size[1]);
        sscanf("#ffffff", "#%2x%2x%2x", $red, $green, $blue);
        $background_color = imagecolorallocate($new_image, $red, $green, $blue);
        imagefilledrectangle($new_image, 0, 0, $new_size[0], $new_size[1], $background_color);
        
        switch ($this->format) {
            case "GIF":
                $old_image = imagecreatefromgif($this->file);
            break;
            case "JPEG":
                $old_image = imagecreatefromjpeg($this->file);
            break;
            case "PNG":
                $old_image = imagecreatefrompng($this->file);
            break;
        }
        
        imagealphablending($old_image, false);
        imagesavealpha($old_image, true);
        
        imagealphablending($new_image, false);
        imagesavealpha($new_image, true);
        
        imagecopyresampled($new_image, $old_image, 0, 0, 0, 0, $new_size[0], $new_size[1], $size[0], $size[1]);
    
        switch ($this->format) {
            case "GIF":
            if (!empty($name)){
                imagealphablending($new_image, false);
                imagesavealpha($new_image, true);
                
                imagegif($new_image, $name);

            } else {
                imagealphablending($new_image, false);
                imagesavealpha($new_image, true);
                
                header("Content-type: image/gif");
                imagegif($new_image);
            }
            break;
            case "JPEG":
            if (!empty($name)){
                imagealphablending($new_image, false);
                imagesavealpha($new_image, true);
                
                sscanf("#ffffff", "#%2x%2x%2x", $red, $green, $blue);
                $transparency = imagecolorallocate($new_image, $red, $green, $blue);
                // make the transaparent areas transparent
                for ($x = 0; $x < $new_size[0]; $x++) {
                    for ($y = 0; $y < $new_size[1]; $y++) {
                        // we test wether we have some transparency, in which case we will merge the colors
                        $pixel = imagecolorsforindex($new_image, imagecolorat($new_image, $x, $y));
                        if ($pixel['alpha'] == 127) {
                            // we have full transparency. we make the pixel transparent
                            imagesetpixel($new_image, $x, $y, $transparency);
                        } else if ($pixel['alpha'] > 0) {
                            // we have some transparency. we combine the color with the default color
                            $alpha = ($pixel['alpha'] / 127);
                            $pixel['red'] = round(($pixel['red'] * (1 -$alpha) + $red * ($alpha)));
                            $pixel['green'] = round(($pixel['green'] * (1 -$alpha) + $green * ($alpha)));
                            $pixel['blue'] = round(($pixel['blue'] * (1 -$alpha) + $blue * ($alpha)));
                            $color = imagecolorclosest($new_image, $pixel['red'], $pixel['green'], $pixel['blue']);
                            imagesetpixel($new_image, $x, $y, $color);
                        }
                    }
                }   
                   
                imagejpeg($new_image, $name);
            }else {
                //imagealphablending($new_image, false);
                //imagesavealpha($new_image, true);
                
                sscanf("#ffffff", "#%2x%2x%2x", $red, $green, $blue);
                $transparency = imagecolorallocate($new_image, $red, $green, $blue);
                
                for ($x = 0; $x < $new_size[0]; $x++) {
                    for ($y = 0; $y < $new_size[1]; $y++) {
                        
                        $pixel = imagecolorsforindex($new_image, imagecolorat($new_image, $x, $y));
                        if ($pixel['alpha'] == 127) {
                            
                            imagesetpixel($new_image, $x, $y, $transparency);
                        } else if ($pixel['alpha'] > 0) {
                          
                            $alpha = ($pixel['alpha'] / 127);
                            $pixel['red'] = round(($pixel['red'] * (1 -$alpha) + $red * ($alpha)));
                            $pixel['green'] = round(($pixel['green'] * (1 -$alpha) + $green * ($alpha)));
                            $pixel['blue'] = round(($pixel['blue'] * (1 -$alpha) + $blue * ($alpha)));
                            $color = imagecolorclosest($new_image, $pixel['red'], $pixel['green'], $pixel['blue']);
                            imagesetpixel($new_image, $x, $y, $color);
                        }
                    }
                }      
                header("Content-type: image/jpeg");
                imagejpeg($new_image);
            }
            break;
            case "PNG":
            if (!empty($name)){
                imagealphablending($new_image, false);
                imagesavealpha($new_image, true);
                
                imagepng($new_image, $name);
            }else {
                imagealphablending($new_image, false);
                imagesavealpha($new_image, true);
                
                header("Content-type: image/png");
                imagepng($new_image);
            }
            break;
        }
        
        imagedestroy($new_image);
        imagedestroy($old_image);
        return;
        }
    
        function save($name) {
        $this->show($name);
        }
    }
?>

Zerion Mini Shell 1.0