/django-versatileimagefield

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.

Primary LanguagePythonMIT LicenseMIT

django-versatileimagefield

Travis CI Status Coverage Status Supported Python versions Downloads Latest Version

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.

Documentation

Full documentation available at Read the Docs.

Code

django-versatileimagefield is hosted on github.

In A Nutshell

  • 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 remove VersatileImageField 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.

Roadmap to v1.0

  • Programmatically delete images created by VersatileImageField (including clearing their connected cache keys)