]> git.ipfire.org Git - ipfire.org.git/commitdiff
Make avatars square
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 16 Oct 2018 23:51:05 +0000 (00:51 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 16 Oct 2018 23:51:05 +0000 (00:51 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py

index 89163084170dc2cdbfba3690a94e6effbf013fcb..1287e31d368eeea97c0ae15c1d94c1958099bc30 100644 (file)
@@ -2,6 +2,7 @@
 # encoding: utf-8
 
 import PIL
+import PIL.ImageOps
 import io
 import ldap
 import ldap.modlist
@@ -531,16 +532,16 @@ class Account(Object):
                if image.mode == "RGBA":
                        image = image.convert("RGB")
 
-               # Resize the image to the desired resolution
-               image.thumbnail((size, size), PIL.Image.ANTIALIAS)
+               # Resize the image to the desired resolution (and make it square)
+               thumbnail = PIL.ImageOps.fit(image, (size, size), PIL.Image.ANTIALIAS)
 
                with io.BytesIO() as f:
                        # If writing out the image does not work with optimization,
                        # we try to write it out without any optimization.
                        try:
-                               image.save(f, "JPEG", optimize=True, quality=98)
+                               thumbnail.save(f, "JPEG", optimize=True, quality=98)
                        except:
-                               image.save(f, "JPEG", quality=98)
+                               thumbnail.save(f, "JPEG", quality=98)
 
                        return f.getvalue()