PHP Classes

File: resize.php

Recommend this page to a friend!
  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: 18 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"], 0, 0, 0, 0, $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"], 0, 0, 0, 0, $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");
        }
    }
}
?>