Фильтрация изображений с новым sorl-thumbnail - PullRequest
1 голос
/ 27 мая 2011

Я пытаюсь обновить некоторые старые сайты до последней версии Django, и также необходимо обновить sorl-thumbnail.

Я исправил некоторые шаблоны в новом формате {% thumbnail ...%} {% endthumbnail%}, но у меня возникли проблемы с использованием как встроенных, так и пользовательских фильтров (или процессоров). У меня был один для создания миниатюрных черно-белых изображений, а другой - для настройки насыщенности до 50%. Как я могу сделать это с последней версией sorl-thumbnail?

1 Ответ

5 голосов
/ 28 июня 2011

Кажется, что функциональность исчезла с новой кодовой базой sorl.

Однако пользовательскую обработку можно реализовать, создав (подклассифицировав) механизм, задав THUMBNAIL_ENGINE и переопределив метод create().

Например, чтобы добавить параметр обработки для создания закругленных углов:

from sorl.thumbnail.engines.pil_engine import Engine

class RoundedCornerEngine(Engine):    
    def create(self, image, geometry, options):
        image = super(RoundedCornerEngine, self).create(image, geometry, options)
        image = self.cornerize(image, geometry, options)
        return image

    def cornerize(self, image, geometry, options):
        if 'cornerradius' in options:
            ...whatever...
        return image

, и вы бы назвали это в шаблоне как (обратите внимание на опцию cornerradius):

{% thumbnail my_image "300x150" format="PNG" cornerradius=10 as thumb %}
    <img class="thumb" src="{{ thumb.url }}">
{% endthumbnail %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...