フォームからの画像データアップロードした際に、サムネイル画像も作成する。
<?php
// コンテンツがPNG画像であることをブラウザにお知らせ
// サーバー内に画像出力の場合は必要ない
header ('Content-Type: image/png');
// オリジナル画像のファイルパスを指定
$original_file = 'images/sakura.png';
// getimagesize関数 オリジナル画像の横幅・高さを取得
list($original_width, $original_height) = getimagesize($original_file);
// サムネイルの横幅を指定
$thumb_width = 200;
// サムネイルの高さを算出 round関数で四捨五入
$thumb_height = round( $original_height * $thumb_width / $original_width );
// オリジナルファイルの画像リソース
$original_image = imagecreatefrompng($original_file);
// サムネイルの画像リソース
$thumb_image = imagecreatetruecolor($thumb_width, $thumb_height);
// サムネイル画像の作成
imagecopyresized($thumb_image, $original_image, 0, 0, 0, 0,
$thumb_width, $thumb_height,
$original_width, $original_height);
// サムネイル画像の出力
imagepng($thumb_image, $out_dir.$file_name); // 第二引数に画像の出力パスを指定できる
// 画像リソースを破棄
imagedestroy($original_image);
imagedestroy($thumb_image);
?>
拡張子がバラバラな場合は、アップロードした画像の拡張子を取得し、出力の際に、拡張子にあった関数を実行しなければならない。
- png : imagepng();
- jpg : imagejpeg();
- gif : imagegif();