WSGI middleware for image resizing
Project description
Назначение
Пакет cykooz.thumbs реализует WSGI-middlware для изменения размера картинок отдаваемых приложением.
Конструктор миделвары
Thumbs(application, cache_dir, sizes, **kwargs)
Аргументы:
- application
приложение оборачиваемое миделварой
- cache_dir
путь к папке в которой будет храниться кэш картинок
- sizes
словарь с параметрами допустимых размеров картинок
Пример значения для аргумента sizes:
{ 'small': {'size': (100, 100), 'params': ['crop'], 'quality': 80}, 'preview': {'size': (800, 600), 'params': [], 'quality': 75}, 'png_thumb': {'size': (50, 50), 'params': ['crop'], 'quality': 'png'} }
где:
- size
размер, в который надо вписать картинку. Если один из размеров равен нулю, то этот размер берётся из исходной картинки.
- params
параметры масштабирования:
- ‘crop’
обрезать картинку до заданных пропорций и вписать в указанный размер;
- ‘scale_fit’ и ‘scale_stretch’
режим масшатирования: вписать и растянуть соответственно. По умолчанию - scale_fit
- quality
качество сжатия JPEG, если указанно ‘png’, то картинка будет сжата в PNG. По умолчанию - 75
Пример конфигурации миделвары для Paste
[filter:thumbs] use = egg:cykooz.thumbs cache_dir = %(here)s/images_cache sizes = small = 100x100,crop,q80 preview = 800x600 png_thumb = 50x50,crop,qpng
WSGI приложение
Пакет содержит простейшее приложение обёрнутое миделварой. Это приложене просто возвращает файлы из указанной аргументом image_dir папки.
Пример конфигурации приложения для Paste
[app:main] use = egg:cykooz.thumbs image_dir = %(here)s/images cache_dir = %(here)s/images_cache sizes = small = 100x100,crop,q80 preview = 800x600 png_thumb = 50x50,crop,qpng
Запуск приложения
К проекту прилагается конфигурация Buildout для запуска приложения и пример конфигурации для PasteDeploy. Конфигурация Buildout:
создаёт скрипт ./bin/paster
компилирует WSGI-сервер uWSGI
создаёт скрипт ./bin/wsgi-script для запуска приложения чрез mod_wsgi или через uWSGI
Пример команды для запуска приложения под uWSGI:
user@user-pc:~/cykooz.thumbs$ ./bin/uwsgi --ini ./etc/thumbs_example.ini
Получение отмасштабированых картинок в браузере
Получить в браузере отмасштабированую картинку можно например так:
http://www.site.ru/images/big_images.jpg?view=small http://www.site.ru/images/big_images.jpg?view=preview
Очитка кэша из браузера
Что бы очистить кэш картинок достаточно загрузить любой адрес, который перехватывается миделварой со специальным аргуметом:
http://www.site.ru/images/big_images.jpg?view=__clear_cache__ или http://www.site.ru/?view=__clear_cache__
CHANGES
Version 0.2
Добавлен параметр crop
Добавлены параметры scale_fit и scale_stretch
Добавлен параметр для указания качества сжатия JPEG или указывающий на сохранение в PNG
Добавленно простейшее WSGI приложение возвращающее файлы из указанной директории и обёрнутое middleware для обратоки изображений.
Buildout теперь устанавливает wsgi-сервер uWSGI и создаёт wsgi-script для запуска приложения
Добавлен пример конфигурации приложения для Paste и uWSGI
Version 0.1
Initial Release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.