Программно выбрать самое большое изображение из массива URL-адресов изображений в PHP? - PullRequest
1 голос
/ 22 мая 2011

У меня есть массив с 4-5 локальными URL-адресами изображений.

Я хочу программно вернуть URL самого большого изображения по размеру изображения в массиве. Как мне это сделать?

Ответы [ 2 ]

7 голосов
/ 22 мая 2011

Очень упрощенный подход будет:

$files = array_combine($filenames,
  array_map("array_sum", array_map("getimagesize", $filenames))
);
arsort($files);

print key($files);    # largest image

Это просто добавляет $ width + $ height и проверяет, для какого файла это наибольшее количество. Аналогичные результаты умножения двух значений. Но на практике вам может потребоваться вручную найти значение max() ширины и высоты, если 15x1000 следует рассматривать как больше, чем 550x550.

4 голосов
/ 22 мая 2011

getimagesize - это то, что вы хотите здесь. Я закодировал это в очень удобной для обучения форме. Есть более продвинутые способы сделать это, но они иногда становятся тупыми.

$largest = -1;
$largest_image = null;

foreach ($images as $image)
{
    $size = getimagesize($image);
    $val = $size[0] * $size[1];
    if ($val > $largest)
    {
        $largest_image = $image;
        $largest = $val;
    }
}
if ($largest_image != null) 
{
   // do magic
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...