フォームからの画像データアップロードした際に、サムネイル画像も作成する。

<?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();