Login   Register  
PHP Classes
elePHPant
Icontem

File: resize.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Shiegege  >  Resize and thumbnail picture  >  resize.php  >  Download  
File: resize.php
Role: Class source
Content type: text/plain
Description: Main Class
Class: Resize and thumbnail picture
Create thumbnail of a picture on the fly
Author: By
Last change: Update demo link
Date: 8 years ago
Size: 4,976 bytes
 

Contents

Class file image Download
<?
##############################################
# Shiege Iseng Resize Class
# 11 March 2003
# shiegege_at_yahoo.com
# View Demo :
#   http://shiege.com/scripts/thumbnail/
/*############################################
Sample :
$thumb=new thumbnail("./shiegege.jpg");            // generate image_file, set filename to resize
$thumb->size_width(100);                // set width for thumbnail, or
$thumb->size_height(300);                // set height for thumbnail, or
$thumb->size_auto(200);                    // set the biggest width or height for thumbnail
$thumb->jpeg_quality(75);                // [OPTIONAL] set quality for jpeg only (0 - 100) (worst - best), default = 75
$thumb->show();                        // show your thumbnail
$thumb->save("./huhu.jpg");                // save your thumbnail to file
----------------------------------------------
Note :
- GD must Enabled
- Autodetect file extension (.jpg/jpeg, .png, .gif, .wbmp)
  but some server can't generate .gif / .wbmp file types
- If your GD not support 'ImageCreateTrueColor' function,
  change one line from 'ImageCreateTrueColor' to 'ImageCreate'
  (the position in 'show' and 'save' function)
*/############################################


class thumbnail
{
    var 
$img;

    function 
thumbnail($imgfile)
    {
        
//detect image format
        
$this->img["format"]=ereg_replace(".*\.(.*)$","\\1",$imgfile);
        
$this->img["format"]=strtoupper($this->img["format"]);
        if (
$this->img["format"]=="JPG" || $this->img["format"]=="JPEG") {
            
//JPEG
            
$this->img["format"]="JPEG";
            
$this->img["src"] = ImageCreateFromJPEG ($imgfile);
        } elseif (
$this->img["format"]=="PNG") {
            
//PNG
            
$this->img["format"]="PNG";
            
$this->img["src"] = ImageCreateFromPNG ($imgfile);
        } elseif (
$this->img["format"]=="GIF") {
            
//GIF
            
$this->img["format"]="GIF";
            
$this->img["src"] = ImageCreateFromGIF ($imgfile);
        } elseif (
$this->img["format"]=="WBMP") {
            
//WBMP
            
$this->img["format"]="WBMP";
            
$this->img["src"] = ImageCreateFromWBMP ($imgfile);
        } else {
            
//DEFAULT
            
echo "Not Supported File";
            exit();
        }
        @
$this->img["lebar"] = imagesx($this->img["src"]);
        @
$this->img["tinggi"] = imagesy($this->img["src"]);
        
//default quality jpeg
        
$this->img["quality"]=75;
    }

    function 
size_height($size=100)
    {
        
//height
        
$this->img["tinggi_thumb"]=$size;
        @
$this->img["lebar_thumb"] = ($this->img["tinggi_thumb"]/$this->img["tinggi"])*$this->img["lebar"];
    }

    function 
size_width($size=100)
    {
        
//width
        
$this->img["lebar_thumb"]=$size;
        @
$this->img["tinggi_thumb"] = ($this->img["lebar_thumb"]/$this->img["lebar"])*$this->img["tinggi"];
    }

    function 
size_auto($size=100)
    {
        
//size
        
if ($this->img["lebar"]>=$this->img["tinggi"]) {
            
$this->img["lebar_thumb"]=$size;
            @
$this->img["tinggi_thumb"] = ($this->img["lebar_thumb"]/$this->img["lebar"])*$this->img["tinggi"];
        } else {
            
$this->img["tinggi_thumb"]=$size;
            @
$this->img["lebar_thumb"] = ($this->img["tinggi_thumb"]/$this->img["tinggi"])*$this->img["lebar"];
         }
    }

    function 
jpeg_quality($quality=75)
    {
        
//jpeg quality
        
$this->img["quality"]=$quality;
    }

    function 
show()
    {
        
//show thumb
        
@Header("Content-Type: image/".$this->img["format"]);

        
/* change ImageCreateTrueColor to ImageCreate if your GD not supported ImageCreateTrueColor function*/
        
$this->img["des"] = ImageCreateTrueColor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);
            @
imagecopyresized ($this->img["des"], $this->img["src"], 0000$this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);

        if (
$this->img["format"]=="JPG" || $this->img["format"]=="JPEG") {
            
//JPEG
            
imageJPEG($this->img["des"],"",$this->img["quality"]);
        } elseif (
$this->img["format"]=="PNG") {
            
//PNG
            
imagePNG($this->img["des"]);
        } elseif (
$this->img["format"]=="GIF") {
            
//GIF
            
imageGIF($this->img["des"]);
        } elseif (
$this->img["format"]=="WBMP") {
            
//WBMP
            
imageWBMP($this->img["des"]);
        }
    }

    function 
save($save="")
    {
        
//save thumb
        
if (empty($save)) $save=strtolower("./thumb.".$this->img["format"]);
        
/* change ImageCreateTrueColor to ImageCreate if your GD not supported ImageCreateTrueColor function*/
        
$this->img["des"] = ImageCreateTrueColor($this->img["lebar_thumb"],$this->img["tinggi_thumb"]);
            @
imagecopyresized ($this->img["des"], $this->img["src"], 0000$this->img["lebar_thumb"], $this->img["tinggi_thumb"], $this->img["lebar"], $this->img["tinggi"]);

        if (
$this->img["format"]=="JPG" || $this->img["format"]=="JPEG") {
            
//JPEG
            
imageJPEG($this->img["des"],"$save",$this->img["quality"]);
        } elseif (
$this->img["format"]=="PNG") {
            
//PNG
            
imagePNG($this->img["des"],"$save");
        } elseif (
$this->img["format"]=="GIF") {
            
//GIF
            
imageGIF($this->img["des"],"$save");
        } elseif (
$this->img["format"]=="WBMP") {
            
//WBMP
            
imageWBMP($this->img["des"],"$save");
        }
    }
}
?>