SoreThumb - efektowne miniatury w Django
28 June 2010
Comments
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
- Do INSTALLED_APPS dodaj 'sorethumb',
- Następnie w settings.py dodaj konfigurację:
# bezwzględna ścieżka do katalogu na generowane miniatury SORETHUMB_OUTPUT_PATH = MEDIA_ROOT + '/sorethumboutput/' # adres URL z którego te miniatury będą dostępne SORETHUMB_URL_ROOT = '/site_media/sorethumboutput' # ściężka do głównego katalogu ze statyką (grafikami). Struktura podkatalogów będzie powielona przez miniatury sorethumb SORETHUMB_IMAGE_ROOT = MEDIA_ROOT # ścieżka do grafiki wyświetlanej w przypadku braku podanego pliku SORETHUMB_DEFAULT_IMAGE = MEDIA_ROOT + '/none.png'
- W szablonie, w którym chcesz użyć miniatur załaduj tag {% load sorethumb %}
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')]
<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" }}" />
RkBlog
Comment article