.. rst-class:: intro-paragraph A drop-in replacement for django's ``ImageField`` that provides a flexible, intuitive and :doc:`easily-extensible </writing_custom_sizers_and_filters>` interface for creating new images from the one assigned to the field. :doc:`Click here for a quick overview </overview>` of what it is, how it works and whether or not it's the right fit for your project.
- Python:
- 2.7
- 3.3
- 3.4
- Django:
- 1.6.x
- 1.7.x
- 1.8.x
- Pillow >= 2.4.0
- Django REST Framework:
- 2.3.14
- 2.4.4
- 3.0.x
- 3.1.x
- 3.2.x
django-versatileimagefield
is hosted on github.
.. toctree:: :maxdepth: 4 overview installation model_integration specifying_ppoi using_sizers_and_filters writing_custom_sizers_and_filters drf_integration improving_performance
- Finessed/improved widget functionality for both optional and 'PPOI-less' fields (thanks, @SebCorbin!).
- Addressed Django 1.9 deprecation warnings (
get_cache
andimportlib
) - Enabled
VersatileImageField
formfield to be overriden via**kwargs
- Removed clear checkbox from widgets on required fields.
- Squashed a critical bug in OnDiscPlaceholderImage
- Added support for Django 1.8.
- Numerous documentation edits/improvements.
- Squashed a bug that caused the :ref:`javascript 'click' widget <ppoi-formfield>` to fail to initialize correctly when multiple VersatileImageFields were displayed on the same page in the admin.
- Added django.contrib.staticfiles integration to widgets.
- Squashed a bug that was throwing an
AttributeError
when uploading new images.
- Squashed a bug that raised a
ValueError
in the admin when editing a model instance with aVersatileImageField
that specifiedppoi_field
,width_field
andheight_field
. - Admin 'click' widget now works in Firefox.
django-versatileimagefield
is now available for installation via wheel.
- Squashed a bug that was causing the admin 'click' widget to intermittently fail
- Simplified requirements installation (which makes django-versatileimagefield installable by
pip<=1.6
)
- Changed
PPOIField
to beeditable=False
by default to address a bug that consistently raisedValidationError
in ModelForms and the admin
- Squashed a bug that prevented
PPOIField
from serializing correctly
- Squashed an installation bug with
pip
6+
- Added Python 3.3 & 3.4 compatibility
- Improved cropping with extreme PPOI values
- Dropped support for Django 1.5.x
- Introducing per-field :ref:`placeholder image <defining-placeholder-images>` image support! (Note: global placeholder support has been deprecated.)
- Added the
VERSATILEIMAGEFIELD_USE_PLACEHOLDIT
setting (:ref:`docs <placehold-it>`)
- Squashed a pip installation bug.
- Added a test suite with Travis CI and coveralls integration.
- Introduced support for :doc:`Django REST Framework 3.0 </drf_integration>` serialization.
- Ensuring :ref:`admin widget <ppoi-formfield>`-dependent thumbnail images are created even if
VERSATILEIMAGEFIELD_SETTINGS['create_on_demand']
is set toFalse
- Introduced :doc:`Django REST Framework support </drf_integration>`!
- Added ability to turn off on-demand image creation and pre-warm images to :doc:`improve performance </improving_performance>`.
- Squashed
CroppedImage
bug that was causing black stripes to appear on crops of images with PPOI values that were to the right and/or bottom of center (greater-than 0.5).
- Overhauled how
CroppedImage
processes PPOI value when creating cropped images. This new approach yields significantly more accurate results than using the previously utilizedImageOps.fit
function, especially when dealing with PPOI values located near the edges of an image or aspect ratios that differ significantly from the original image. - Improved PPOI validation
- Squashed unset
VERSATILEIMAGEFIELD_SETTINGS['global_placeholder_image']
bug. - Set
crop
Sizer default resample to PIL.Image.ANTIALIAS
- Added support for auto-rotation during pre-processing as dictated by 'Orientation' EXIF data, if available.
- Added release notes to docs
- Removed redundant javascript from ppoi 'click' widget (thanks, @skumar!)
- Converted giant README into Sphinx-friendly RST
- Docs added to readthedocs
- Initial open source release