сделать превьюшки для всех картинок, лежащих на серваке

  • Автор темы Автор темы natalie
  • Дата начала Дата начала

natalie

Новичок
сделать превьюшки для всех картинок, лежащих на серваке

Здравствуйте,

у меня такая проблема:

- на сервере лежит куча папок, внутри каждой папки лежат фотографии и xml-файл, описывающий фотки полностью.
- в базе данных записана вся инфа о папках и содержащихся в них фотографиях.
- нужно обойти все папки и понаделать превьюшек для всех этих фоток, сложив превьюшки туда же и назвать их small_имяфотки.jpg

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

а то у меня галеррея тормозит жутко... еще бы! в общем тупо был сделан скрипт - нужно исправлять ошибки.

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

- сделать большой select из базы id папок
- все обойти, для каждой фотки сделать preview

по идее это будет отдельный php файл и этот php файл будет запущен только один раз, верно?

добавить генерацию превьюшки при аплоаде в основной скрипт, и везде в основном скрипте, показать, что в галерее нужно превьюшки отображать... вроде все.
 
- нужно обойти все папки и понаделать превьюшек для всех этих фоток, сложив превьюшки туда же и назвать их small_имяфотки.jpg
ты уже написал ответ
 
#!/bin/sh
ROOTDIR="/home/domain.tld/public_html/images/"
for fldr in `find $ROOTDIR -type d`; #берём все папки
do
chdir $fldr; #заходим в каждую
for f in `ls *.jpg 2>/dev/null`; #берём все jpg-файлы (ошибки а-ля файл не найден распыляем на ионы пропан-бутана)
do
convert $f -resize 400x300 small_$f; #c помощью imagemagick уменьшаем их
done;
done;

-~{}~ 25.11.06 15:50:

другой способ, не требующий shell-доступа.

пишем в html-е src картинок как /path/to/small_picture.ext

mod_rewrite-ом
организуем правила
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule small_\.(jpg|png|gif)$ /path/to/imageresizer.php [L]

в imageresizer.php
ищем картинку без small_, ресайзим и сохраняем с требуемым
названием (и заодно выдаем её в output)

Итого - при первом посещении маленькие картинки сгенерятся, но первый посетитель очумеет ждать их загрузки...
 
Спасибо,
MiRacLe

надо только будет к ним imagemagic поставить, я думала уменьшать с gd,

когда писать начну наверно еще много непоняток возникнет...

спасибо!
 
Сверху