# encoding: utf-8
import PIL
+import PIL.ImageOps
import io
import ldap
import ldap.modlist
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()