- Add support for Django 3.0
- Drop support for Python 2
- Drop support for Django < 1.11
- Drop support for Django 2.0, 2.1
- Added testing for Django 2.2 (no code changes required).
- Support Django versions up to 1.11. Version 2.0 is in beta.
- Fix: Pickle/unpickle machine. The ThumbnailerField fields no longer generated thumbnails.
- Removed all references to South migrations.
- Supported Django versions are now 1.8 or 1.10+, Python 2.7 minimum.
- Fix IOError saving JPEG files with transparency on Pillow 4.2+.
- Fix #450, #473: fixed int/string is not a callable in management command.
- Fix #456: Delete method of ThumbnailerFieldFile is called twice.
- New minimum requirement of Django 1.4 or 1.7+.
- Fix EXIF orientation to use transpose.
- Upgrades to avoid deprecation warnings.
- Fix app settings not working in Django 1.11.
- Fix a bad conditional check causing incorrect behaviour in autocropping transparent images.
- Django 1.8+ compatibility for
thumbnail_cleanup
command. - Add
easy_thumbnails_tags
template tag mirror to allow multiple thumbnailer libraries to coexist happily. - Limit pillow to its final compatible version when on Python 2.6
- Fix tests.
- New
Alias
namer. - Avoid a potential concurrency issue with creating the cache.
- Fix incorrect use of select_related for source thumbnail model.
- Removed some vestigal processor arguments.
- Allow
HIGH_RESOLUTION
argument on thumbnail template tag. - Add logic to correctly handle thumbnail images on deferred models (e.g. when
using
.only()
). - Add a
data_uri
filter to allow rendering of an image inline as a data uri.
- Fixed: Option
zoom
can also be used by itself, without combining it withcrop
.
- Fix migrations for Django 1.7 final.
- Fix contain bad image EXIFs being able to still raise an exception.
- Fix Python 3.4 installation issue.
- Avoid an OverflowError due to invalid EXIF data.
- Fix bug causing JPEG images to be saved without optimization :(
- JPEG files can now be saved with progressive encoding. By default, any image
with a dimension larger than 100px will be saved progressively. Configured
with the
THUMBNAILER_PROGRESSIVE
setting.
- Fix packaging issue with old south migrations.
- Use Django 1.7 migrations. Thanks Trey Hunner. Note: if using South, read the installation docs for required settings changes.
- Make ThumbnailerImageField.resize_source reflect change in extension.
- Add
target
option to the scale_and_crop processor, allowing for image focal points when cropping (or zooming) an image. - Add a THUMBNAIL_NAMER option which takes a function used to customize the thumbnail filename.
- New
subsampling
option to reduce color subsampling of JPEG images, providing sharper color borders for a small increase in file size. - Reimplementation of the
thumbnail_cleanup
command. Thanks Jørgen Abrahamsen - More efficient thumbnail default storage. Thanks Sandip Agarwal.
- Better support for multiple source generators.
- Update method used to check for modification dates of source and thumbnail images. Thanks Ben Roberts.
- Better thumbnail_high_resolution handling, including the ability to switch on
and off explicitly with a
HIGH_RESOLUTION
thumbnail option. - Added configuration option to specify the infix used for high resolution image handling.
- Optional postprocessor for image optimization. Thanks Jacob Rief!
- More remote storages optimization
- Thumbnail dimensions can now optionally be cached. Thanks David Novakovic.
- New
zoom
option to generate a thumbnail of a source image with a percentage clipped off each side. - New
background
source processor that can add a border color to ensure scaled images fit within the exact dimensions given.
- Considerable speed up for remote storages by reducing queries. Brent O'Connor spent a lot of time debugging this, so thank you epicserve!
- Allow the
{% thumbnail %}
tag to also accept aliases. Thanks Simon Meers! - Make
replace_alpha
actually work correctly. - Fixes exception being raised when image exists in cache but is doesn't actually exist in the storage.
- Fixes Python 2.5 compatibility.
- Some more Django 1.5 fixes.
- Fix an issue with
Thumbnail.url
not working correctly. - Add the ability to generate retina quality thumbnails in addition to the standard ones (off by default).
- Django 1.5 compatibility.
- Fixed a problem with the
ImageClearableFileInput
widget.
- Added a way to avoid generating thumbnails if they don't exist already (with a signal to deal with them elsewhere).
- Added a
thumbnailer_passive
filter to allow templates to use the non-generating thumbnails functionality when dealing with aliases.
- Changed the exception to catch from 1.0.2 to IOError.
- Catch an OSError exception when trying to get the EXIF data of a touchy image.
- Fix a Django 1.2 backwards incompatibility in
easy_thumbnails.conf
- Introduced a
thumbnail_created
signal.
- Introduction of aliased thumbnails.
- Start of sane versioning numbers.