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.
Source Distribution
File details
Details for the file cykooz.thumbs-0.2.tar.gz
.
File metadata
- Download URL: cykooz.thumbs-0.2.tar.gz
- Upload date:
- Size: 45.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5675603908247346d724a38c510bc8b8c455e87fbcf4a922fcaa1a2713db55e |
|
MD5 | a4aab6a65db8a5a33decad94edb69cac |
|
BLAKE2b-256 | bcf520199fbd60260629e2474e99fe1c68a7d40adaa6f5be4d5e8a6482d739d0 |