[PHP]画像ファイルのフォーマットをpng/jpg/gifに変換する方法
PHPで画像ファイルのフォーマットをpng/jpg/gifに変換する方法
*GDがインストールされている前提
画像サイズを変更しない場合
//変換前の画像
$file = 'sample.jpg';
//ファイルのフォーマットを取得
$file_type = mime_content_type($file);
//ファイルのフォーマットに合わせてファイルからイメージデータを作成
switch ($file_type) {
case 'image/jpeg':
$img = imagecreatefromjpeg($file);
break;
case 'image/png':
$img = imagecreatefrompng($file);
break;
case 'image/gif':
$img = imagecreatefromgif($file);
break;
default:
break;
}
//ファイルのフォーマットを指定して保存
imagepng($img, 'new.png');
imagejpeg($img, 'new.jpeg');
imagegif($img, 'new.gif');
//イメージデータの削除
imagedestroy($img);
画像サイズを変更する方法
//変換前の画像
$file = 'sample.jpg';
//ファイルのサイズを取得
list($w, $h) = getimagesize($file);
//ファイルのフォーマットを取得
$file_type = mime_content_type($file);
//ファイルのフォーマットに合わせてファイルからイメージデータを作成
switch ($file_type) {
case 'image/jpeg':
$img = imagecreatefromjpeg($file);
break;
case 'image/png':
$img = imagecreatefrompng($file);
break;
case 'image/gif':
$img = imagecreatefromgif($file);
break;
default:
break;
}
//ベースとなるイメージデータを作成
$new_img = imagecreatetruecolor($w, $h);
//ベースの画像データと変換前のファイルデータを重ねる
imagecopyresampled($new_img, $img, 0, 0, 0, 0, $w, $h, $w, $h);
//ファイルのフォーマットを指定して保存
imagepng($new_img, 'new.png');
imagejpeg($new_img, 'new.jpeg');
imagegif($new_img, 'new.gif');
//イメージデータの削除
imagedestroy($img);
imagedestroy($new_img);