Django Imageprocessor
Aplikacja umożliwiająca wsadowe przetwarzanie obrazu ze wsparciem dla cache i presetów (predefiniowanych procesów obróbki obrazu). Najczęściej używam do generowania miniatur oraz większych zdjęć z nałożonymi znakami wodnymi.
Popularne zastosowania
- automatyczne generowanie miniatur
- automatyczne generowanie statycznych, ale również przetworzonych obrazów (pomniejszonych, ze znakami wodnymi, etc)
Zalety
- Cache: użycie pamięci podręcznej redukuje czas dostępu do przetworzonych obrazów (cache generowany jest dynamicznie na podstawie cech pliku źródłowego oraz zastosowanych filtrów)
- Stałe adresy URL obrazów: pliki wynikowe są umieszczane zawsze na tej samej ścieżce, nawet po zmianie konfiguracji presetów
- Szablony: dwa proste i łatwe w użyciu tagi do generowania miniatur oraz wyświetlania obrazów przetworzonych filtrami zdefiniowanymi we wskazanym presecie
- API: proste, kompatybilne z filtrami i transformatami pakietu PIL
- Baza danych nie jest wymagana (presety można zdefiniować w dowolnym miejscu, najlepiej podczas startu aplikacji)
Przykład użycia
__init__.py projektu/aplikacji
from imageprocessor.presets import create_preset
from imageprocessor import ImageProcessor
from PIL import Image
# instancja procesora z filtrem skalujacym do 800,600
# z zachowaniem aspect ratio oraz antialiasingiem
proc = ImageProcessor(quality=75)
proc.add_filter(Image.Image.thumbnail, (800,600),
resample=Image.ANTIALIAS)
# utworzenie presetu (nazwa presetu ma charakter globalny)
create_preset('moj_preset', proc)
Szablon
{% load imageprocess %}
<img src="{{ MEDIA_URL }}/{% image_from_preset entry.image "moj_preset" %}" />