PHPで画像を扱う時重宝するのがGDライブラリです。画像を縮小してサムネイルを作成する場合を例に、簡単な使い方をメモっておきます
まずは画像の読み込みから。
で、読み込んだ画像のサイズを取得
旧ブログ ¼http://sandman.s6.xrea.com/nucleus/item-60.html
$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秒
カテゴリ: メディア
カテゴリ: メディア