aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar wookie184 <[email protected]>2021-08-21 15:42:40 +0100
committerGravatar wookie184 <[email protected]>2021-08-21 15:42:40 +0100
commitdf3c882db4cd2f970682087093e81a770b4f484a (patch)
tree039e98344e39cbaf649d1f4da7acc86ff47d67cd
parentResize avatar to 1024x1024 before applying effects (diff)
Refactor mosaic command to use apply_effect
-rw-r--r--bot/exts/evergreen/avatar_modification/_effects.py18
-rw-r--r--bot/exts/evergreen/avatar_modification/avatar_modify.py5
2 files changed, 11 insertions, 12 deletions
diff --git a/bot/exts/evergreen/avatar_modification/_effects.py b/bot/exts/evergreen/avatar_modification/_effects.py
index 55eed6ad..92244207 100644
--- a/bot/exts/evergreen/avatar_modification/_effects.py
+++ b/bot/exts/evergreen/avatar_modification/_effects.py
@@ -283,16 +283,14 @@ class PfpEffects:
return new_image
@staticmethod
- def mosaic_effect(img_bytes: bytes, squares: int, file_name: str) -> discord.File:
- """Separate function run from an executor which turns an image into a mosaic."""
- avatar = Image.open(BytesIO(img_bytes))
- avatar = avatar.convert("RGBA").resize((1024, 1024))
+ def mosaic_effect(image: Image.Image, squares: int) -> Image.Image:
+ """
+ Applies a mosaic effect to the given image.
- img_squares = PfpEffects.split_image(avatar, squares)
+ The "squares" argument specifies the number of squares to split
+ the image into. This should be a square number.
+ """
+ img_squares = PfpEffects.split_image(image, squares)
new_img = PfpEffects.join_images(img_squares)
- bufferedio = BytesIO()
- new_img.save(bufferedio, format="PNG")
- bufferedio.seek(0)
-
- return discord.File(bufferedio, filename=file_name)
+ return new_img
diff --git a/bot/exts/evergreen/avatar_modification/avatar_modify.py b/bot/exts/evergreen/avatar_modification/avatar_modify.py
index 765c316e..7b4ae9c7 100644
--- a/bot/exts/evergreen/avatar_modification/avatar_modify.py
+++ b/bot/exts/evergreen/avatar_modification/avatar_modify.py
@@ -338,10 +338,11 @@ class AvatarModify(commands.Cog):
img_bytes = await user.avatar_url_as(size=1024).read()
file = await in_executor(
- PfpEffects.mosaic_effect,
+ PfpEffects.apply_effect,
img_bytes,
+ PfpEffects.mosaic_effect,
+ file_name,
squares,
- file_name
)
if squares == 1: