RkBlog

Hardware, programming and astronomy tutorials and reviews.

SoreThumb - efektowne miniatury w Django

Opis modułu do generowania miniatur z różnymi efektami jak zaokrąglone rogi czy przeźroczystość

sorethumb to moduł Django pozwalający na generowanie miniatur grafik z nałożonymi różnymi efektami jak zaokrąglone rogi, przeźroczystość, zmiany kolorów itd. Moduł ten dodaje tag szablonów pozwalający w szablonie określić jaka miniatura ma być użyta i wygenerowana jeżeli jej jeszcze nie ma - zobacz przykłady.

Instalacja

Najprościej zainstalować można poprzez easy_install:
easy_install -U sorethumb
Jeżeli to nie zadziała to musimy ręcznie pobrać kod z SVN i zainstalować go poprzez
python setup.py install
Jako zależność musimy zainstalować aggdraw. Dla 32-bitowego Linuksa:
easy_install -U aggdraw
W przypadku dystrybucji 64-bitowych należy użyć aggdraw-64bits.

Konfiguracja sorethumb w projekcie Django

Jak używać SoreThumb

Jak zaprezentowano w przykładach musimy np. w views.py danej aplikacji zdefiniować własne klasy nakładające różne efekty na miniaturę, np:
from sorethumb.djangothumbnail import DjangoThumbnail
from sorethumb.filters.defaultfilters import ThumbnailFilter
from sorethumb.filters.drawfilters import RoundedCornerFilter

class RoundedCornersEdged(DjangoThumbnail):
    format = 'jpg'
    name = 'small_thumb'
    filters = [ThumbnailFilter(180, 75), RoundedCornerFilter(10, border='#333'),
               ResizeCanvasFilter(180, 75, '#9BA61E'),
               OpaqueFilter('#9BA61E')]
Następnie w szablonie możemy załadować sorethumb i wykorzystać na grafice pochodzącej z danych przekazanych do szablonu, czy nawet podając ścieżkę do jakiejś grafiki:
<img src="{{ "/home/piotr/svn/0skala/biblioteka/site_media/resources/nauka.rk.edu.pl/images/ngc6894.jpg"|sorethumb:"small_thumb" }}" />
<img src="{{ object.user_image|sorethumb:"small_thumb" }}" />
  
I gotowe. Zostanie wygenerowana i wyświetlona miniatura o zdefiniowanych w klasie parametrach. W tym przypadku z zaokrąglonymi rogami. Pełen opis efektów w dokumentacji.
RkBlog

28 June 2010;

Comment article