前提条件:GDライブラリが使えること
resize関数仕様:
パラメータ
$filename:元ファイル名(拡張子を除く)
$ext:元拡張子
$resizeWidth:リサイズ後のwidth(デフォルト=640px)
出力
リサイズ後の画像で元ファイルが上書きされます。
※上書きしたくない場合は、imagexxxx()の第2パラメータにリサイズ後のファイル名を指定してするような作りにして下さい。
function resize($filename, $ext, $resizeWidth = 640){
list($width, $height) = getimagesize("./".$filename.".".$ext);
// 縦横のリサイズ後のピクセル数を求める
$ratio = $resizeWidth / $width;
$newWidth = $width * $ratio;
$newHeight = $height * $ratio;
$baseImage = imagecreatexxxx($filename, $ext);
if($baseImage === false) return false;
$newImage = imagecreatetruecolor($newWidth, $newHeight);
$res = imagecopyresampled($newImage, $baseImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
$res = imagexxxx($newImage, $filename, $ext);
if($res === false) return false;
return true;
}
function imagecreatexxxx($filename, $ext){
switch($ext){
case 'jpg':
case 'jpeg':
$baseImage = imagecreatefromjpeg("./".$filename.".".$ext);
break;
case 'png':
$baseImage = imagecreatefrompng("./".$filename.".".$ext);
break;
case 'gif':
$baseImage = imagecreatefromgif("./".$filename.".".$ext);
break;
default:
$baseImage = false;
break;
}
return $baseImage;
}
function imagexxxx($newImage, $filename, $ext){
switch($ext){
case 'jpg':
case 'jpeg':
$res = imagejpeg($newImage, "./".$filename.".".$ext);
break;
case 'png':
$res = imagepng($newImage, "./".$filename.".".$ext);
break;
case 'gif':
$res = imagegif($newImage, "./".$filename.".".$ext);
break;
default:
$res = false;
break;
}
return $res;
}