我正在尝试将一些旧网站升级到最新版本的Django,并且需要更新sorl-thumbnail.
我已经修改了一些模板到新的{%thumbnail ...%} {%endthumbnail%}格式,但我在使用内置和自定义过滤器(或处理器)时遇到了麻烦.我有一个用于制作黑白缩略图和一个自定义用于将饱和度设置为50%的缩略图.我怎么能用最新版本的sorl-thumbnail做到这一点?
新的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
Run Code Online (Sandbox Code Playgroud)
你会在模板中将其称为(注意cornerradius选项):
{% thumbnail my_image "300x150" format="PNG" cornerradius=10 as thumb %}
<img class="thumb" src="{{ thumb.url }}">
{% endthumbnail %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
949 次 |
| 最近记录: |