我正在尝试将一些旧网站升级到最新版本的Django,并且还需要更新sorl-thumbnail。
我已将一些模板修复为新的{%thumbnail ...%} {%endthumbnail%}格式,但我在使用内置和自定义过滤器(或处理器)时遇到问题。我有一个制作缩略图黑色&白色和自定义写入将饱和度设置为50%。我怎么能用最新版本的sorl-thumbnail做到这一点?
答案 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 %}