diff --git a/avatar/conf.py b/avatar/conf.py index 1d94d6e..791a90c 100644 --- a/avatar/conf.py +++ b/avatar/conf.py @@ -17,7 +17,7 @@ class AvatarConf(AppConf): MAX_SIZE = 1024 * 1024 THUMB_FORMAT = "PNG" THUMB_QUALITY = 85 - THUMB_MODES = ["RGB", "RGBA"] + THUMB_MODES = ("RGB", "RGBA") HASH_FILENAMES = False HASH_USERDIRNAMES = False EXPOSE_USERNAMES = False diff --git a/avatar/models.py b/avatar/models.py index 6aa20d6..a798bae 100644 --- a/avatar/models.py +++ b/avatar/models.py @@ -163,7 +163,9 @@ class Avatar(models.Model): else: diff = int((h - w) / 2) image = image.crop((0, diff, w, h - diff)) - if image.mode not in (settings.AVATAR_THUMB_MODES): + if settings.AVATAR_THUMB_FORMAT == "JPEG" and image.mode == "RGBA": + image = image.convert("RGB") + elif image.mode not in (settings.AVATAR_THUMB_MODES): image = image.convert(settings.AVATAR_THUMB_MODES[0]) image = image.resize((size, size), settings.AVATAR_RESIZE_METHOD) thumb = BytesIO() diff --git a/docs/index.txt b/docs/index.txt index cd652b9..b2a04ba 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -223,11 +223,9 @@ appear on the site. Listed below are those settings: "keep" (only JPEG) as provided by Pillow. Defaults to `85`. .. py:data:: AVATAR_THUMB_MODES - A list of acceptable modes for thumbnails as provided by Pillow. If the mode + A sequence of acceptable modes for thumbnails as provided by Pillow. If the mode of the image is not in the list, the thumbnail will be converted to the - first mode in the list. Note that you need to set this to modes available - for AVATAR_THUMB_FORMAT and JPEG does not support RGBA. Defaults to - `['RGB', 'RGBA']`. + first mode in the list. Defaults to `('RGB', 'RGBA')`. .. py:data:: AVATAR_CLEANUP_DELETED