diff --git a/.gitignore b/.gitignore index 8ddc2241..73205478 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,7 @@ dist/ .idea/ venv/ .venv/ + +result.png +result.jpg +result.gif diff --git a/meme_generator/memes/osu/__init__.py b/meme_generator/memes/osu/__init__.py new file mode 100644 index 00000000..0989511d --- /dev/null +++ b/meme_generator/memes/osu/__init__.py @@ -0,0 +1,41 @@ +from io import BytesIO +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.exception import TextOverLength + +img_dir = Path(__file__).parent / "images" + + +def osu(images, texts: List[str], args) -> BytesIO: + text = texts[0] + frame = BuildImage.open(img_dir / "osu.png") + try: + frame.draw_text( + (80, 80, 432, 432), + text, + max_fontsize=192, + min_fontsize=80, + weight="bold", + fill="white", + allow_wrap=True, + lines_align="center", + fontname="Aller", + ) + except ValueError: + raise TextOverLength(text) + + return frame.save_png() + + +add_meme( + "osu", + osu, + min_texts=1, + max_texts=1, + default_texts=["hso!"], + keywords=["osu"], +) diff --git a/meme_generator/memes/osu/images/osu.png b/meme_generator/memes/osu/images/osu.png new file mode 100644 index 00000000..b67e6189 Binary files /dev/null and b/meme_generator/memes/osu/images/osu.png differ diff --git a/resources/fonts/Aller_Bd.ttf b/resources/fonts/Aller_Bd.ttf new file mode 100644 index 00000000..b0513c46 Binary files /dev/null and b/resources/fonts/Aller_Bd.ttf differ