使用新的sorl-thumbnail进行图像过滤

时间:2011-05-27 11:16:37

标签: sorl-thumbnail

我正在尝试将一些旧网站升级到最新版本的Django,并且还需要更新sorl-thumbnail。

我已将一些模板修复为新的{%thumbnail ...%} {%endthumbnail%}格式,但我在使用内置和自定义过滤器(或处理器)时遇到问题。我有一个制作缩略图黑色&白色和自定义写入将饱和度设置为50%。我怎么能用最新版本的sorl-thumbnail做到这一点?

1 个答案:

答案 0 :(得分:5)

新的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 %}