Added thumb quality setting which is used in the create_thumbnail() method.

This commit is contained in:
Jannis Leidel 2010-03-16 14:56:15 +01:00
parent 5996dfa5b5
commit 929c8a0e4f
2 changed files with 5 additions and 2 deletions

View file

@ -15,6 +15,7 @@ AVATAR_DEFAULT_URL = getattr(settings, 'AVATAR_DEFAULT_URL', 'avatar/img/default
AVATAR_MAX_AVATARS_PER_USER = getattr(settings, 'AVATAR_MAX_AVATARS_PER_USER', 42)
AVATAR_MAX_SIZE = getattr(settings, 'AVATAR_MAX_SIZE', 1024 * 1024)
AVATAR_THUMB_FORMAT = getattr(settings, 'AVATAR_THUMB_FORMAT', "JPEG")
AVATAR_THUMB_QUALITY = getattr(settings, 'AVATAR_THUMB_QUALITY', 85)
AVATAR_HASH_FILENAMES = getattr(settings, 'AVATAR_HASH_FILENAMES', False)
AVATAR_HASH_USERDIRNAMES = getattr(settings, 'AVATAR_HASH_USERDIRNAMES', False)
AVATAR_ALLOWED_FILE_EXTS = getattr(settings, 'AVATAR_ALLOWED_FILE_EXTS', None)

View file

@ -22,7 +22,8 @@ except ImportError:
from avatar import AVATAR_STORAGE_DIR, AVATAR_RESIZE_METHOD, \
AVATAR_MAX_AVATARS_PER_USER, AVATAR_THUMB_FORMAT, \
AVATAR_HASH_USERDIRNAMES, AVATAR_HASH_FILENAMES
AVATAR_HASH_USERDIRNAMES, AVATAR_HASH_FILENAMES, \
AVATAR_THUMB_QUALITY
def avatar_file_path(instance=None, filename=None, size=None, ext=None):
tmppath = [AVATAR_STORAGE_DIR]
@ -82,12 +83,13 @@ class Avatar(models.Model):
def thumbnail_exists(self, size):
return self.avatar.storage.exists(self.avatar_name(size))
def create_thumbnail(self, size, quality=95):
def create_thumbnail(self, size, quality=None):
try:
orig = self.avatar.storage.open(self.avatar.name, 'rb').read()
image = Image.open(StringIO(orig))
except IOError:
return # What should we do here? Render a "sorry, didn't work" img?
quality = quality or AVATAR_THUMB_QUALITY
(w, h) = image.size
if w != size or h != size:
if w > h: