我知道过去曾经问过关于缩略图的问题,但我似乎无法找到一个完全符合我要做的答案。
我有一个Model,它有一个ImageField和一个相关的ModelForm。提交此表单时,我想为此图像创建几个不同的缩略图(给出我想到的唯一名称,以便稍后在我的模板中调用它们)并保存原始图像。我该怎么做呢?
我正在使用PIL并将进行一些自定义图像处理,因此使用简单创建缩略图的库将不太合适。
答案 0 :(得分:2)
您可以使用sorl.thumbnail在模板中生成缩略图,如下所示:
{% thumbnail item.image "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
比以多种不同的方式生成on save
更好:
答案 1 :(得分:2)
您可以使用easy-thumbnail's low level API创建缩略图:
easy-thumbnails
内置了一些图像处理器,但您也可以添加custom procressors并包装所需的PIL操作。
要处理背景中的多个图像,您应该考虑使用像celery
这样的任务队列。