2011-05-27 37 views
1

我想升級一些舊網站到最新版本的Django和索爾縮略圖需要更新以及。圖像過濾新的索爾縮略圖

我已經修復了一些新的{%thumbnail ...%} {%endthumbnail%}格式的模板,但我在使用內置和自定義過濾器(或處理器)時遇到了問題。我有一個用於製作縮略圖黑色&白色和自定義寫入一個用於設置飽和度爲50%。我怎樣才能用最新版本的sorl-thumbnail來做到這一點?

回答

5

似乎功能已經消失,新的索爾代碼庫。

但是,您可以通過創建(通過子類化)引擎,設置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 %} 
+0

太糟糕了。我希望他們在以後的修訂中添加它。謝謝你的提示。 – 2011-06-28 15:36:15

+1

順便說一下,只需在'thumbnail'標籤中指定'colorspace =「GRAY」',即可開箱製作「縮略圖黑白」。 – mjl 2011-06-29 10:57:29