PHPのGDライブラリを使用して画像のリサイズをする関数を作ってみました。縦横長いほうを基準に引数で指定した長さにリサイズします。
※違うソース載っけてました。これが正解です。
function image_resize($source, $length){
//元画像のサイズをゲット
list($o_width, $o_height) = getimagesize($source);
//縦長か横長かをチェック
if($o_width > $o_height){//横長の場合
$height = ($o_height / $o_width) * $length;
$width = $length;
}else{//縦長の場合
$width = ($o_width / $o_height) * $length;
$height = $length;
}
//元画像を読み込み
$source = imagecreatefromjpeg($source);
//リサイズ用の画像を作成
$new_image = imagecreatetruecolor($width, $height);
//元画像からリサイズしてコピー
imagecopyresampled($new_image,$source, 0, 0, 0, 0,
$width, $height, $o_width, $o_height);
//画像の表示
header('Content-Type: image/jpeg');
imagejpeg($new_image,NULL,100);
imagedestroy($new_image);
}
image_resize("画像へのパス", リサイズ後のサイズ);
By じびき 2006/4/26 水曜日 - 23:45:56
「縦横長いほうを基準に」はどこでやっているんですか?
By 管理人 2006/4/27 木曜日 - 1:13:11
ちがうやつ載せちゃいました!
ご指摘ありがとうございます。
By じびき 2006/5/3 水曜日 - 22:01:19
すみません、教えてください。
これだとheader()を使っているので、一つのウインドウに一つの画像しか載せられませんよね。複数載せたり、文字を入れたりしたい場合はどうしていますか?
By 管理人 2006/5/10 水曜日 - 16:27:05
実際に使用するときには画像をファイルとして書き出して表示しています。さらに既に同盟の画像が存在するときには画像を作らないようにしています。