Package: cykooz.thumbs
НазначениеПакетcykooz.thumbsреализует WSGI-middlware для изменения размера картинок отдаваемых приложением.Конструктор миделварыcykooz.thumbs.middleware.Thumbs(application, cache_dir, sizes, **kwargs)Аргументы:applicationприложение оборачиваемое миделваройcache_dirпуть к папке в которой будет храниться кэш картинокsizesсловарь с параметрами допустимых размеров картинокПример значения для аргументаsizes:{
    'small': {'size': (100, 100), 'scale_method': 'crop', 'quality': 80},
    'preview': {'size': (800, 600)},
    'png_thumb': {'size': (50, 50), 'scale_method': 'crop', 'quality': 'png'}
}где:sizeразмер, в который надо вписать картинку. Если один из размеров равен нулю,
то этот размер берётся из исходной картинки.scale_methodрежим масштабирования (по умолчанию -‘fit_stretch’):‘сrop’обрезание картинки до заданных пропорций и вписывание в указанный размер;‘stretch’растягивание картинки до заданных размеров;‘squash’то же самое, что и‘stretch’, но возвращает оригинальную картинку если оба её размера меньше требуемых;‘fit_stretch’вписывает картинку в заданные размеры с сохранением оригинальных пропорций;‘fit_squash’то же самое, что и‘fit_stretch’, но возвращает оригинальную картинку если оба её размера меньше требуемых.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,qpngWSGI приложениеПакет содержит простейшее приложение обёрнутое миделварой.
Это приложение просто возвращает файлы из указанной аргументом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__CHANGESVersion 0.3.1Исправлено масштабирование методом‘crop’маленьких картинок до больших размеров.Version 0.3Изменён способ передачи параметров в миделваруПереименованы методы масштабирования:'scale_fit' => 'fit_stretch'
'scale_stretch' => 'stretch'Добавлены новые методы масштабирования‘squash’и‘fit_squash’Version 0.2Добавлен параметр cropДобавлены параметры scale_fit и scale_stretchДобавлен параметр для указания качества сжатия JPEG или указывающий на сохранение в PNGДобавлено простейшее WSGI приложение возвращающее файлы из указанной директории и обёрнутое middleware для обработки изображений.Buildout теперь устанавливает wsgi-сервер uWSGI и создаёт wsgi-script для запуска приложенияДобавлен пример конфигурации приложения для Paste и uWSGIVersion 0.1Initial Release