CikeyQi's picture
Upload 964 files (#1)
346533a
raw
history blame
1.96 kB
from pathlib import Path
from typing import List
from pil_utils import BuildImage
from meme_generator import add_meme
from meme_generator.utils import save_gif
img_dir = Path(__file__).parent / "images"
def capoo_rip(images: List[BuildImage], texts, args):
img = images[0].convert("RGBA").resize((150, 100), keep_ratio=True)
img_left = img.crop((0, 0, 75, 100))
img_right = img.crop((75, 0, 150, 100))
params1 = [
[(61, 196), ((140, 68), (0, 59), (33, 0), (165, 8))],
[(63, 196), ((136, 68), (0, 59), (29, 0), (158, 13))],
[(62, 195), ((137, 72), (0, 58), (27, 0), (167, 11))],
[(95, 152), ((0, 8), (155, 0), (163, 107), (13, 112))],
[(108, 129), ((0, 6), (128, 0), (136, 113), (10, 117))],
[(84, 160), ((0, 6), (184, 0), (190, 90), (10, 97))],
]
params2 = [
(
[(78, 158), ((0, 3), (86, 0), (97, 106), (16, 106))],
[(195, 156), ((0, 4), (82, 0), (85, 106), (15, 110))],
),
(
[(89, 156), ((0, 0), (80, 0), (94, 100), (14, 100))],
[(192, 151), ((0, 7), (79, 3), (82, 107), (11, 112))],
),
]
raw_frames = [BuildImage.open(img_dir / f"{i}.png") for i in range(8)]
for i in range(6):
pos, points = params1[i]
raw_frames[i].paste(img.perspective(points), pos, below=True)
for i in range(2):
(pos1, points1), (pos2, points2) = params2[i]
raw_frames[i + 6].paste(img_left.perspective(points1), pos1, below=True)
raw_frames[i + 6].paste(img_right.perspective(points2), pos2, below=True)
new_frames: List[BuildImage] = []
for i in range(3):
new_frames += raw_frames[0:3]
new_frames += raw_frames[3:]
new_frames.append(raw_frames[-1])
frames = [frame.image for frame in new_frames]
return save_gif(frames, 0.1)
add_meme(
"capoo_rip",
capoo_rip,
min_images=1,
max_images=1,
keywords=["ε’–ζ³’ζ’•"],
)