Set a default IMAGE_COMPRESSION_QUALITY of 85 as per @tomdyson's suggestion, and simplify image backend now that it doesn't have to check for the presence of a quality setting

This commit is contained in:
Matt Westcott 2014-04-07 12:28:15 +01:00
parent 98e4d74c80
commit 49211cd69c
3 changed files with 8 additions and 21 deletions

View file

@ -1,4 +1,3 @@
from django.db import models
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
@ -7,13 +6,8 @@ class InvalidImageBackendError(ImproperlyConfigured):
class BaseImageBackend(object):
quality = None
def __init__(self, params):
try:
self.quality = settings.IMAGE_COMPRESSION_QUALITY
except:
pass
self.quality = getattr(settings, 'IMAGE_COMPRESSION_QUALITY', 85)
def open_image(self, input_file):
"""

View file

@ -8,20 +8,15 @@ class PillowBackend(BaseImageBackend):
def open_image(self, input_file):
image = PIL.Image.open(input_file)
return image
def save_image(self, image, output, format):
if self.quality:
image.save(output, format, quality=self.quality)
else:
image.save(output, format)
image.save(output, format, quality=self.quality)
def resize(self, image, size):
if image.mode in ['1', 'P']:
image = image.convert('RGB')
return image.resize(size, PIL.Image.ANTIALIAS)
def crop_to_centre(self, image, size):
(original_width, original_height) = image.size
(target_width, target_height) = size

View file

@ -7,21 +7,19 @@ from wand.image import Image
class WandBackend(BaseImageBackend):
def __init__(self, params):
super(WandBackend, self).__init__(params)
def open_image(self, input_file):
image = Image(file=input_file)
return image
def save_image(self, image, output, format):
image.format = format
if self.quality:
image.compression_quality = self.quality
image.compression_quality = self.quality
image.save(file=output)
def resize(self, image, size):
image.resize(size[0], size[1])
return image
def crop_to_centre(self, image, size):
(original_width, original_height) = image.size