2015-04-17 2 views
2

Я занимаюсь разработкой веб-сайтов Я хотел бы изменить размер всех изображений в каталоге с помощью PHP. Каталог является общедоступным, и любой, кто работает на сайте, может вставлять изображения (которые будут использоваться в качестве случайного фона). Есть ли способ проверить размер изображения, выбранного из массива имен файлов с помощью PHP? И, кроме того, вы могли бы отбросить изображение до определенного размера, если параметры слишком велики?Изменить размер всех изображений в каталоге с помощью PHP?

<?php 

$bg = glob("imgfiles/*.*"); $add image names to array 
$i = rand(0, count($bg)-1); // generate random number size of the array 
$selectedBg = "$bg[$i]"; // set background equal to which random filename was chosen 
?> 
+0

хорошего старта, теперь запустить функцию изменения размера внутри http://stackoverflow.com/search?q=php+image+resize петли –

+0

Can вы добавляете на свой PHP расширение Imagick? https://php.net/manual/en/book.imagick.php –

+0

Мне нужно было спросить моего начальника. Будет ли это относительно простым решением? –

ответ

1

Так что я хотел бы предложить что-то вроде:

<?php 
$maxw = 1024; 
$maxh = 320; 
$bg = glob("./imgfiles/*.*"); // add image names to array 
$selectedBgPath = "./imgfiles/" . $bg[array_rand($bg)]; // set background path equal to which random filename was chosen 
list($width, $height, $type, $attr) = getimagesize($selectedBgPath); 
if($width > $maxw || $height > $maxh){ 
    // Resize as needed 
    // $newSelectedBgPath 
} 
if(isset($newSelectedBgPath)){ 
    $fp = fopen($newSelectedBgPath, "rb"); 
} else { 
    $fp = fopen($selectedBgPath, "rb"); 
} 
header("Content-type: $type"); 
fpassthru($fp); 
exit; 
?> 
+0

все сработало! Спасибо! Я должен был сделать несколько небольших настроек, но по большей части это работает :) –

+0

размер измененного размера, не изменяйте размер на лету –

Смежные вопросы