0

我目前有这个片段,它吐出一个随机图像

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

但我希望图像具有一定的宽度(600px),而不是使用 CSS 来扭曲图像有没有一种方法可以使用 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 回答