Revision: 29132
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 22, 2010 18:07 by stuntsnippets
Initial Code
$upfile = $_REQUEST['p']; $max_width = $_REQUEST["w"]; $max_height = $_REQUEST["h"]; $def_width = $_REQUEST["wh"]; $def_height = $_REQUEST["hw"]; if(empty($def_width) && empty($def_height)) { $def_width = '245'; $def_height = '245'; } if ($def_height=='') $def_height = $def_width; //IMAGE PATH $exportPng = false; if(!file_exists($_SERVER['DOCUMENT_ROOT'] . $upfile)) $upfile = $_SERVER['DOCUMENT_ROOT'] . $upfile; else { $upfile = "img/nophoto.jpg"; $exportPng = true; } //since we already have predefined values of extension $ext = strtolower(substr($upfile, -3)); //INCREASE MEMORY LIMIT WHEN WORKING WITH ini_set('memory_limit', '64M'); //MAKE NEW IMAGE OUT OF EXTENSION if ($ext=="gif") { $src = @ImageCreateFromGif($upfile); header("Content-Type: image/gif"); } if ($ext=="jpg") { $src = @ImageCreateFromJpeg($upfile); header("Content-Type: image/jpeg"); } if ($ext=="png") { $src = @ImageCreateFromPng($upfile); header("Content-Type: image/png"); } $size = GetImageSize($upfile); $width = $size[0]; $height = $size[1]; if ($def_width == '') { // Proportionally resize the image to the max sizes if (($max_width == '')&&($max_height == '')) { $max_width = $width; $max_height = $height; } if ($max_width == '') $max_width = ($max_height*$width) / $height; if ($max_height == '') $max_height = ($max_width*$height) / $width; if ($max_height > $max_width) $highter_dimension=$max_height; else $highter_dimension = $max_width; if ($width == 0) $x_ratio = $max_width; else $x_ratio = $max_width / $width; if ($height == 0) $y_ratio = $max_height; else $y_ratio = $max_height / $height; if( ($width <= $max_width) && ($height <= $max_height) ) { $tn_width = $width; $tn_height = $height; } elseif (($x_ratio * $height) < $max_height) { $tn_height = ceil($x_ratio * $height); $tn_width = $max_width; } else { $tn_width = ceil($y_ratio * $width); $tn_height = $max_height; } $dst = ImageCreateTrueColor($tn_width, $tn_height); ImageCopyResized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height); } if($def_width != '') { $highter_dimension = $def_width; if ($def_width < $def_height) $highter_dimension = $def_height; $factor_w = $width / $def_width; $factor_h = $height / $def_height; if ($factor_w > $factor_h) { $new_height = floor($def_height * $factor_h); $new_width = floor($def_width * $factor_h); } else { $new_height = floor($def_height * $factor_w); $new_width = floor($def_width * $factor_w); } $src_x = ceil(($width - $new_width) / 2); $src_y = ceil(($height - $new_height) / 2); $dst = ImageCreateTrueColor($def_width, $def_height); @ImageCopyResized($dst, $src, 0, 0, $src_x, $src_y, $def_width, $def_height, $new_width, $new_height); } if(!$exportPng) Header("Content-type: image/jpeg"); else Header("Content-type: image/png"); //OUTPUT INTO PNG TO GET HIGHER QUALITY IMAGE if(!$exportPng) ImageJpeg($dst); else ImagePng($dst); @ImageDestroy($src); @ImageDestroy($dst);
Initial URL
http://stuntsnippets.com/php-thumbnail-generator/
Initial Description
<img>
Initial Title
Image thumbnail generator for PHP
Initial Tags
php, image
Initial Language
PHP