function resize($src_file, $dest_file, $newWidth,$newHeight) {
// find the image size & type
$testGD = get_extension_funcs("gd"); // Grab function list
if (!$testGD){ return $src_file; /*echo "GD not even installed."; exit;*/ }
if (in_array ("imagecreatetruecolor",$testGD)) $truecolor = TRUE; // Check
$imginfo = getimagesize($src_file);
switch($imginfo[2]) {
case 1: $type = IMG_GIF; break;
case 2: $type = IMG_JPG; break;
case 3: $type = IMG_PNG; break;
case 4: $type = IMG_WBMP; break;
default: return $src_file; break;
}
switch($type) {
case IMG_GIF:
if(!function_exists('imagecreatefromgif')){return $src_file;}
$srcImage = @imagecreatefromgif("$src_file");
break;
case IMG_JPG:
if(!function_exists('imagecreatefromjpeg')){return $src_file;}
$srcImage = @ImageCreateFromJpeg($src_file);
break;
case IMG_PNG:
if(!function_exists('imagecreatefrompng')){return $src_file;}
$srcImage = @imagecreatefrompng("$src_file");
break;
case IMG_WBMP:
if(!function_exists('imagecreatefromwbmp')){return $src_file;}
$srcImage = @imagecreatefromwbmp("$src_file");
break;
default: return $src_file;
}
if($srcImage){
// height/width
$srcWidth = $imginfo[0];
$srcHeight = $imginfo[1];
if($srcWidth>$srcHeight){
//echo"$srcWidth>$srcHeight - W
";
$ratio = $srcHeight/$newHeight;
$destWidth = $srcWidth / $ratio;
$destHeight = $newHeight;
if($destWidth<$newWidth){
$ratio = $srcWidth/$newWidth;
$destWidth = $newWidth;
$destHeight = $srcHeight / $ratio;
}
}
if($srcWidth<$srcHeight){
//echo"H
";
$ratio = $srcWidth/$newWidth;
$destWidth = $newWidth;
$destHeight = $srcHeight / $ratio;
if($destHeight<$newHeight){
$ratio = $srcHeight/$newHeight;
$destHeight = $newHeight;
$destWidth = $srcWidth / $ratio;
}
}
//echo "$destWidth x $destHeight
";
// resize
//echo $gd_version;
if ($truecolor) {
$destImage = @imagecreatetruecolor($destWidth, $destHeight);
$cropImage = @imagecreatetruecolor($newWidth,$newHeight);
imagecopyresampled($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
//echo 'GD_2';
} else {
$destImage = @imagecreate($destWidth, $destHeight);
$cropImage = @imagecreate($newWidth,$newHeight);
imagecopyresized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
//echo 'GD_1';
}
imagecopy($cropImage, $destImage, 0, 0, (($destWidth/2)-($newWidth/2)), (($destHeight/2)-($newHeight/2)), $newWidth, $newHeight);
// create and save final picture
switch($type){
case IMG_GIF: @imagegif($cropImage, "$dest_file"); break;
case IMG_JPG: @imagejpeg($cropImage, "$dest_file"); break;
case IMG_PNG: @imagepng($cropImage, "$dest_file"); break;
case IMG_WBMP: @imagewbmp($cropImage, "$dest_file"); break;
}
// free the memory
@imagedestroy($srcImage);
@imagedestroy($destImage);
@imagedestroy($cropImage);
return $dest_file;
} else {
return $src_file;
}
}