php随机图像,宽度等于

时间:2012-07-24 09:52:21

标签: php arrays image width

我目前有这个片段随机吐出一张图片

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

但是我希望图像是一定宽度(600px),而不是使用CSS来扭曲图像是否可以使用包含上面代码片段的PHP来检查图像宽度?

2 个答案:

答案 0 :(得分:3)

是的,您可以浏览每个单独的文件,并使用getimagesize检查其大小。

这当然是每次都要做的非常昂贵的操作。相反,执行此操作一次并为文件名创建文件名(例如foobar_500.jpg)和glob,或者使用数据库来组织图像,从保存此类元数据和查询的位置开始它

答案 1 :(得分: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)];