PHPで画像を扱う時重宝するのがGDライブラリです。画像を縮小してサムネイルを作成する場合を例に、簡単な使い方をメモっておきます
まずは画像の読み込みから。
$file_path = "path or URI";
$image = ImageCreateFromJPEG($file_path); //JPEGファイルを読み込む
$image = ImageCreateFromGIF($file_path); //GIFファイルを読み込む
$image = ImageCreateFromPNG($file_path); //PNGファイルを読み込む
ファイル形式によって読み込むための関数が違うので、あらかじめファイル形式を取得しておかなくてはなりません。アップロードされたファイルであれば、$_FILES['変数名']['type']で取得できますが、そうでない場合は getimagesize を使います。

で、読み込んだ画像のサイズを取得
$width = ImageSX($image); //横幅(ピクセル)
$height = ImageSY($image); //縦幅(ピクセル)
目的に応じて、縮小した画像のサイズを決めます。 例えば、幅を100ピクセルに固定したいなら、
$new_width = 100;
$rate = $new_width / $width; //圧縮比
$new_height = $rate * $height;
次に空の画像を作成
$new_image = ImageCreateTrueColor($new_width, $new_height);
作成した空の画像に、リサイズした画像をコピー
ImageCopyResized($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height);
もしくは、サンプリングし直してコピーした方が画像はきれいかも
ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height);
これで一応、縮小画像が作成された。 あとは、ブラウザに出力したり
ImageJPEG($new_image);
ImageGIF($new_image); //環境によっては使えない
ImagePNG($new_image);
ファイルに保存したり
ImageJPEG($new_image, $file_path, 70); //3つ目の引数はクオリティー(0〜100)
ImageGIF($new_image, $file_path); //環境によっては使えない
ImagePNG($new_image, $file_path);
意外と簡単に使えます。

旧ブログ ¼http://sandman.s6.xrea.com/nucleus/item-60.html
2006年02月06日04時33分11秒
カテゴリ: メディア