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

Release files for cykooz.thumbs 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cykooz.thumbs 0.3.1
File Size Uploaded
cykooz.thumbs-0.3.1.tar.gz 46.4 kB Details

Release files / cykooz.thumbs-0.3.1.tar.gz

Download URL cykooz.thumbs-0.3.1.tar.gz
Size 46.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9d4abb60ce14d1e3e2d9d50f085851517bf9ba46c4a8f53dc14953495e3d9473
BLAKE2b-256 checksum
How to use checksums
2668c86b91966fac84efed8abead56fa46703f8120f28f1928fc7147f6002e56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3.1 This release

1 release file

0.3

1 release file

0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page