PHP:getimagesize()関数で画像サイズを揃えて出力

複数個リスト化された画像があり、サイズがまちまちであった場合、これらを並べて表示しようとすると、不揃いなサイズにイライラすることでしょう。
これをキレイに並べたいとき、このようなテクニックはいかがでしょうか。
PHPには指定した画像ファイルの大きさに関する情報を配列として取得する、getimagesize()関数がありますので、これを使用。

<?php
//例えば75pxに画像サイズを揃える
$img_size = 75;
// 値 A から 値 B まで繰り返し処理
foreach ( A as B ) {
    
// 実際には 繰り返すイメージの個数分を以下にロジック
    
$image_url = 'ex/path/to/imageAtoB';
    
// 元画像のタテ・ヨコサイズを取得
    
list($width,$height)=getimagesize("$image_url");
    
// 幅をimg_sizeで固定し、高さを比率で縮尺させる。少数点はROUND
    
$height = round($height * $img_size / $width);
    
// サイズ変更指定し出力
    
echo "<img width=¥"$img_size¥" hegiht=¥"$height¥" src=¥"
$image_url¥" alt=¥"¥" />";
}

?>

Plain Text:

<?php
$img_size = 75;

foreach ( A as B ) {
  $image_url = 'ex/path/to/imageAtoB';
  list($width,$height)=getimagesize("$image_url");
  $height = round($height * $img_size / $width);
  echo "<img width=¥"$img_size¥" hegiht=¥"$height¥" src=¥"$image_url¥" alt=¥"¥" />";
}
?>

少なくとも、上のサンプルコードに対して、

  • xml (やrss) からimg要素を取り出し、'ex/path/to/imageAtoB'へ繰り返し指定する等の加工が必要です。
  • ‘ex/path/to/imageAtoB’ には画像がある事を前提にしています。
    無い場合に備えてエラー処理が必要です。

設置サンプル
http://simurgh.info/

PHP: getimagesize() – Manual
(PHP 4, PHP 5)


Twitter Comment

タグ:
Posted 2008年2月11日 19時29分51秒 in php by junichi_y Comments (0)

Subscribe to comments with RSS to 'PHP:getimagesize()関数で画像サイズを揃えて出力' .
TrackBack URL 

コメントする


Get Adobe Flash player