[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);

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です