always convert JPEG/RGBA to JPEG/RGB

This commit is contained in:
Johannes Wilm 2022-08-11 08:36:24 +02:00
parent a6cef676f3
commit 58aa1261ad
3 changed files with 6 additions and 6 deletions

View file

@ -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

View file

@ -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()

View file

@ -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