Скрипт миниатюр.
Выкладываю отдельно простой php-скрипт для генерации миниатюр на лету с кэшем (и проверкой актуальности, естественно), используемый в моей CMS.
Работает со всеми jpg/png/gif изображениями, лежащими внутри папки, в которую поставлен (рекурсивно). Если поставить в корень хоста – то со всеми изображениями на этом хосте.
Лицензия: GNU LGPLv3+.
Показываю примеры работы.
Оригинальный файл:
image.jpg (1251 на 2000 пикселей).
Уменьшенное изображение, вписанное в 300×200:
.jpg)
image.(300×200).jpg
(125 на 200 пикселей).
Отношение сторон сохраняется.
image.jpg.(300×200) – то же самое, что и image.(300×200).jpg, для простоты автоматического использования.
image.(300).jpg – то же самое, что и image.jpg.(300), image.(300×300).jpg, и image.jpg.(300×300) (вписанное в квадрат сто стороной 300).
image.(400×500).jpg?nocache=1 – отключает кэш (мне это нужно было для генерации изображений непостоянных размеров, например, во всплывающем div предпросмотра на яваскрипте, когда размер картинки зависит от размера окна браузера пользователя – их сохранять просто незачем).
Маленькие изображения не увеличивает, зато скрипт гарантирует что получившееся изображение будет правильного отношения сторон и не больше заданного размера.
Если файла изображения нет, показывает такую (меняется) картинку, вписанную в тот же размер:
.jpg)
invalid_image.(80×80).jpg
Файлы и инструкции по установке – ниже.
Как ставить:
- Скачиваем архив, распаковываем, кладём получившуюся папку „thumbnail” в корень директории, в которой нужны миниатюры.
- Ставим права на запись (желательно, минимальные, скорее всего — 700 или 770) на папку „thumbnail/cache”, если нужен кэш. Если не нужен — отключаем его в заголовке файла „thumbnail/index.php”.
- Открываем „thumbnail/htaccess_parent.txt”, добавляем его содержимое в „.htaccess” файл той директории, куда положили „thumbnail (если его там нету – создаём с этим содержимым).
- По желанию меняем путь к файлу, который показывается, если изображение не найдено (в заголовке файла „thumbnail/index.php”).
- Проверяем на любом изображении.
„.htaccess”:
# Image thumbnails
#
# Add this to your htaccess file.
#
# Supported types: jpg, jpeg, png, gif.
# Supported formats: path/file.png.(HxW), path/file.png.(M), path/file.(HxW).png, path/file.(M).png,
# where H stands for max-height, W - for max-width, M - for both max-height and max-width
#
RewriteEngine On
RewriteRule ^(.+)\.(jpg|jpeg|png|gif|bmp|tiff)\.\(([0-9]+)x([0-9]+)\)$ thumbnail/index.php?img=$1.$2&w=$3&h=$4 [L,QSA,NC]
RewriteRule ^(.+)\.(jpg|jpeg|png|gif|bmp|tiff)\.\(([0-9]+)\)$ thumbnail/index.php?img=$1.$2&w=$3&h=$3 [L,QSA,NC]
RewriteRule ^(.+)\.\(([0-9]+)x([0-9]+)\)\.(jpg|jpeg|png|gif|bmp|tiff)$ thumbnail/index.php?img=$1.$4&w=$2&h=$3 [L,QSA,NC]
RewriteRule ^(.+)\.\(([0-9]+)\)\.(jpg|jpeg|png|gif|bmp|tiff)$ thumbnail/index.php?img=$1.$3&w=$2&h=$2 [L,QSA,NC]
# /Image thumbnails
„.htaccess” файл в самой директории „thumbnail” трогать не надо, он там затем, чтобы данные из кэша нельзя было получить напрямую по http.
Файлы кэша будут создаваться с правами родительской папки минус бит выполняемого файла.
Собственно архив: генератор миниатюр.



