Revision: 28697
Updated Code
at July 13, 2010 18:17 by alessio2
Updated Code
/**
* Function that creates thumbnail from image
* Original author: Christian Heilmann
* Fixed and extended: Ales Rebec
*
* @param $name Original filename (fullpath to image)
* @param $filename Filename of the resized image (fullpath to thumbnail that will be created)
* @param $new_w width of resized image in px (ex. 80 or 100)
* @param $new_h height of resized image in px
*/
public function createthumb($name,$filename,$new_w,$new_h)
{
$type = 0;
$size = getimagesize($name);
$mime = $size['mime']; //get image mime type (ex. "image/jpeg" or "image/gif")
$system=explode("/",$mime);
if (preg_match("/jpg|jpeg/i",$system[sizeof($system)-1])) {$type=1; $src_img=imagecreatefromjpeg($name);}
if (preg_match("/png/i",$system[sizeof($system)-1])) {$type=2; $src_img=imagecreatefrompng($name);}
if (preg_match("/gif/i",$system[sizeof($system)-1])) {$type=3; $src_img=imagecreatefromgif($name);}
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
if ($old_x > $old_y) //calculate thumnails dimenstions and preserve aspect ratio
{
$thumb_w=$new_w;
$thumb_h=$old_y*($new_h/$old_x);
}
if ($old_x < $old_y)
{
$thumb_w=$old_x*($new_w/$old_y);
$thumb_h=$new_h;
}
if ($old_x == $old_y)
{
$thumb_w=$new_w;
$thumb_h=$new_h;
}
$dst_img= imagecreatetruecolor($thumb_w,$thumb_h); //create new image "canvas"
if($type > 1) $this->setTransparency($dst_img, $src_img); //if GIF or PNG -> set tranparency
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
if ($type == 3) imagegif($dst_img,$filename);
else if ($type == 2) imagepng($dst_img,$filename);
else imagejpeg($dst_img,$filename);
imagedestroy($dst_img);
imagedestroy($src_img);
}
Revision: 28696
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 12, 2010 23:06 by alessio2
Initial Code
/**
* Function that creates thumbnail from image
* Original author: Christian Heilmann
* Fixed and extended: Ales Rebec
*
* @param $name Original filename (fullpath to image)
* @param $filename Filename of the resized image (fullpath to thumbnail tha will be created)
* @param $new_w width of resized image in px (ex. 80 or 100)
* @param $new_h height of resized image in px
*/
public function createthumb($name,$filename,$new_w,$new_h)
{
$type = 0;
$size = getimagesize($name);
$mime = $size['mime']; //get image mime type (ex. "image/jpeg" or "image/gif")
$system=explode("/",$mime);
if (preg_match("/jpg|jpeg/i",$system[sizeof($system)-1])) {$type=1; $src_img=imagecreatefromjpeg($name);}
if (preg_match("/png/i",$system[sizeof($system)-1])) {$type=2; $src_img=imagecreatefrompng($name);}
if (preg_match("/gif/i",$system[sizeof($system)-1])) {$type=3; $src_img=imagecreatefromgif($name);}
$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
if ($old_x > $old_y) //calculate thumnails dimenstions and preserve aspect ratio
{
$thumb_w=$new_w;
$thumb_h=$old_y*($new_h/$old_x);
}
if ($old_x < $old_y)
{
$thumb_w=$old_x*($new_w/$old_y);
$thumb_h=$new_h;
}
if ($old_x == $old_y)
{
$thumb_w=$new_w;
$thumb_h=$new_h;
}
$dst_img= imagecreatetruecolor($thumb_w,$thumb_h); //create new image "canvas"
if($type > 1) $this->setTransparency($dst_img, $src_img); //if GIF or PNG -> set tranparency
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
if ($type == 3) imagegif($dst_img,$filename);
else if ($type == 2) imagepng($dst_img,$filename);
else imagejpeg($dst_img,$filename);
imagedestroy($dst_img);
imagedestroy($src_img);
}
Initial URL
Initial Description
* Creates thumbnail from image * thumbnail dimensions can be set as parameters * accepts JPG, JPEG, GIF, PNG * preserves transparency for GIF and PNG on thumbnails * call function like this: createthumb(images/original.jpg, thumbs/thumb.jpg, 80, 80);
Initial Title
Generate thumbnails with PHP by AR
Initial Tags
image
Initial Language
PHP