Code:
// GD Library
function RatioResizeImgGD($src_file, $dest_file, $newWidth) {
global
$gallerypath
;
// find the image size & type
if(!function_exists('imagecreate')){return $src_file;}
$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];
$ratioWidth = $srcWidth/$newWidth;
$destWidth = $newWidth;
$destHeight = $srcHeight / $ratioWidth;
// resize
$destImage = @imagecreatetruecolor($destWidth, $destHeight);
if (function_exists("imagecopyresampled")) {
imagecopyresampled($destImage, $srcImage, 0, 0, 0, 0, $destWidth,(int)$destHeight, $srcWidth, $srcHeight);
}else{
imagecopyresized($destImage, $srcImage, 0, 0, 0, 0, $destWidth,(int)$destHeight, $srcWidth, $srcHeight);
}
// create and save final picture
switch($type){
case IMG_GIF: @imagegif($destImage, "$dest_file", 100); break;
case IMG_JPG: @imagejpeg($destImage, "$dest_file", 100); break;
case IMG_PNG: @imagepng($destImage, "$dest_file", 100); break;
case IMG_WBMP: @imagewbmp($destImage, "$dest_file", 100); break;
}
// free the memory
@imagedestroy($srcImage);
@imagedestroy($destImage);
return $dest_file;
}
else
{
return $src_file;
}
}
|