Skip to main content

Назначение

Пакет 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,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.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 и uWSGI

Version 0.1

  • Initial Release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cykooz.thumbs-0.3.1.tar.gz (46.4 kB view details)

Uploaded Source

File details

Details for the file cykooz.thumbs-0.3.1.tar.gz.

File metadata

  • Download URL: cykooz.thumbs-0.3.1.tar.gz
  • Upload date:
  • Size: 46.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cykooz.thumbs-0.3.1.tar.gz
Algorithm Hash digest
SHA256 9d4abb60ce14d1e3e2d9d50f085851517bf9ba46c4a8f53dc14953495e3d9473
MD5 92b2d6c6dcacd60707d48b510a7f0045
BLAKE2b-256 2668c86b91966fac84efed8abead56fa46703f8120f28f1928fc7147f6002e56

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.1 This release

1 file

0.3

1 file

0.2

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page