//$befor_file:元画像ファイルのフルパス
//$new_width:縮小後の横幅サイズ(縦横比を維持する)
//$after_file:縮小後ファイルのフルパス
//元画像と縮小後のフルパスが同じだったら上書きする
function f_resizeImage($befor_file, $new_width, $after_file){
list($width, $height, $type) = getimagesize($befor_file);
$new_height = round($height*$new_width/$width);
$emp_img = imagecreatetruecolor($new_width, $new_height);
switch($type){
case IMAGETYPE_JPEG:
$new_image = imagecreatefromjpeg($befor_file);
break;
case IMAGETYPE_GIF:
$new_image = imagecreatefromgif($befor_file);
break;
case IMAGETYPE_PNG:
imagealphablending($emp_img, false);
imagesavealpha($emp_img, true);
$new_image = imagecreatefrompng($befor_file);
break;
}
imagecopyresampled($emp_img, $new_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
switch($type){
case IMAGETYPE_JPEG:
imagejpeg($emp_img, $after_file);
break;
case IMAGETYPE_GIF:
$bgcolor = imagecolorallocatealpha($new_image, 0, 0, 0, 127);
imagefill($emp_img, 0, 0, $bgcolor);
imagecolortransparent($emp_img, $bgcolor);
imagegif($emp_img, $after_file);
break;
case IMAGETYPE_PNG:
imagepng($emp_img, $after_file);
break;
}
imagedestroy($emp_img);
imagedestroy($new_image);
}