Создание миниатюр - PullRequest
       4

Создание миниатюр

1 голос
/ 21 ноября 2011

Я знаю, что вопросы о миниатюрах задавались в прошлом, но я не могу найти ответ, который точно соответствует тому, что я пытаюсь сделать.

У меня есть модель, у которой есть одно ImageFieldсвязанный ModelForm.При отправке этой формы я хотел бы создать несколько разных миниатюр для этого изображения (давая им уникальные имена, которые я имею в виду, чтобы я мог назвать их позже в моих шаблонах), а также сохранить оригинал.Как мне это сделать?

Я использую PIL и буду выполнять некоторые пользовательские манипуляции с изображениями, поэтому использование библиотеки, которая просто создает миниатюры, не подойдет.

Ответы [ 2 ]

2 голосов
/ 21 ноября 2011

Вы можете использовать API низкого уровня easy-thumbnail для создания миниатюр: easy-thumbnails поставляется с некоторыми встроенными процессорами обработки изображений, но вы также можете добавить пользовательских обработчиков и обернуть нужные вам операции PIL.

Для обработки нескольких изображений в фоновом режиме вам следует рассмотреть возможность использования очереди задач, например celery.

2 голосов
/ 21 ноября 2011

Вы можете использовать sorl.thumbnail для создания миниатюр в шаблоне , например:

{% thumbnail item.image "100x100" crop="center" as im %}
    <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}

Это лучше, чем генерация on save разными способами:

  • вы можете перейти на новый сервер, не перемещая миниатюры (sorl.thumbnail будет восстанавливать их)
  • Вы можете легко изменить размер миниатюры (просто измените параметры в шаблоне, и это будет волшебным образом)
  • Размер эскиза сохраняется там, где он должен быть (в шаблоне)
  • Вы можете иметь разные размеры в разных шаблонах (например, мобильный шаблон)
  • и т.д.

http://thumbnail.sorl.net/

...