Вывод всех изображений из папки

GEN_18

Новичок
Здравствуйте, ни как не могу вывести все изображения из заданной папки..((
Скрипт сканирует папку на наличие файлов, и должен их выводить...
но он этого не делает....
если же использовать скрипт без функции - то изображения выводятся, если использовать только функцию и указывать название файла, то он тоже отображается. а вот если соединить все вместе, то ничего не получается...(((( в чем может быть проблема??
PHP:
<?PHP
header('Content-type: image/jpeg');
function imageresize($outfile,$infile,$percents,$quality) {
$im=imagecreatefromjpeg($infile);
$w=imagesx($im)*$percents/200;
$h=imagesy($im)*$percents/200;
$im1=imagecreatetruecolor($w,$h);
imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im));
 
imagejpeg($im1,$outfile,$quality);
imagedestroy($im);
imagedestroy($im1);
}
 
$path=GetCWD()."/uploads";
$dir = opendir($path);
if((readdir($dir))!== false) {
foreach (scandir('uploads/') as $v)
{
    if ($v == '.' || $v == '..') continue;
    $file=imageresize("","$v",30,75);
    echo "<img  src='uploads/".$file."'/><br />";
       
}  
closedir($dir);
}
?>
 

Фанат

oncle terrible
Команда форума
Вопрос надо переформулировать.
Выводом изображений занимается только нижняя часть скрипта, и делает это, судя по всему, успешно.
то есть, с выводом проблем нет.

при этом верхняя часть представляет из себя какой-то адский треш и расчленёнку. Лучше спросить словами.
 

GEN_18

Новичок
Ну да...извиняюсь за неправильную формулировку вопроса.
Другими словами, мне нужно написать скрипт, который сканирует указанную папку на наличие каких либо изображений, и после - выводит их размером не больше 600х600
 

Beavis

Banned
вывод в браузер каждой картинки - это отдельный http-запрос
если ты хочешь вывести много картинок - надо сформировать много тегов <img src="...">
(этим у тебя занимается вторая часть кода)

значением атрибута src может быть либо URL самого файла с картинкой, либо URL php-скрипта, который предварительно обрабатывает картинку и отдает её на вывод с помощью как раз первой части твоего кода

если тебе нужно вывести изображения в размере не более 600х600, это можно сделать двумя способами: доверить ресайз картинки либо браузеру, либо php
в первом случае ты просто измеряешь какая сторона у картинки больше (width или height) и добавляешь к тегу img соотвествующий атрибут со значением 600 (это проще, но браузеры пользователей будут изначально скачивать полноразмерную картинку, что может повлечь большой траффик)
во втором случае тебе пригодится первая часть твоего кода, которая как раз будет заниматься ресайзом изображения, тогда нужно этот код вынести в отдельный скрипт, и прописать путь к нему в <img src="...">
 

Фанат

oncle terrible
Команда форума
... и таким образом устроить ДОС-атаку на свой сайт.
поскольку ресайз одной картинки рамером 1 мегапиксель отнимает больше ресурсов, чем выдача пхп страницы.
а запросов на такие ресацзы ты сразу отправляешь к себе десятки.

поздравляю, Шарик, ты балбес.
 

Beavis

Banned
Ну объясни тогда как сделать ресайз всех картинок, не делая ресайза
 

GEN_18

Новичок
я создал файл resize.php
который прогонят через себя фотографии
PHP:
<?php
header('Content-type: image/jpeg');
$fileName=$_GET['file'];
function imageresize($outfile,$infile,$percents,$quality) {
$im=imagecreatefromjpeg($infile);
$w=imagesx($im)*$percents/200;
$h=imagesy($im)*$percents/200;
$im1=imagecreatetruecolor($w,$h);
imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im));

imagejpeg($im1,$outfile,$quality);
imagedestroy($im);
imagedestroy($im1);
}

imageresize("","$fileName",30,75);
?>
а в index.php прописал вывод этих изображений
PHP:
<?php
$path=GetCWD()."/uploads";
$dir = opendir($path);
if((readdir($dir))!== false) {
foreach (scandir('uploads/') as $v) 
{ 
    if ($v == '.' || $v == '..') continue; 
     echo "<img src='resize.php?file=".$path."/".$v."'/><br />"; 
    
}  
closedir($dir);
} 
?>
теперь осталось сделать так, чтоб было изображение не больше 600
...скрипт долго обрабатывается....(
 

GEN_18

Новичок
а притом, что эти изображения потом будут посылаться на печать, а я не хочу, чтоб у них при печати терялось качество, и выводятся они для того, чтоб было видно, что пойдет на печать
 

Andkorol

Новичок
а притом, что эти изображения потом будут посылаться на печать, а я не хочу, чтоб у них при печати терялось качество, и выводятся они для того, чтоб было видно, что пойдет на печать
Ну так посылай на печать оригиналы - а показывай заранее отресайзенные превью, что мешает?
 
Сверху