melinath / django-daguerre

On-the-fly image manipulation for Django.
http://django-daguerre.readthedocs.org/
BSD 3-Clause "New" or "Revised" License
85 stars 14 forks source link

imagemagick, Wand > Pillow #59

Open nordbit opened 9 years ago

nordbit commented 9 years ago

Little suggestion - PIL/Pillow can't be used for serious real high quality thubnails. I tested many backends and options, where quality of images are critica important to project (like website for photographers) - only imagemagick is usuable and provide thubnails with good enought quality.

melinath commented 9 years ago

We would certainly welcome patches for additional ImageMagick support.

harrislapiroff commented 9 years ago

It would definitely be nice for us to be able to support multiple image processing backends and provide a normalized interface for them. Does functionality vary much between Pillow and ImageMagick and whatever else is out there?

melinath commented 9 years ago

I've been reticent to add ImageMagick support because it's such a PITA to use. But Wand looks like it makes things a lot easier. Maybe the time has come.

@harrislapiroff Sorl-thumbnail's breakdown of their different engines: http://sorl-thumbnail.readthedocs.org/en/latest/reference/settings.html#thumbnail-engine

harrislapiroff commented 9 years ago

This looks like a useful library that might obviate the necessity for writing our own swappable backends. https://github.com/torchbox/Willow

harrislapiroff commented 9 years ago

Willow integration would also make #54 easier.

Thought it looks like Willow defaults to Pillow and uses Wand as a fallback. Not sure yet if that's configurable or why it does it that way since Wand should be faster.

melinath commented 9 years ago

Willow seems to prefer Pillow for png / jpeg / bmp and Wand for gifs.

melinath commented 9 years ago

Unfortunately, we can't just drop Willow in. We currently read EXIF tags, compare images, and use custom Pillow-based parsing to figure out the dimensions of a file quickly, none of which is natively supported by Willow. But I'm sure there are ways to do the same things with Wand... so we could potentially try to get support added to Willow.