A drop-in replacement for django's ImageField that provides a flexible, intuitive and easily-extensible interface for quickly creating new images from the one assigned to your field.
Full documentation available at Read the Docs.
django-versatileimagefield
is hosted on github.
Creates images anywhere you need them: not just in templates.
Non-destructive: Your original image is never modified.
Sizer and Filter framework: enables you to quickly add new – or modify existing – ways to create new images:
- Sizers create images with new sizes and/or aspect ratios
- Filters change the appearance of an image
Sizers can be chained onto Filters: Use case: give me a black-and-white, 400px by 400px square crop of this image.
Primary Point of Interest (PPOI) support: provides a way to specify where the 'primary point of interest' of each individual image is – a value which is available to all Sizers and Filters. Use case: sometimes you want the 'crop centerpoint' to be somewhere other than the center of an image. Includes a user-friendly formfield/widget for selecting PPOI in the admin (or anywhere else you use ModelForms).
Works with any storage: Stores the images it creates within the same storage class as your field . Works great with external storage (like Amazon S3).
Fully interchangeable with
ImageField
: you can easily removeVersatileImageField
from your project's models whenever you'd like.Integrated caching: References to created images are stored in the cache, keeping your application running quickly and efficiently.
Django REST Framework support: Serialize multiple image renditions from a single
VersatileImageField
.Flexible and fast: On-demand image creation can be toggled in your settings file allowing you to turn it off when you need your application to run as quickly as possible.
- Programmatically delete images created by
VersatileImageField
(including clearing their connected cache keys)