From 929c8a0e4f20c9f442ec39380a89030bfa56a386 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Tue, 16 Mar 2010 14:56:15 +0100 Subject: [PATCH] Added thumb quality setting which is used in the create_thumbnail() method. --- avatar/__init__.py | 1 + avatar/models.py | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/avatar/__init__.py b/avatar/__init__.py index fc0b634..ece2d15 100644 --- a/avatar/__init__.py +++ b/avatar/__init__.py @@ -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) diff --git a/avatar/models.py b/avatar/models.py index 9b0d412..e2939ab 100644 --- a/avatar/models.py +++ b/avatar/models.py @@ -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: