Thumbnails for Django.
- Support for Django 1.4, 1.5 and 1.6
- Python 3 support (for Django 1.5 and Django 1.6)
- Storage support
- Pluggable Engine support for Pillow, ImageMagick, PIL, Wand and pgmagick
- Pluggable Key Value Store support (cached db, redis)
- Pluggable Backend support
- Admin integration with possibility to delete
- Dummy generation (placeholders)
- Flexible, simple syntax, generates no html
- ImageField for model that deletes thumbnails
- CSS style cropping options
- Back smart cropping, and remove borders from the images when cropping
- Margin calculation for vertical positioning
- Alternative resolutions versions of a thumbnail
Read more in the documentation (latest version)
Feel free to create a new Pull request if you want to propose a new feature. If you need development support or want to discuss with other developers join us in the channel #sorl-thumnbnail at freenode.net
irc://irc.freenode.net/#sorl-thumbnail
Getting the code for the latest stable release use 'pip'.
$ pip install sorl-thumbnail
Then register 'sorl.thumbnail', in the 'INSTALLED_APPS' section of your project's settings.
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.admin', 'django.contrib.sites', 'django.contrib.comments', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.contenttypes', 'sorl.thumbnail', )
All of the examples assume that you first load the thumbnail template tag in your template.:
{% load thumbnail %}
A simple usage.
{% thumbnail item.image "100x100" crop="center" as im %} <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> {% endthumbnail %}
See more examples in the section Template examples in the Documentation
< 660B a name="user-content-model-usage">Using the ImageField that automatically deletes references to itself in the key value store and its thumbnail references and the thumbnail files when deleted.:
from django.db import models from sorl.thumbnail import ImageField class Item(models.Model): image = ImageField(upload_to='whatever')
See more examples in the section Model examples in the Documentation
You can use the 'get_thumbnail':
from sorl.thumbnail import get_thumbnail from sorl.thumbnail import delete im = get_thumbnail(my_file, '100x100', crop='center', quality=99) delete(my_file)
See more examples in the section Low level API examples in the Documentation