Share on Google+Share on Google+

PHP GD Create Thumbnail

Advertisement
This example shows How to Create Thumbnail in PHP GD.

<?php

$i = new imagethumbnail();

$i->open("index.jpg");

$i->setX(100);

header("Content-type: image/jpeg;");

$i->imagejpeg();

class imagethumbnail {

var $filename;

var $x;

var $y;

var $image;

var $thumbnail;

function imagethumbnail() {

}

function open($filename) {

$this->filename = $filename;

$imageinfo = array();

$imageinfo = getimagesize($this->filename,$imageinfo);

$this->old_x = $imageinfo[0];

$this->old_y = $imageinfo[1];

switch ($imageinfo[2]) {

case "1": $this->image = imagecreatefromgif($this->filename); break;

case "2": $this->image = imagecreatefromjpeg($this->filename); break;

case "3": $this->image = imagecreatefrompng($this->filename); break;

}

}

function setX($x="") {

if (isset($x)) { $this->x = $x; }

return $this->x;

}

function setY($y="") {

if (isset($y)) { $this->y = $y; }

return $this->y;

}

function generate() {

if ($this->x > 0 and $this->y > 0) {

$new_x = $this->x;

$new_y = $this->y;

} elseif ($this->x > 0 and $this->x != "") {

$new_x = $this->x;

$new_y = ($this->x/$this->old_x)*$this->old_y;

} else {

$new_x = ($this->y/$this->old_y)*$this->old_x;

$new_y = $this->y;

}

$this->thumbnail = imagecreatetruecolor($new_x,$new_y);

$white = imagecolorallocate($this->thumbnail,255,255,255);

imagefill($this->thumbnail,0,0,$white);

imagecopyresampled ( $this->thumbnail, $this->image, 0, 0, 0, 0, $new_x, $new_y, $this->old_x, $this->old_y);

}

function imagegif($filename="") {

if (!isset($this->thumbnail)) { $this->generate(); }

imagetruecolortopalette($this->thumbnail,0,256);

if ($filename=="") {

imagegif($this->thumbnail);

} else {

imagegif($this->thumbnail,$filename);

}

}

function imagejpeg($filename="",$quality=80) {

if (!isset($this->thumbnail)) { $this->generate(); }

imagejpeg($this->thumbnail,$filename,$quality);

}

function imagepng($filename="") {

if (!isset($this->thumbnail)) { $this->generate(); }

if ($filename=="") {

imagepng($this->thumbnail);

} else {

imagepng($this->thumbnail,$filename);

}

}

}

?>

After running the program you will get the following output

Advertisements

Posted on: November 3, 2009 If you enjoyed this post then why not add us on Google+? Add us to your Circles

Share this Tutorial Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.