Главная > Неразобранное > Скрипт миниатюр.

Скрипт миниатюр.

Выкладываю отдельно простой php-скрипт для генерации миниатюр на лету с кэшем (и проверкой актуальности, естественно), используемый в моей CMS.
Работает со всеми jpg/png/gif изображениями, лежащими внутри папки, в которую поставлен (рекурсивно). Если поставить в корень хоста – то со всеми изображениями на этом хосте.

Лицензия: GNU LGPLv3+.

Показываю примеры работы.

Оригинальный файл:
image.jpg (1251 на 2000 пикселей).

Уменьшенное изображение, вписанное в 300×200:

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 предпросмотра на яваскрипте, когда размер картинки зависит от размера окна браузера пользователя – их сохранять просто незачем).

Маленькие изображения не увеличивает, зато скрипт гарантирует что получившееся изображение будет правильного отношения сторон и не больше заданного размера.

Если файла изображения нет, показывает такую (меняется) картинку, вписанную в тот же размер:

invalid_image.(80×80).jpg

Файлы и инструкции по установке – ниже.

Как ставить:

  1. Скачиваем архив, распаковываем, кладём получившуюся папку „thumbnail” в корень директории, в которой нужны миниатюры.
  2. Ставим права на запись (желательно, минимальные, скорее всего — 700 или 770) на папку „thumbnail/cache”, если нужен кэш. Если не нужен — отключаем его в заголовке файла „thumbnail/index.php”.
  3. Открываем „thumbnail/htaccess_parent.txt”, добавляем его содержимое в „.htaccess” файл той директории, куда положили „thumbnail (если его там нету – создаём с этим содержимым).
  4. По желанию меняем путь к файлу, который показывается, если изображение не найдено (в заголовке файла „thumbnail/index.php”).
  5. Проверяем на любом изображении.

„.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.

Файлы кэша будут создаваться с правами родительской папки минус бит выполняемого файла.

Собственно архив: генератор миниатюр.

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.