summaryrefslogtreecommitdiff
path: root/ATRI/plugins/polaroid/image_dealer.py
diff options
context:
space:
mode:
authorSakuraMemory <[email protected]>2022-04-05 16:18:34 +0800
committerGitHub <[email protected]>2022-04-05 16:18:34 +0800
commitceb7b3a5b11d3978c46185af1cf982a2eb3ca961 (patch)
tree0e509c76a575db8a4ab485d503ea7bf3e73b5383 /ATRI/plugins/polaroid/image_dealer.py
parenta2f3925fc63d12ad8daefa6ba30b18bc81693c99 (diff)
parent93e71022a5987ca898ca42a84e10cf3a1ddacd0a (diff)
downloadATRI-ceb7b3a5b11d3978c46185af1cf982a2eb3ca961.tar.gz
ATRI-ceb7b3a5b11d3978c46185af1cf982a2eb3ca961.tar.bz2
ATRI-ceb7b3a5b11d3978c46185af1cf982a2eb3ca961.zip
Merge pull request #5 from Kyomotoi/main
sync main
Diffstat (limited to 'ATRI/plugins/polaroid/image_dealer.py')
-rw-r--r--ATRI/plugins/polaroid/image_dealer.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/ATRI/plugins/polaroid/image_dealer.py b/ATRI/plugins/polaroid/image_dealer.py
new file mode 100644
index 0000000..c1ab50b
--- /dev/null
+++ b/ATRI/plugins/polaroid/image_dealer.py
@@ -0,0 +1,46 @@
+from random import choice
+from pathlib import Path
+from datetime import datetime
+
+from PIL import Image, ImageFont, ImageDraw
+
+
+POLAROID_DIR = Path(".") / "data" / "database" / "polaroid"
+TEMP_PATH = Path(".") / "data" / "temp"
+POLAROID_DIR.mkdir(exist_ok=True)
+
+
+def image_dealer(user_img: bytes, user_id):
+ user_p = str((TEMP_PATH / f"{user_id}.png").absolute())
+
+ with open(user_p, "wb") as w:
+ w.write(user_img)
+
+ bg = Image.new("RGBA", (689, 1097), color=(0, 0, 0, 0))
+
+ pol_frame = Image.open(POLAROID_DIR / f"frame-{choice([0, 1])}.PNG").convert("RGBA")
+ user = Image.open(user_p).convert("RGBA").resize((800, 800), Image.ANTIALIAS)
+
+ _, _, _, a = pol_frame.split()
+
+ f_path = str(POLAROID_DIR / "font-0.ttf")
+ f_date = ImageFont.truetype(f_path, 100) # type: ignore
+ f_msg = ImageFont.truetype(f_path, 110) # type: ignore
+
+ bg.paste(user, (0, 53))
+ bg.paste(pol_frame, (0, 0), a)
+
+ msg = f"今天辛苦了{choice(['!', '❤️', '✨'])}"
+ now = datetime.now().strftime("%m / %d")
+
+ img = ImageDraw.Draw(bg)
+ img.text((25, 805), now, font=f_date, fill=(99, 184, 255))
+ img.text(
+ (15, 915),
+ msg,
+ font=f_msg,
+ fill=(255, 100, 97),
+ )
+
+ bg.save(user_p)
+ return user_p