我知道過去有人問過關於縮略圖的問題,但我似乎無法找到與我想要做的事完全吻合的答案。創建縮略圖
我有一個模型有一個ImageField與相關的ModelForm。提交此表單時,我想爲該圖像創建幾個不同的縮略圖(給他們獨特的名稱,以便我可以稍後在我的模板中調用它們)並保存原始圖像。我該如何去做呢?
我正在使用PIL,並將執行一些自定義圖像操作,因此使用簡單創建縮略圖的庫將不太適合。
我知道過去有人問過關於縮略圖的問題,但我似乎無法找到與我想要做的事完全吻合的答案。創建縮略圖
我有一個模型有一個ImageField與相關的ModelForm。提交此表單時,我想爲該圖像創建幾個不同的縮略圖(給他們獨特的名稱,以便我可以稍後在我的模板中調用它們)並保存原始圖像。我該如何去做呢?
我正在使用PIL,並將執行一些自定義圖像操作,因此使用簡單創建縮略圖的庫將不太適合。
你可以使用easy-thumbnail's low level API創建縮略圖: easy-thumbnails
附帶了一些影像處理器內置的,但你也可以添加custom procressors和包裝你需要的PIL操作。
要處理背景中的多個圖像,您應該考慮使用像celery
這樣的任務隊列。
您可以使用sorl.thumbnail產生縮圖模板這樣的:
{% thumbnail item.image "100x100" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
這比在許多不同的方式產生on save
更好:
感謝您對sorl和easy_thumbnail的建議,但是有太多的魔法在我看來,我只是不明白。我很樂意自己做這一切。任何提示呢? –
然後跳過easy_thumbnails並直接使用Pil和芹菜。如果芹菜太神奇了,您應該使用保存方式處理您的圖像或使用post_save信號。 – arie