Spaces:
Sleeping
Sleeping
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=["εζ³’ζ"], | |
) | |