return avatar
# Generate a new thumbnail
- avatar = util.generate_thumbnail(photo, size)
+ avatar = util.generate_thumbnail(photo, size, square=True)
# Save to cache for 15m
self.memcache.set("accounts:%s:avatar:%s" % (self.uid, size), avatar, 900)
return "-".join(s.split())
-def generate_thumbnail(data, size, **args):
+def generate_thumbnail(data, size, square=False, **args):
assert data, "No image data received"
image = PIL.Image.open(io.BytesIO(data))
image = flattened_image.convert("RGB")
# Resize the image to the desired resolution
- image.thumbnail((size, size), PIL.Image.LANCZOS)
+ if square:
+ thumbnail = PIL.ImageOps.fit(image, (size, size), PIL.Image.LANCZOS)
+ else:
+ image.thumbnail((size, size), PIL.Image.LANCZOS)
if image.format == "JPEG":
# Apply a gaussian blur to make compression easier