0

私は現在、ランダムな画像を吐き出すこのスニペットを持っています

$imgDir  = 'images/';
$images  = glob($imagesDir . '*.{jpg}', GLOB_BRACE);
$randimg = $images[array_rand($images)];

しかし、CSSを使用して画像をゆがめるのではなく、画像を特定の幅(600px)にしたいのですが、上記のコードスニペットを組み込んだPHPを使用して画像の幅を確認する方法はありますか?

4

2 に答える 2

3

はい、個々のファイルを調べて、そのサイズを で確認できますgetimagesize

もちろん、毎回行うには非常にコストのかかる操作です。代わりに、これを一度実行して、サイズをファイル名の一部にするか (例: foobar_500.jpg) glob、データベースを使用して画像を整理し、そのようなメタデータを保存してクエリを実行できる場所から始めます。

于 2012-07-24T09:55:23.140 に答える
0

これにより、幅600の画像からランダムな画像のみを選択できるようになります

$imgDir = 'images/';
$images = glob($imgDir . '*.{jpg}', GLOB_BRACE);

$arr_images_600 = array();
foreach ($images as $img)
{
  list($width, $height, $type, $attr) = getimagesize($img);
  if ($width == 600) { $arr_images_600[] = $img; }
}
$randimg = $images[array_rand($arr_images_600)];
于 2012-07-24T10:00:16.653 に答える