diff --git a/.gitattributes b/.gitattributes index d1c7ae77f38ccac67e713ea52de92108ed71f354..9ecfa9a44982881b89594d999a22dc33580e4fd8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -56,3 +56,4 @@ resources/fonts/FZXS14.ttf filter=lfs diff=lfs merge=lfs -text resources/fonts/HiraginoMin-W5-90-RKSJ-H-2.ttc filter=lfs diff=lfs merge=lfs -text resources/fonts/NotoSansSC-Regular.otf filter=lfs diff=lfs merge=lfs -text resources/fonts/NotoSerifSC-Regular.otf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text diff --git a/docs/images/ask.png b/docs/images/ask.png index d39bd3f621af5296a1d7f463d3764446268e90ed..467ca9f7d235219c8cef184e96ad1e549b5300b4 100644 Binary files a/docs/images/ask.png and b/docs/images/ask.png differ diff --git a/docs/images/bad_news.png b/docs/images/bad_news.png index c7dd2900bd9b20cc345db0266b1afdb52fab4bec..70ece7867e7460b4c60d9fb785ee1d1d777b7374 100644 Binary files a/docs/images/bad_news.png and b/docs/images/bad_news.png differ diff --git a/docs/images/good_news.png b/docs/images/good_news.png index 9aa4fc274d919e649e4c969190ed72dfc82699ef..8b7cb7483ebfe3d74314746f4dca6ac7cc895110 100644 Binary files a/docs/images/good_news.png and b/docs/images/good_news.png differ diff --git a/meme_generator/memes/acg_entrance/images/0.png b/meme_generator/memes/acg_entrance/images/0.png index 636d369842dc36fc3eb3162a56290d1effaf652f..a094ff15bbf4f599df87c0c3949459c2b38f0e38 100644 Binary files a/meme_generator/memes/acg_entrance/images/0.png and b/meme_generator/memes/acg_entrance/images/0.png differ diff --git a/meme_generator/memes/add_chaos/images/0.png b/meme_generator/memes/add_chaos/images/0.png index 14937b5997702c9b662724d981abf1af2f046446..453563ecc0f975340a01a0a9d521cc3946f003f7 100644 Binary files a/meme_generator/memes/add_chaos/images/0.png and b/meme_generator/memes/add_chaos/images/0.png differ diff --git a/meme_generator/memes/addiction/images/0.png b/meme_generator/memes/addiction/images/0.png index 646f9630796c295fbc683c8f1388b0a8d375126c..210c910c278d015316dff0512170eea0c3c8ece6 100644 Binary files a/meme_generator/memes/addiction/images/0.png and b/meme_generator/memes/addiction/images/0.png differ diff --git a/meme_generator/memes/always_like/images/0.png b/meme_generator/memes/always_like/images/0.png index d128b88fd178146e937fe549872c46934ef21023..d305d2d8664b3a8cbf0ed81ffa8603c11268e95c 100644 Binary files a/meme_generator/memes/always_like/images/0.png and b/meme_generator/memes/always_like/images/0.png differ diff --git a/meme_generator/memes/anya_suki/images/0.png b/meme_generator/memes/anya_suki/images/0.png index 1e84b51c97380358616cfb217256304978c33449..6759f280669163db28a9e9efd8e9823890ae8fd5 100644 Binary files a/meme_generator/memes/anya_suki/images/0.png and b/meme_generator/memes/anya_suki/images/0.png differ diff --git a/meme_generator/memes/applaud/images/0.png b/meme_generator/memes/applaud/images/0.png index 0b87d11bbe8586837a8851a6646541b3e7a0d971..6232c4d36f67c56488f6c8065fbf3ac8940adc69 100644 Binary files a/meme_generator/memes/applaud/images/0.png and b/meme_generator/memes/applaud/images/0.png differ diff --git a/meme_generator/memes/applaud/images/1.png b/meme_generator/memes/applaud/images/1.png index 45e40754c6491c16c1185e26dcea0e597e61791b..257f84d8d27ca562f270b10b2631d97c6bf48cc9 100644 Binary files a/meme_generator/memes/applaud/images/1.png and b/meme_generator/memes/applaud/images/1.png differ diff --git a/meme_generator/memes/applaud/images/2.png b/meme_generator/memes/applaud/images/2.png index bde54c33ac025001f8157e9244c2fc38b4bbd0fb..88afc21c32a94c15ba5e2dc31d6b708b8d4a6a8f 100644 Binary files a/meme_generator/memes/applaud/images/2.png and b/meme_generator/memes/applaud/images/2.png differ diff --git a/meme_generator/memes/applaud/images/3.png b/meme_generator/memes/applaud/images/3.png index 8c0b25f0d2cfeb75514ddebfb4dbb312ebb4189f..2815d8693695576da7678275f2f88278484040d8 100644 Binary files a/meme_generator/memes/applaud/images/3.png and b/meme_generator/memes/applaud/images/3.png differ diff --git a/meme_generator/memes/applaud/images/4.png b/meme_generator/memes/applaud/images/4.png index a39efc7a085ae8797e4b62318338581d29e61017..fadebcb47424721ad7cddc90eba324ba4adc4de1 100644 Binary files a/meme_generator/memes/applaud/images/4.png and b/meme_generator/memes/applaud/images/4.png differ diff --git a/meme_generator/memes/ascension/images/0.png b/meme_generator/memes/ascension/images/0.png index bbdcbad784b5e8b4decd575f536606b354e54307..dc6cd816092f0f5f168fccd2bdceb3337d17a9b6 100644 Binary files a/meme_generator/memes/ascension/images/0.png and b/meme_generator/memes/ascension/images/0.png differ diff --git a/meme_generator/memes/back_to_work/images/0.png b/meme_generator/memes/back_to_work/images/0.png index ab0fadc04776c3b096b1105edbedb07c46414f83..506f152921b99b75c0b745fb468db8fd1ae692a7 100644 Binary files a/meme_generator/memes/back_to_work/images/0.png and b/meme_generator/memes/back_to_work/images/0.png differ diff --git a/meme_generator/memes/bad_news/images/0.png b/meme_generator/memes/bad_news/images/0.png index edfe71c1767edb21437f9623f12824fef2076e22..6973f4c4ba1fccc8f539791b177838962abe9a92 100644 Binary files a/meme_generator/memes/bad_news/images/0.png and b/meme_generator/memes/bad_news/images/0.png differ diff --git a/meme_generator/memes/beat_head/images/0.png b/meme_generator/memes/beat_head/images/0.png index a40d09aaf3812be49fc47ae40865637c34e619ec..2479f1eeffe9d5b8630bcac936f459be8a58a378 100644 Binary files a/meme_generator/memes/beat_head/images/0.png and b/meme_generator/memes/beat_head/images/0.png differ diff --git a/meme_generator/memes/beat_head/images/1.png b/meme_generator/memes/beat_head/images/1.png index 5d11e7973928b95b3c63e5577a19cb563e0752c3..931b127cdad426739a15905f2832e37e39638529 100644 Binary files a/meme_generator/memes/beat_head/images/1.png and b/meme_generator/memes/beat_head/images/1.png differ diff --git a/meme_generator/memes/beat_head/images/2.png b/meme_generator/memes/beat_head/images/2.png index 3b8485f832ae56f05e8eb74150d29c0d73dcf9b8..087aa1d50e4cac91db43689842d17e1ff43a3126 100644 Binary files a/meme_generator/memes/beat_head/images/2.png and b/meme_generator/memes/beat_head/images/2.png differ diff --git a/meme_generator/memes/behead/images/0.png b/meme_generator/memes/behead/images/0.png index adcc34c5467acbe538cdb77770320f761093f5c4..77f1ae675d10b93f21e7ba207d325106d3d712c3 100644 Binary files a/meme_generator/memes/behead/images/0.png and b/meme_generator/memes/behead/images/0.png differ diff --git a/meme_generator/memes/behead/images/1.png b/meme_generator/memes/behead/images/1.png index f268f5057dc8359f9e3ca501f9485e986fc030c0..aea3b9f1157cb61f5baba7d866329947436cbd50 100644 Binary files a/meme_generator/memes/behead/images/1.png and b/meme_generator/memes/behead/images/1.png differ diff --git a/meme_generator/memes/behead/images/10.png b/meme_generator/memes/behead/images/10.png index 258df47e6ebcc3392c7c570271a5779b620ab73f..3ddbde09c1d61c0b38f01177ae6914b36f9ee66c 100644 Binary files a/meme_generator/memes/behead/images/10.png and b/meme_generator/memes/behead/images/10.png differ diff --git a/meme_generator/memes/behead/images/11.png b/meme_generator/memes/behead/images/11.png index f56c5155482b985f1d6e51d85d3eeaf08e2a5919..7783a4789f465afa129f97402af0ea699fba6448 100644 Binary files a/meme_generator/memes/behead/images/11.png and b/meme_generator/memes/behead/images/11.png differ diff --git a/meme_generator/memes/behead/images/12.png b/meme_generator/memes/behead/images/12.png index d158a5f95a37862ff5781e50b855cb5d53d4aaf0..256b11b88bb3375cc68aa9f5323b5c1d60df69eb 100644 Binary files a/meme_generator/memes/behead/images/12.png and b/meme_generator/memes/behead/images/12.png differ diff --git a/meme_generator/memes/behead/images/13.png b/meme_generator/memes/behead/images/13.png index 148c5502fe801af10fafcc9062af8e3dc69e3d7e..41194aba2b545a2177c17c7f30878bd96b44f87f 100644 Binary files a/meme_generator/memes/behead/images/13.png and b/meme_generator/memes/behead/images/13.png differ diff --git a/meme_generator/memes/behead/images/14.png b/meme_generator/memes/behead/images/14.png index e3fb5cb9011c071836313735a1554d27850889bb..6cb67b62403746e7ce2ca19260f8467e8e62b665 100644 Binary files a/meme_generator/memes/behead/images/14.png and b/meme_generator/memes/behead/images/14.png differ diff --git a/meme_generator/memes/behead/images/15.png b/meme_generator/memes/behead/images/15.png index 8178c04c0caa38c6d410046a41ad920e5c18535d..400e2553e23b65ec6405d18adfe92ac6c975b9bf 100644 Binary files a/meme_generator/memes/behead/images/15.png and b/meme_generator/memes/behead/images/15.png differ diff --git a/meme_generator/memes/behead/images/16.png b/meme_generator/memes/behead/images/16.png index 613b1cc708f9daa6baa9aabd0247ed14aa79feec..ee588c87133a2b21a008711e5cb1426f1694f837 100644 Binary files a/meme_generator/memes/behead/images/16.png and b/meme_generator/memes/behead/images/16.png differ diff --git a/meme_generator/memes/behead/images/17.png b/meme_generator/memes/behead/images/17.png index 3f0fcf43c70dc2650ab507723d6f7974bbea51e6..b720f828f3c87b57db49c931264138dac99edf22 100644 Binary files a/meme_generator/memes/behead/images/17.png and b/meme_generator/memes/behead/images/17.png differ diff --git a/meme_generator/memes/behead/images/18.png b/meme_generator/memes/behead/images/18.png index 234a1c4f74957a10a45d9fd88d4dd03727139e0a..cc8b1d7f19054f5ba94e144c9f68c5147b852298 100644 Binary files a/meme_generator/memes/behead/images/18.png and b/meme_generator/memes/behead/images/18.png differ diff --git a/meme_generator/memes/behead/images/19.png b/meme_generator/memes/behead/images/19.png index 5a0883dbc5336e7ddaf20e02660f1d59864ea3f9..c735da2ad2c5a4f1c83ca41ef53d17652cec7343 100644 Binary files a/meme_generator/memes/behead/images/19.png and b/meme_generator/memes/behead/images/19.png differ diff --git a/meme_generator/memes/behead/images/2.png b/meme_generator/memes/behead/images/2.png index 03d06f3896e5925361da14cf03317d6b7365dc5e..23294194f00d612dae67566fe99094bf3b1063bb 100644 Binary files a/meme_generator/memes/behead/images/2.png and b/meme_generator/memes/behead/images/2.png differ diff --git a/meme_generator/memes/behead/images/20.png b/meme_generator/memes/behead/images/20.png index 470863d477a0fca626ecb9000c8e936bcf623c4b..0451b7631d0481f10cf088d592753f8d2f73c9e9 100644 Binary files a/meme_generator/memes/behead/images/20.png and b/meme_generator/memes/behead/images/20.png differ diff --git a/meme_generator/memes/behead/images/3.png b/meme_generator/memes/behead/images/3.png index f7b25866dc0b60044f8a0f0e1914489bf3b2c3d3..b13a4bfabdbdf7742a150b2e66476b4ba60d25c3 100644 Binary files a/meme_generator/memes/behead/images/3.png and b/meme_generator/memes/behead/images/3.png differ diff --git a/meme_generator/memes/behead/images/4.png b/meme_generator/memes/behead/images/4.png index c27a1a60499229c36b2952a7511ce43f625adb29..50c7f189472b763fc6e8adaa09bfe19cc971377a 100644 Binary files a/meme_generator/memes/behead/images/4.png and b/meme_generator/memes/behead/images/4.png differ diff --git a/meme_generator/memes/behead/images/5.png b/meme_generator/memes/behead/images/5.png index 530137f79e750aa3cb7de5c086447f0566a1043a..1625a0c0537b859b335802e16906fe19c52b7f3e 100644 Binary files a/meme_generator/memes/behead/images/5.png and b/meme_generator/memes/behead/images/5.png differ diff --git a/meme_generator/memes/behead/images/6.png b/meme_generator/memes/behead/images/6.png index 2137c614af9a7bbb3833e7f7e6394b1eaabfb00d..d7b4c19573960e2d52411181d99ff82a3e127de7 100644 Binary files a/meme_generator/memes/behead/images/6.png and b/meme_generator/memes/behead/images/6.png differ diff --git a/meme_generator/memes/behead/images/7.png b/meme_generator/memes/behead/images/7.png index f746c4926b781e4e76b563a957de9215ded6a249..ffc84716268a7a4c7529df87b39f66929b09aaf6 100644 Binary files a/meme_generator/memes/behead/images/7.png and b/meme_generator/memes/behead/images/7.png differ diff --git a/meme_generator/memes/behead/images/8.png b/meme_generator/memes/behead/images/8.png index 6693f72062bc491ef747edb806f60bdc3bd88566..e61367471ff5bcb8ef088f013ad4a9dc8c3fb8a5 100644 Binary files a/meme_generator/memes/behead/images/8.png and b/meme_generator/memes/behead/images/8.png differ diff --git a/meme_generator/memes/behead/images/9.png b/meme_generator/memes/behead/images/9.png index 781fb89df814a9d098a315f783faa177a9a75bad..dc3ff3aa98ae6f9443e4df9cb486e246a8472a90 100644 Binary files a/meme_generator/memes/behead/images/9.png and b/meme_generator/memes/behead/images/9.png differ diff --git a/meme_generator/memes/bite/images/0.png b/meme_generator/memes/bite/images/0.png index cc5cfb69a6e5a2d0361ad71aa351e17f753217d0..c0510d27596aad1528dff86a0c88f552d8d58a34 100644 Binary files a/meme_generator/memes/bite/images/0.png and b/meme_generator/memes/bite/images/0.png differ diff --git a/meme_generator/memes/bite/images/1.png b/meme_generator/memes/bite/images/1.png index 7cc81306093efb51a0a8995eb03725345db1a3c9..bbe89df3fe97e3f2fceb7bcdab3645dabe9bf9be 100644 Binary files a/meme_generator/memes/bite/images/1.png and b/meme_generator/memes/bite/images/1.png differ diff --git a/meme_generator/memes/bite/images/10.png b/meme_generator/memes/bite/images/10.png index 57d96ef4e2d5e6b1ef0564bc86868f71081f37be..03a3ab3849317dfa6ff59b3c7f306120ab798e42 100644 Binary files a/meme_generator/memes/bite/images/10.png and b/meme_generator/memes/bite/images/10.png differ diff --git a/meme_generator/memes/bite/images/11.png b/meme_generator/memes/bite/images/11.png index e8efdb3823760e3596a786a23554a7772f33ea40..919fc9bd2578a75924c462bbda0d6ed9b4504a6e 100644 Binary files a/meme_generator/memes/bite/images/11.png and b/meme_generator/memes/bite/images/11.png differ diff --git a/meme_generator/memes/bite/images/12.png b/meme_generator/memes/bite/images/12.png index 74201a4c3b86119a9a1fa1ab354e7cbc625da3cb..f1102b2374179f7a36735eb649ad5c6ae61471cc 100644 Binary files a/meme_generator/memes/bite/images/12.png and b/meme_generator/memes/bite/images/12.png differ diff --git a/meme_generator/memes/bite/images/13.png b/meme_generator/memes/bite/images/13.png index 579b1e0dc0e9fb54fc0accec64629312b3e93f39..36752cab81d60d078fb9a7409e856d5396db2e10 100644 Binary files a/meme_generator/memes/bite/images/13.png and b/meme_generator/memes/bite/images/13.png differ diff --git a/meme_generator/memes/bite/images/14.png b/meme_generator/memes/bite/images/14.png index 57d96ef4e2d5e6b1ef0564bc86868f71081f37be..03a3ab3849317dfa6ff59b3c7f306120ab798e42 100644 Binary files a/meme_generator/memes/bite/images/14.png and b/meme_generator/memes/bite/images/14.png differ diff --git a/meme_generator/memes/bite/images/15.png b/meme_generator/memes/bite/images/15.png index e8efdb3823760e3596a786a23554a7772f33ea40..919fc9bd2578a75924c462bbda0d6ed9b4504a6e 100644 Binary files a/meme_generator/memes/bite/images/15.png and b/meme_generator/memes/bite/images/15.png differ diff --git a/meme_generator/memes/bite/images/2.png b/meme_generator/memes/bite/images/2.png index a602601997d2b32d409d04d2335dd8f01ee18700..92d0a2cbefb79cbf1e64652c8432f6f0c45fad61 100644 Binary files a/meme_generator/memes/bite/images/2.png and b/meme_generator/memes/bite/images/2.png differ diff --git a/meme_generator/memes/bite/images/3.png b/meme_generator/memes/bite/images/3.png index b40256d68d2d78c9e3e9237c2f10c8f7a45ab631..10fc87bbc112180a231811e762678c72434b13ad 100644 Binary files a/meme_generator/memes/bite/images/3.png and b/meme_generator/memes/bite/images/3.png differ diff --git a/meme_generator/memes/bite/images/4.png b/meme_generator/memes/bite/images/4.png index e9006f29742040578f523ba7956368a3dbda79dd..3f4eaf99e776f969fe8d8cfea50818d6699e8ca8 100644 Binary files a/meme_generator/memes/bite/images/4.png and b/meme_generator/memes/bite/images/4.png differ diff --git a/meme_generator/memes/bite/images/5.png b/meme_generator/memes/bite/images/5.png index adffbd3a061fe74ccfd48788af4a2f222508446a..a8ddfc8c2aad916b22c9e4a02a90e064ff245683 100644 Binary files a/meme_generator/memes/bite/images/5.png and b/meme_generator/memes/bite/images/5.png differ diff --git a/meme_generator/memes/bite/images/6.png b/meme_generator/memes/bite/images/6.png index 8a071611508de85ee264d56a2ce7b74cf2938399..1aa434b3120c222e7ec5e4892f9da70172da43ac 100644 Binary files a/meme_generator/memes/bite/images/6.png and b/meme_generator/memes/bite/images/6.png differ diff --git a/meme_generator/memes/bite/images/7.png b/meme_generator/memes/bite/images/7.png index 60becb0cf0e6b9c913435a0dbca01b809b1855fa..dfe0735183170377e3f1a610d27c3d9c5ae3c7de 100644 Binary files a/meme_generator/memes/bite/images/7.png and b/meme_generator/memes/bite/images/7.png differ diff --git a/meme_generator/memes/bite/images/8.png b/meme_generator/memes/bite/images/8.png index 74201a4c3b86119a9a1fa1ab354e7cbc625da3cb..f1102b2374179f7a36735eb649ad5c6ae61471cc 100644 Binary files a/meme_generator/memes/bite/images/8.png and b/meme_generator/memes/bite/images/8.png differ diff --git a/meme_generator/memes/bite/images/9.png b/meme_generator/memes/bite/images/9.png index 579b1e0dc0e9fb54fc0accec64629312b3e93f39..36752cab81d60d078fb9a7409e856d5396db2e10 100644 Binary files a/meme_generator/memes/bite/images/9.png and b/meme_generator/memes/bite/images/9.png differ diff --git a/meme_generator/memes/blood_pressure/images/0.png b/meme_generator/memes/blood_pressure/images/0.png index 804ecdb205170bc53e6dc907f79d35e4089155fa..d7bf92613b92a8d94f1567a814091372d84abd7f 100644 Binary files a/meme_generator/memes/blood_pressure/images/0.png and b/meme_generator/memes/blood_pressure/images/0.png differ diff --git a/meme_generator/memes/bluearchive/__init__.py b/meme_generator/memes/bluearchive/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f8d8213f016d838addc7eeb1417864040d06b2d6 --- /dev/null +++ b/meme_generator/memes/bluearchive/__init__.py @@ -0,0 +1,80 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +from PIL.Image import Resampling, Transform +from pil_utils import BuildImage, Text2Image +from pil_utils.fonts import DEFAULT_FALLBACK_FONTS +from pil_utils.text2image import Line + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def bluearchive(images, texts: List[str], args): + fontsize = 168 + fontname = "Ro GSan Serif Std" + fallback_fonts = ["Glow Sans SC"] + DEFAULT_FALLBACK_FONTS + tilt = 0.4 + color_blue = "#128AFA" + color_gray = "#2B2B2B" + + def transform(img: IMG) -> IMG: + dw = round(img.height * tilt) + return img.transform( + (img.width + dw, img.height), + Transform.AFFINE, + (1, tilt, -dw, 0, 1, 0), + Resampling.BILINEAR, + ) + + left_t2m = Text2Image.from_text( + texts[0], + fontsize, + fill=color_blue, + fontname=fontname, + fallback_fonts=fallback_fonts, + ) + right_t2m = Text2Image.from_text( + texts[1], + fontsize, + fill=color_gray, + stroke_width=12, + stroke_fill="white", + fontname=fontname, + fallback_fonts=fallback_fonts, + ) + new_line = Line( + left_t2m.lines[0].chars + right_t2m.lines[0].chars, + fontsize=fontsize, + fontname=fontname, + ) + text_t2m = Text2Image([new_line]) + text_img = transform(text_t2m.to_image()) + text_dy = text_t2m.lines[0].ascent + + padding_x = 50 + img_w = text_img.width + padding_x * 2 + img_h = 450 + text_y = 350 + logo_y = 10 + logo_x = padding_x + left_t2m.width - 115 + halo = BuildImage.open(img_dir / "halo.png").convert("RGBA") + cross = BuildImage.open(img_dir / "cross.png").convert("RGBA") + + frame = BuildImage.new("RGBA", (img_w, img_h), (255, 255, 255, 0)) + frame.paste(halo, (logo_x, logo_y), alpha=True) + frame.paste(text_img, (padding_x, text_y - text_dy), alpha=True) + frame.paste(cross, (logo_x, logo_y), alpha=True) + return frame.save_jpg() + + +add_meme( + "bluearchive", + bluearchive, + min_texts=2, + max_texts=2, + default_texts=["Blue", "Archive"], + keywords=["蔚蓝档案标题", "batitle"], +) diff --git a/meme_generator/memes/bluearchive/images/cross.png b/meme_generator/memes/bluearchive/images/cross.png new file mode 100644 index 0000000000000000000000000000000000000000..f9c5827eb31a356789b6ad8d95827ab1fee089d6 --- /dev/null +++ b/meme_generator/memes/bluearchive/images/cross.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf1937d922cdf72c49e65760bfef420335d59d953cf084ad195dd0f84066ab0f +size 16624 diff --git a/meme_generator/memes/bluearchive/images/halo.png b/meme_generator/memes/bluearchive/images/halo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f01d11e251aafc850bff70b5e1ed3797f122fba --- /dev/null +++ b/meme_generator/memes/bluearchive/images/halo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90f2e2ea6b0dbe30b7e51577e03e78542865f23d21d2bafcd8a96e8806bdee89 +size 13204 diff --git a/meme_generator/memes/bocchi_draft/images/0.png b/meme_generator/memes/bocchi_draft/images/0.png index 4992d31934d372eaea96fe2ce0170bc70b15c0c0..dca70631d3cfd07e52120044659cf861204232d5 100644 Binary files a/meme_generator/memes/bocchi_draft/images/0.png and b/meme_generator/memes/bocchi_draft/images/0.png differ diff --git a/meme_generator/memes/bocchi_draft/images/1.png b/meme_generator/memes/bocchi_draft/images/1.png index 4992d31934d372eaea96fe2ce0170bc70b15c0c0..dca70631d3cfd07e52120044659cf861204232d5 100644 Binary files a/meme_generator/memes/bocchi_draft/images/1.png and b/meme_generator/memes/bocchi_draft/images/1.png differ diff --git a/meme_generator/memes/bocchi_draft/images/10.png b/meme_generator/memes/bocchi_draft/images/10.png index e0bf8c63fa9ee890208ca444a39ed221979584d9..d38b12e32ee8388317d37d236bc955e68c7d493b 100644 Binary files a/meme_generator/memes/bocchi_draft/images/10.png and b/meme_generator/memes/bocchi_draft/images/10.png differ diff --git a/meme_generator/memes/bocchi_draft/images/11.png b/meme_generator/memes/bocchi_draft/images/11.png index fb2f2c70c8c8d1e19c6e89e8fc450de4fd6f1e87..c9d1fa0155b8610787379cc2cde604c4af64ab48 100644 Binary files a/meme_generator/memes/bocchi_draft/images/11.png and b/meme_generator/memes/bocchi_draft/images/11.png differ diff --git a/meme_generator/memes/bocchi_draft/images/12.png b/meme_generator/memes/bocchi_draft/images/12.png index 6981f79468a995028905b840ede10b84bf28bdf4..5e171396ce2a74a7e9d3bf901d005fcc8c40e13a 100644 Binary files a/meme_generator/memes/bocchi_draft/images/12.png and b/meme_generator/memes/bocchi_draft/images/12.png differ diff --git a/meme_generator/memes/bocchi_draft/images/13.png b/meme_generator/memes/bocchi_draft/images/13.png index 3cb149bcefa942f91631104522f1b802b8e7fc69..4eec802276f7467233feda3c48251e8d3aa72f33 100644 Binary files a/meme_generator/memes/bocchi_draft/images/13.png and b/meme_generator/memes/bocchi_draft/images/13.png differ diff --git a/meme_generator/memes/bocchi_draft/images/14.png b/meme_generator/memes/bocchi_draft/images/14.png index 317b3c002c883ec3c3e1836d7f9c8c25a98375f4..3525bcf70d09c1ccd2b851729237a3d2504283e3 100644 Binary files a/meme_generator/memes/bocchi_draft/images/14.png and b/meme_generator/memes/bocchi_draft/images/14.png differ diff --git a/meme_generator/memes/bocchi_draft/images/15.png b/meme_generator/memes/bocchi_draft/images/15.png index e56414fab4f467255bc26335b9b9dc4535d7be52..708c31018b82441ecb4e760cbc8bb8a37a1c85f4 100644 Binary files a/meme_generator/memes/bocchi_draft/images/15.png and b/meme_generator/memes/bocchi_draft/images/15.png differ diff --git a/meme_generator/memes/bocchi_draft/images/16.png b/meme_generator/memes/bocchi_draft/images/16.png index 4dba7c28fa16ce4f4e8f08f50343c3c8dc1f7310..dc33a98a7aa73bfdebae4108191c73ec77a0c5a3 100644 Binary files a/meme_generator/memes/bocchi_draft/images/16.png and b/meme_generator/memes/bocchi_draft/images/16.png differ diff --git a/meme_generator/memes/bocchi_draft/images/17.png b/meme_generator/memes/bocchi_draft/images/17.png index 0d35534f47f7d563e5cc2cda87353b201278ce77..5cb979be8fa462a7ddc8c9f6810ca9fa626b9bc6 100644 Binary files a/meme_generator/memes/bocchi_draft/images/17.png and b/meme_generator/memes/bocchi_draft/images/17.png differ diff --git a/meme_generator/memes/bocchi_draft/images/18.png b/meme_generator/memes/bocchi_draft/images/18.png index 06aeb063f755b7339f17454460d19872ae899533..cb8db5b31ad3ea6fb3624ef383ebd52735062961 100644 Binary files a/meme_generator/memes/bocchi_draft/images/18.png and b/meme_generator/memes/bocchi_draft/images/18.png differ diff --git a/meme_generator/memes/bocchi_draft/images/19.png b/meme_generator/memes/bocchi_draft/images/19.png index f3a30512538222041ee805523f0f2861f5f32b77..fd6736c57388ea5614398899fedbf9458484f62b 100644 Binary files a/meme_generator/memes/bocchi_draft/images/19.png and b/meme_generator/memes/bocchi_draft/images/19.png differ diff --git a/meme_generator/memes/bocchi_draft/images/2.png b/meme_generator/memes/bocchi_draft/images/2.png index 4992d31934d372eaea96fe2ce0170bc70b15c0c0..dca70631d3cfd07e52120044659cf861204232d5 100644 Binary files a/meme_generator/memes/bocchi_draft/images/2.png and b/meme_generator/memes/bocchi_draft/images/2.png differ diff --git a/meme_generator/memes/bocchi_draft/images/20.png b/meme_generator/memes/bocchi_draft/images/20.png index b0ca7bdf273c71dd684fdb138cd9e83ce788eaa9..4ebf0692d5ded3acf472084af3521289a49d109b 100644 Binary files a/meme_generator/memes/bocchi_draft/images/20.png and b/meme_generator/memes/bocchi_draft/images/20.png differ diff --git a/meme_generator/memes/bocchi_draft/images/21.png b/meme_generator/memes/bocchi_draft/images/21.png index b0ca7bdf273c71dd684fdb138cd9e83ce788eaa9..4ebf0692d5ded3acf472084af3521289a49d109b 100644 Binary files a/meme_generator/memes/bocchi_draft/images/21.png and b/meme_generator/memes/bocchi_draft/images/21.png differ diff --git a/meme_generator/memes/bocchi_draft/images/22.png b/meme_generator/memes/bocchi_draft/images/22.png index b0ca7bdf273c71dd684fdb138cd9e83ce788eaa9..4ebf0692d5ded3acf472084af3521289a49d109b 100644 Binary files a/meme_generator/memes/bocchi_draft/images/22.png and b/meme_generator/memes/bocchi_draft/images/22.png differ diff --git a/meme_generator/memes/bocchi_draft/images/3.png b/meme_generator/memes/bocchi_draft/images/3.png index a4f1294891073b3a08db5ddf3f222fcde5dfbb12..1a11ef624e977149f8563536dc374d3c30e59af0 100644 Binary files a/meme_generator/memes/bocchi_draft/images/3.png and b/meme_generator/memes/bocchi_draft/images/3.png differ diff --git a/meme_generator/memes/bocchi_draft/images/4.png b/meme_generator/memes/bocchi_draft/images/4.png index 097ad44b0e5502a383a967d03d13aeb61464875f..72f9c1f6d8f9186c6c2d2825f25a5f9022f69d7f 100644 Binary files a/meme_generator/memes/bocchi_draft/images/4.png and b/meme_generator/memes/bocchi_draft/images/4.png differ diff --git a/meme_generator/memes/bocchi_draft/images/5.png b/meme_generator/memes/bocchi_draft/images/5.png index 389c2b07677762faea99506839c1539bfd841713..ae9b45a23684d2b5b857b2bf61d1ca00e8c783f9 100644 Binary files a/meme_generator/memes/bocchi_draft/images/5.png and b/meme_generator/memes/bocchi_draft/images/5.png differ diff --git a/meme_generator/memes/bocchi_draft/images/6.png b/meme_generator/memes/bocchi_draft/images/6.png index 9d5e3d4de4634b381f0a42a6d22aa9192806e04e..de873d6a153b3374a750d0b3e5f203fe02241152 100644 Binary files a/meme_generator/memes/bocchi_draft/images/6.png and b/meme_generator/memes/bocchi_draft/images/6.png differ diff --git a/meme_generator/memes/bocchi_draft/images/7.png b/meme_generator/memes/bocchi_draft/images/7.png index 87230b589d01a1ad493357592de2c78fa5164ce6..71bfc8842e3b896f4d2cc2ffd6454269793ce09e 100644 Binary files a/meme_generator/memes/bocchi_draft/images/7.png and b/meme_generator/memes/bocchi_draft/images/7.png differ diff --git a/meme_generator/memes/bocchi_draft/images/8.png b/meme_generator/memes/bocchi_draft/images/8.png index b9fefa6e78fc6c092f82360629a52eb05adad536..13f09be82b7b09ca07c22a6123656bc8e3492168 100644 Binary files a/meme_generator/memes/bocchi_draft/images/8.png and b/meme_generator/memes/bocchi_draft/images/8.png differ diff --git a/meme_generator/memes/bocchi_draft/images/9.png b/meme_generator/memes/bocchi_draft/images/9.png index e201d45d45382040becb0da014d3af5462c1ac2d..0c7e360c43258a70c809cebd961d6f9c38a9b79d 100644 Binary files a/meme_generator/memes/bocchi_draft/images/9.png and b/meme_generator/memes/bocchi_draft/images/9.png differ diff --git a/meme_generator/memes/bubble_tea/images/0.png b/meme_generator/memes/bubble_tea/images/0.png index 785d142178e5732a49511af198deba9a4f504eb0..8b9b2eea954a8ef6059603d31b588a85c2f06eca 100644 Binary files a/meme_generator/memes/bubble_tea/images/0.png and b/meme_generator/memes/bubble_tea/images/0.png differ diff --git a/meme_generator/memes/caoshen_bite/images/0.png b/meme_generator/memes/caoshen_bite/images/0.png index c50702913a2f5cb58683da5565f20395139c2a45..0628aed454fd7754d5fb29e2c1804316f77a5ca2 100644 Binary files a/meme_generator/memes/caoshen_bite/images/0.png and b/meme_generator/memes/caoshen_bite/images/0.png differ diff --git a/meme_generator/memes/caoshen_bite/images/1.png b/meme_generator/memes/caoshen_bite/images/1.png index 866499ed0fa4aae16b20daac8d5be43460fa9d87..b172025c85b0cbad5e43f231df7fcff5c655b639 100644 Binary files a/meme_generator/memes/caoshen_bite/images/1.png and b/meme_generator/memes/caoshen_bite/images/1.png differ diff --git a/meme_generator/memes/caoshen_bite/images/10.png b/meme_generator/memes/caoshen_bite/images/10.png index 33866a712c768c09273df62dc1454d5a53335829..9f615d259f34747935f37a8a6a3cbcfbaada9d97 100644 Binary files a/meme_generator/memes/caoshen_bite/images/10.png and b/meme_generator/memes/caoshen_bite/images/10.png differ diff --git a/meme_generator/memes/caoshen_bite/images/11.png b/meme_generator/memes/caoshen_bite/images/11.png index 8561004f463d0acc301c75e5a3a1f50dc91cc2e5..920eafaaaf3290aa7ace2dacc5dcae6e56c84ae6 100644 Binary files a/meme_generator/memes/caoshen_bite/images/11.png and b/meme_generator/memes/caoshen_bite/images/11.png differ diff --git a/meme_generator/memes/caoshen_bite/images/12.png b/meme_generator/memes/caoshen_bite/images/12.png index 7afa03a18ffb66d1365ab94af51854677aac2b9b..11aea959190a5b3e1c7c327c858488a44d59b538 100644 Binary files a/meme_generator/memes/caoshen_bite/images/12.png and b/meme_generator/memes/caoshen_bite/images/12.png differ diff --git a/meme_generator/memes/caoshen_bite/images/13.png b/meme_generator/memes/caoshen_bite/images/13.png index 8258ab3adc055ef5492a686c2c03fe26f77978c8..4fd40f1e52653d443d6b498ac0f4fa4063c60760 100644 Binary files a/meme_generator/memes/caoshen_bite/images/13.png and b/meme_generator/memes/caoshen_bite/images/13.png differ diff --git a/meme_generator/memes/caoshen_bite/images/14.png b/meme_generator/memes/caoshen_bite/images/14.png index 5aaf2938d404f66a73282cd25bb866347f6b3f56..edd1094e467de2f53d15c2886441e2ccdc30c576 100644 Binary files a/meme_generator/memes/caoshen_bite/images/14.png and b/meme_generator/memes/caoshen_bite/images/14.png differ diff --git a/meme_generator/memes/caoshen_bite/images/15.png b/meme_generator/memes/caoshen_bite/images/15.png index 80a1373d2009b76e1f0fae0fab5070fc16c0754b..dc73d24ae906401c9c3219952b37c2725e9ade22 100644 Binary files a/meme_generator/memes/caoshen_bite/images/15.png and b/meme_generator/memes/caoshen_bite/images/15.png differ diff --git a/meme_generator/memes/caoshen_bite/images/16.png b/meme_generator/memes/caoshen_bite/images/16.png index ab9f489d040f82f29e4464e019c56186b4853013..8558a1ecbedf469f0002cd1f6d2a623b6c4ff835 100644 Binary files a/meme_generator/memes/caoshen_bite/images/16.png and b/meme_generator/memes/caoshen_bite/images/16.png differ diff --git a/meme_generator/memes/caoshen_bite/images/17.png b/meme_generator/memes/caoshen_bite/images/17.png index 117b3c89f7616340228008cd85ef55ff416e6f4d..227faf7ccf7f3a2cce720570e50989a9a778cf93 100644 Binary files a/meme_generator/memes/caoshen_bite/images/17.png and b/meme_generator/memes/caoshen_bite/images/17.png differ diff --git a/meme_generator/memes/caoshen_bite/images/18.png b/meme_generator/memes/caoshen_bite/images/18.png index 79d015c73d3ee620cbf29323969c651a95c43999..ea6ace3a3778c5d0fdf4ab0d8a07d240362d1d44 100644 Binary files a/meme_generator/memes/caoshen_bite/images/18.png and b/meme_generator/memes/caoshen_bite/images/18.png differ diff --git a/meme_generator/memes/caoshen_bite/images/19.png b/meme_generator/memes/caoshen_bite/images/19.png index d35ac4ab8413f824afe23d0796a6e60e062c43ec..fa628c482c4f3499cdbc4ef1f2937f678ce501ec 100644 Binary files a/meme_generator/memes/caoshen_bite/images/19.png and b/meme_generator/memes/caoshen_bite/images/19.png differ diff --git a/meme_generator/memes/caoshen_bite/images/2.png b/meme_generator/memes/caoshen_bite/images/2.png index a348a2ba778293d72cd3f315b9a43e55209e58ad..01418ffa4defe0589bc9543a83cc75950a2fdf22 100644 Binary files a/meme_generator/memes/caoshen_bite/images/2.png and b/meme_generator/memes/caoshen_bite/images/2.png differ diff --git a/meme_generator/memes/caoshen_bite/images/20.png b/meme_generator/memes/caoshen_bite/images/20.png index 74673ce340b7eb9f49d2dd4d43b1e593daf2429e..92d86e069d153e837f7cf3bf04c637f99824b923 100644 Binary files a/meme_generator/memes/caoshen_bite/images/20.png and b/meme_generator/memes/caoshen_bite/images/20.png differ diff --git a/meme_generator/memes/caoshen_bite/images/21.png b/meme_generator/memes/caoshen_bite/images/21.png index d0ed47a8d73de3a6a3a6a4f83c44c6b8fd8ef070..f2a8efaf0605fcd424867cdb6743a112681d1bf3 100644 Binary files a/meme_generator/memes/caoshen_bite/images/21.png and b/meme_generator/memes/caoshen_bite/images/21.png differ diff --git a/meme_generator/memes/caoshen_bite/images/22.png b/meme_generator/memes/caoshen_bite/images/22.png index 4bac1beb28311dd57bed661704db153a6d6d36b2..3bee963445a065fb5f615b68c24e5e4e41023e52 100644 Binary files a/meme_generator/memes/caoshen_bite/images/22.png and b/meme_generator/memes/caoshen_bite/images/22.png differ diff --git a/meme_generator/memes/caoshen_bite/images/23.png b/meme_generator/memes/caoshen_bite/images/23.png index 0d32a2355af40c1ef815354fa1d2cc022f7737fd..42b6c980740826e8ca2ab69e27e4564ff303a72b 100644 Binary files a/meme_generator/memes/caoshen_bite/images/23.png and b/meme_generator/memes/caoshen_bite/images/23.png differ diff --git a/meme_generator/memes/caoshen_bite/images/24.png b/meme_generator/memes/caoshen_bite/images/24.png index 0694042b5efda459fe49dc29d6ae1aa02b3296d8..28f0d3a7290c6e24053e7e11e149fef362e87a84 100644 Binary files a/meme_generator/memes/caoshen_bite/images/24.png and b/meme_generator/memes/caoshen_bite/images/24.png differ diff --git a/meme_generator/memes/caoshen_bite/images/25.png b/meme_generator/memes/caoshen_bite/images/25.png index 8c92a0c16ba8b1b575833346cbcbe3ce06a543ee..9bd92bd94b0897950aef161e953c125cb5f49d6e 100644 Binary files a/meme_generator/memes/caoshen_bite/images/25.png and b/meme_generator/memes/caoshen_bite/images/25.png differ diff --git a/meme_generator/memes/caoshen_bite/images/26.png b/meme_generator/memes/caoshen_bite/images/26.png index ada0bb0e028e4a1401380c7f94ce0202ed608f9c..2df70499792ed5be9877f814e23b6d39f9c8cd05 100644 Binary files a/meme_generator/memes/caoshen_bite/images/26.png and b/meme_generator/memes/caoshen_bite/images/26.png differ diff --git a/meme_generator/memes/caoshen_bite/images/27.png b/meme_generator/memes/caoshen_bite/images/27.png index ce7c990b19dbfb07018d1774c0beaf003df4aa55..5075cee048c717ffa65a3071642d262d69df249e 100644 Binary files a/meme_generator/memes/caoshen_bite/images/27.png and b/meme_generator/memes/caoshen_bite/images/27.png differ diff --git a/meme_generator/memes/caoshen_bite/images/28.png b/meme_generator/memes/caoshen_bite/images/28.png index 831b427cbbeecbd580ae7bc811c5fa103003442b..e972140676b3ee1b2fbccf352894e6bc33d7c674 100644 Binary files a/meme_generator/memes/caoshen_bite/images/28.png and b/meme_generator/memes/caoshen_bite/images/28.png differ diff --git a/meme_generator/memes/caoshen_bite/images/29.png b/meme_generator/memes/caoshen_bite/images/29.png index cb18573c5ece514739b592f7072b4b85c506a926..e28461168c7c09451b1af96a44983b49bd368d8c 100644 Binary files a/meme_generator/memes/caoshen_bite/images/29.png and b/meme_generator/memes/caoshen_bite/images/29.png differ diff --git a/meme_generator/memes/caoshen_bite/images/3.png b/meme_generator/memes/caoshen_bite/images/3.png index cd8d6499f1d9e768393d574c8bfff20c03f30081..c6c8f65076e03229b899045bc8b091eec071dcb8 100644 Binary files a/meme_generator/memes/caoshen_bite/images/3.png and b/meme_generator/memes/caoshen_bite/images/3.png differ diff --git a/meme_generator/memes/caoshen_bite/images/30.png b/meme_generator/memes/caoshen_bite/images/30.png index dbe07e669e2b7c5757390a87959386e5613d58da..8a92dd10b1800673523312c0e7bfc0925f3cc262 100644 Binary files a/meme_generator/memes/caoshen_bite/images/30.png and b/meme_generator/memes/caoshen_bite/images/30.png differ diff --git a/meme_generator/memes/caoshen_bite/images/31.png b/meme_generator/memes/caoshen_bite/images/31.png index 24f7b19421862abad3e5e28aef1bc7c5e1d64dec..353e048d236a2e1968fb1f3dba7e10903986d827 100644 Binary files a/meme_generator/memes/caoshen_bite/images/31.png and b/meme_generator/memes/caoshen_bite/images/31.png differ diff --git a/meme_generator/memes/caoshen_bite/images/32.png b/meme_generator/memes/caoshen_bite/images/32.png index 9f2973ff8cab4d521febeb793a94e520c9890c0e..c2e23e142fb5e7da160ea1afdfcaac34fae85fde 100644 Binary files a/meme_generator/memes/caoshen_bite/images/32.png and b/meme_generator/memes/caoshen_bite/images/32.png differ diff --git a/meme_generator/memes/caoshen_bite/images/33.png b/meme_generator/memes/caoshen_bite/images/33.png index c5687bfc64021b968dd56b76e4ec3e11cfdc61a6..a48b5ebd1a600f930f5a29a97db9529a03697845 100644 Binary files a/meme_generator/memes/caoshen_bite/images/33.png and b/meme_generator/memes/caoshen_bite/images/33.png differ diff --git a/meme_generator/memes/caoshen_bite/images/34.png b/meme_generator/memes/caoshen_bite/images/34.png index cea805ed3eb994727e69d6195b84223daeda95bd..397ed5589f32aaa61ed30b48fee000d6b88adcc5 100644 Binary files a/meme_generator/memes/caoshen_bite/images/34.png and b/meme_generator/memes/caoshen_bite/images/34.png differ diff --git a/meme_generator/memes/caoshen_bite/images/35.png b/meme_generator/memes/caoshen_bite/images/35.png index e9883805071cc7cdd6629dec17bd78c8164a98c6..45287570b7a0f37e698a78d76c7d6e0fb87fee58 100644 Binary files a/meme_generator/memes/caoshen_bite/images/35.png and b/meme_generator/memes/caoshen_bite/images/35.png differ diff --git a/meme_generator/memes/caoshen_bite/images/36.png b/meme_generator/memes/caoshen_bite/images/36.png index de54c3a13d5eb5113d72be3f87bb6b0af0f68c74..d347b324099d1e2400f68e1af9c811e4d14ccbba 100644 Binary files a/meme_generator/memes/caoshen_bite/images/36.png and b/meme_generator/memes/caoshen_bite/images/36.png differ diff --git a/meme_generator/memes/caoshen_bite/images/37.png b/meme_generator/memes/caoshen_bite/images/37.png index d8036c492e820e801167d145381ac1ae8412661e..cd6fa7fec26729fb086d65f6a2dd099e93baef6b 100644 Binary files a/meme_generator/memes/caoshen_bite/images/37.png and b/meme_generator/memes/caoshen_bite/images/37.png differ diff --git a/meme_generator/memes/caoshen_bite/images/4.png b/meme_generator/memes/caoshen_bite/images/4.png index 8eac509661790cae84e558a093d36654a1938fc5..919abd73411873d4c543748fef45fb9d091bc9c5 100644 Binary files a/meme_generator/memes/caoshen_bite/images/4.png and b/meme_generator/memes/caoshen_bite/images/4.png differ diff --git a/meme_generator/memes/caoshen_bite/images/5.png b/meme_generator/memes/caoshen_bite/images/5.png index f054c96a3183c708c23c8e192c0769361da52c55..5e4c9f63a432dca64a4bebe0f734e8b4fa4697fa 100644 Binary files a/meme_generator/memes/caoshen_bite/images/5.png and b/meme_generator/memes/caoshen_bite/images/5.png differ diff --git a/meme_generator/memes/caoshen_bite/images/6.png b/meme_generator/memes/caoshen_bite/images/6.png index be046de29ab1f9603da9095b782f70f93da7c17d..b493992d06fd19094aa28e04a9f863e773dd3e2b 100644 Binary files a/meme_generator/memes/caoshen_bite/images/6.png and b/meme_generator/memes/caoshen_bite/images/6.png differ diff --git a/meme_generator/memes/caoshen_bite/images/7.png b/meme_generator/memes/caoshen_bite/images/7.png index cb461d58fd57fa726570ba0bd714f46284b39b6b..719e9c2db1f0c7c3f164f11b530208228a443ebd 100644 Binary files a/meme_generator/memes/caoshen_bite/images/7.png and b/meme_generator/memes/caoshen_bite/images/7.png differ diff --git a/meme_generator/memes/caoshen_bite/images/8.png b/meme_generator/memes/caoshen_bite/images/8.png index bc85136d2d5d45ff3ac6cc13e9861cd738fa193b..fb96f781d555b4c1fe60eccfc1132f436763765a 100644 Binary files a/meme_generator/memes/caoshen_bite/images/8.png and b/meme_generator/memes/caoshen_bite/images/8.png differ diff --git a/meme_generator/memes/caoshen_bite/images/9.png b/meme_generator/memes/caoshen_bite/images/9.png index 63517658c9257145498b90eb15de71a7a1eefe32..c75f635af033f4d5e3bd5d0e8fadc37a74455e81 100644 Binary files a/meme_generator/memes/caoshen_bite/images/9.png and b/meme_generator/memes/caoshen_bite/images/9.png differ diff --git a/meme_generator/memes/capoo_draw/images/0.png b/meme_generator/memes/capoo_draw/images/0.png index 2346a1431a11959d5dcdcf0183249c9900e0152d..1ca8ef57820f0a4aec21021e57b698f7641b5639 100644 Binary files a/meme_generator/memes/capoo_draw/images/0.png and b/meme_generator/memes/capoo_draw/images/0.png differ diff --git a/meme_generator/memes/capoo_draw/images/1.png b/meme_generator/memes/capoo_draw/images/1.png index 162afd3c7222cd6659b1496a006ed34da793a3de..4aa79b3d8fcc364c2e30caf0893584bab3197e34 100644 Binary files a/meme_generator/memes/capoo_draw/images/1.png and b/meme_generator/memes/capoo_draw/images/1.png differ diff --git a/meme_generator/memes/capoo_draw/images/2.png b/meme_generator/memes/capoo_draw/images/2.png index 5c42195ae1af8eac14cb5eb81d34efd7a9c28e10..c5c3bdd6c1be08f07558d01908054c8a21861b94 100644 Binary files a/meme_generator/memes/capoo_draw/images/2.png and b/meme_generator/memes/capoo_draw/images/2.png differ diff --git a/meme_generator/memes/capoo_draw/images/3.png b/meme_generator/memes/capoo_draw/images/3.png index b693529b1065e5de06832d2df6758453ae3d57af..4ca8dce488b4b6a6bd0e70168e36c8b2aba2d629 100644 Binary files a/meme_generator/memes/capoo_draw/images/3.png and b/meme_generator/memes/capoo_draw/images/3.png differ diff --git a/meme_generator/memes/capoo_draw/images/4.png b/meme_generator/memes/capoo_draw/images/4.png index e810aedd4071325031f879431f83b8209f885aab..58ef011ba50f47c50ebf1e63c7270b62a9182523 100644 Binary files a/meme_generator/memes/capoo_draw/images/4.png and b/meme_generator/memes/capoo_draw/images/4.png differ diff --git a/meme_generator/memes/capoo_draw/images/5.png b/meme_generator/memes/capoo_draw/images/5.png index 4ccd5c3e8d1ecc2fec5b9437d1abb5d810dc17d6..5ddc792b64454e489c89a8ac095c20b061e7a6cb 100644 Binary files a/meme_generator/memes/capoo_draw/images/5.png and b/meme_generator/memes/capoo_draw/images/5.png differ diff --git a/meme_generator/memes/capoo_rip/images/0.png b/meme_generator/memes/capoo_rip/images/0.png index 8b253c236bc9b911cde37300486d88ba03ffd307..6c234f9ee5cd57ae2fe744f10f32c4e3f6d94d7d 100644 Binary files a/meme_generator/memes/capoo_rip/images/0.png and b/meme_generator/memes/capoo_rip/images/0.png differ diff --git a/meme_generator/memes/capoo_rip/images/1.png b/meme_generator/memes/capoo_rip/images/1.png index f1f067a585535a2a63d2184b44526f3d32da1f6b..a54a243c829248ff8a54f05b889fc52e85e54a8d 100644 Binary files a/meme_generator/memes/capoo_rip/images/1.png and b/meme_generator/memes/capoo_rip/images/1.png differ diff --git a/meme_generator/memes/capoo_rip/images/2.png b/meme_generator/memes/capoo_rip/images/2.png index 04d403c7987f1cbe67f4b2f74089f44c5a51d186..26005fdb40f92498504280f2ce7f59cbf894b962 100644 Binary files a/meme_generator/memes/capoo_rip/images/2.png and b/meme_generator/memes/capoo_rip/images/2.png differ diff --git a/meme_generator/memes/capoo_rip/images/3.png b/meme_generator/memes/capoo_rip/images/3.png index 4c7c21b583c82ed9e19091e687e841412d6a5800..d391e58a16e79519793af6da389a4024b85098df 100644 Binary files a/meme_generator/memes/capoo_rip/images/3.png and b/meme_generator/memes/capoo_rip/images/3.png differ diff --git a/meme_generator/memes/capoo_rip/images/4.png b/meme_generator/memes/capoo_rip/images/4.png index e2a5f3949e6db3c54d701f5b1415f9a097bd823c..963f4d3d8f572add6fe816c5170e6079c0236524 100644 Binary files a/meme_generator/memes/capoo_rip/images/4.png and b/meme_generator/memes/capoo_rip/images/4.png differ diff --git a/meme_generator/memes/capoo_rip/images/5.png b/meme_generator/memes/capoo_rip/images/5.png index 0c082faeda699d0611ca5c9dd8e30086e3f17895..873b271efb03979b56597db2dfab49ac12d93fef 100644 Binary files a/meme_generator/memes/capoo_rip/images/5.png and b/meme_generator/memes/capoo_rip/images/5.png differ diff --git a/meme_generator/memes/capoo_rip/images/6.png b/meme_generator/memes/capoo_rip/images/6.png index d96eda453228b1aa3d98f235a7366a289e6e2848..0cd3e42b6293341b3fd518df5b8d9c5347126a92 100644 Binary files a/meme_generator/memes/capoo_rip/images/6.png and b/meme_generator/memes/capoo_rip/images/6.png differ diff --git a/meme_generator/memes/capoo_rip/images/7.png b/meme_generator/memes/capoo_rip/images/7.png index 36e7ade349146d0bbb870ef4ea2ce2a76973db23..75b2d4779670e144ec4ef86cfba1342f18cd2e08 100644 Binary files a/meme_generator/memes/capoo_rip/images/7.png and b/meme_generator/memes/capoo_rip/images/7.png differ diff --git a/meme_generator/memes/capoo_rub/images/0.png b/meme_generator/memes/capoo_rub/images/0.png index 6bd6c6d7db1d9b7fc0f2259ea6cf19f18bdf1f29..07b7648c5ae8a3cf27828c56d5c6192c55e781c8 100644 Binary files a/meme_generator/memes/capoo_rub/images/0.png and b/meme_generator/memes/capoo_rub/images/0.png differ diff --git a/meme_generator/memes/capoo_rub/images/1.png b/meme_generator/memes/capoo_rub/images/1.png index 4251b8eb58f537549a410566d0cb8e80eac1fd8b..d9f4f8bb7060fc0b28a2be6b2e587029971bd00c 100644 Binary files a/meme_generator/memes/capoo_rub/images/1.png and b/meme_generator/memes/capoo_rub/images/1.png differ diff --git a/meme_generator/memes/capoo_rub/images/2.png b/meme_generator/memes/capoo_rub/images/2.png index a2f574a01eb3b4743d33e989a5b84e2109c886e9..fe02efea47a8e22d27c7431929faec24838cbd59 100644 Binary files a/meme_generator/memes/capoo_rub/images/2.png and b/meme_generator/memes/capoo_rub/images/2.png differ diff --git a/meme_generator/memes/capoo_rub/images/3.png b/meme_generator/memes/capoo_rub/images/3.png index 2cc8d08fcef2bc84e292b35503714a4892efedaf..daf9a215a9f15320c537e877e8060fc8aad6ade4 100644 Binary files a/meme_generator/memes/capoo_rub/images/3.png and b/meme_generator/memes/capoo_rub/images/3.png differ diff --git a/meme_generator/memes/capoo_say/images/0.png b/meme_generator/memes/capoo_say/images/0.png index ff7123a76cf8c54f46caf4b80b3d8a90b0b7dbc1..403e4c9ce997381dd90b0813cd40d56211d4f32d 100644 Binary files a/meme_generator/memes/capoo_say/images/0.png and b/meme_generator/memes/capoo_say/images/0.png differ diff --git a/meme_generator/memes/capoo_say/images/1.png b/meme_generator/memes/capoo_say/images/1.png index dee1057b9b06cd55345c9047447b9c9c253cefa9..adc7e6aa12cc73eace4c752db054dad54a797a05 100644 Binary files a/meme_generator/memes/capoo_say/images/1.png and b/meme_generator/memes/capoo_say/images/1.png differ diff --git a/meme_generator/memes/capoo_say/images/2.png b/meme_generator/memes/capoo_say/images/2.png index 4129451ed7c7fb10bb31831aff8999f47a483bf4..6e494794148c6cdc266e7746008e26d803d388ce 100644 Binary files a/meme_generator/memes/capoo_say/images/2.png and b/meme_generator/memes/capoo_say/images/2.png differ diff --git a/meme_generator/memes/capoo_say/images/3.png b/meme_generator/memes/capoo_say/images/3.png index d734530c242149a8b0057a325058dadfaffa5a74..b2689ef3f747419540b99d12a483895faf866d64 100644 Binary files a/meme_generator/memes/capoo_say/images/3.png and b/meme_generator/memes/capoo_say/images/3.png differ diff --git a/meme_generator/memes/capoo_say/images/4.png b/meme_generator/memes/capoo_say/images/4.png index 90bf5de647b2a7dd1b00b05b8acc3f32266f7b91..f8800828d2b3963f3e09797a134110151f17d4b0 100644 Binary files a/meme_generator/memes/capoo_say/images/4.png and b/meme_generator/memes/capoo_say/images/4.png differ diff --git a/meme_generator/memes/capoo_say/images/5.png b/meme_generator/memes/capoo_say/images/5.png index f3f18e42adc2c16daf877a37fe5025f29391b733..d8e0806a27f1e6ae3a7dc587add7b28657f7890e 100644 Binary files a/meme_generator/memes/capoo_say/images/5.png and b/meme_generator/memes/capoo_say/images/5.png differ diff --git a/meme_generator/memes/capoo_say/images/6.png b/meme_generator/memes/capoo_say/images/6.png index 486039822d7690f479ef4ba9a1268c9f3a292ae5..f738a57d75ad3fe2db9e3440c67e2ea4eb97570e 100644 Binary files a/meme_generator/memes/capoo_say/images/6.png and b/meme_generator/memes/capoo_say/images/6.png differ diff --git a/meme_generator/memes/capoo_say/images/7.png b/meme_generator/memes/capoo_say/images/7.png index fe6a413bd6bfce72b6f9b86acaabf4658a3d44f5..e2a9a0e07abc149a9da23303267a934171d459c2 100644 Binary files a/meme_generator/memes/capoo_say/images/7.png and b/meme_generator/memes/capoo_say/images/7.png differ diff --git a/meme_generator/memes/capoo_say/images/8.png b/meme_generator/memes/capoo_say/images/8.png index dd8e20ae071bb9d3d3b65bb0239c7080b33c2190..f6c3aa4b2340ba53c2fbe0314765a5da3dc12b0f 100644 Binary files a/meme_generator/memes/capoo_say/images/8.png and b/meme_generator/memes/capoo_say/images/8.png differ diff --git a/meme_generator/memes/capoo_say/images/9.png b/meme_generator/memes/capoo_say/images/9.png index 75418a88d0446018555ed8f3d13e6860b3e0444e..7d68681ecc20a38e46b28c55e778a6db5a4c1b1e 100644 Binary files a/meme_generator/memes/capoo_say/images/9.png and b/meme_generator/memes/capoo_say/images/9.png differ diff --git a/meme_generator/memes/capoo_strike/images/0.png b/meme_generator/memes/capoo_strike/images/0.png index 92e08bbfb364b55d49c95a39e67c899e1a42eadf..a78b82d7b0fdc48cc5bdf8f567f4482083e54efb 100644 Binary files a/meme_generator/memes/capoo_strike/images/0.png and b/meme_generator/memes/capoo_strike/images/0.png differ diff --git a/meme_generator/memes/capoo_strike/images/1.png b/meme_generator/memes/capoo_strike/images/1.png index 1a28b7781c631fe75d0a0fe52f85048ef6f28115..c69a544867597e443ad2b66ec2813362de92cb85 100644 Binary files a/meme_generator/memes/capoo_strike/images/1.png and b/meme_generator/memes/capoo_strike/images/1.png differ diff --git a/meme_generator/memes/capoo_strike/images/2.png b/meme_generator/memes/capoo_strike/images/2.png index bb523ff78f4c258bf2ebd998c6adf386a9a3ebe5..627ce218387bf3eed36c384f75eb566cb380e6f1 100644 Binary files a/meme_generator/memes/capoo_strike/images/2.png and b/meme_generator/memes/capoo_strike/images/2.png differ diff --git a/meme_generator/memes/capoo_strike/images/3.png b/meme_generator/memes/capoo_strike/images/3.png index f48036be89eb7f0b556c89e5d8be001d318c3456..7deffda6dc615b9fb3a864fe05e274e92a54797f 100644 Binary files a/meme_generator/memes/capoo_strike/images/3.png and b/meme_generator/memes/capoo_strike/images/3.png differ diff --git a/meme_generator/memes/capoo_strike/images/4.png b/meme_generator/memes/capoo_strike/images/4.png index 8f654200aa431ba1291c19042817db66d26fbdc7..a49fb9703d3ddee78692f8881886cb5af6454c29 100644 Binary files a/meme_generator/memes/capoo_strike/images/4.png and b/meme_generator/memes/capoo_strike/images/4.png differ diff --git a/meme_generator/memes/capoo_strike/images/5.png b/meme_generator/memes/capoo_strike/images/5.png index b4e9de41f99c2b98eab5d101a88b6d749e6144fc..946f543323c9e26f3e9bb4af005ee5cbaf23d80e 100644 Binary files a/meme_generator/memes/capoo_strike/images/5.png and b/meme_generator/memes/capoo_strike/images/5.png differ diff --git a/meme_generator/memes/capoo_strike/images/6.png b/meme_generator/memes/capoo_strike/images/6.png index a0ade51776e73d6ebdc364e95a7353d99fc54b78..6deee25345e8625cf5c94e582e3c6656e5a72ffd 100644 Binary files a/meme_generator/memes/capoo_strike/images/6.png and b/meme_generator/memes/capoo_strike/images/6.png differ diff --git a/meme_generator/memes/captain/images/0.png b/meme_generator/memes/captain/images/0.png index 3bb6aacbd741bc285c177a2a7a17f9fe6a083f8a..acae7dd5f20d363b46b07fdd6314c80c8a474052 100644 Binary files a/meme_generator/memes/captain/images/0.png and b/meme_generator/memes/captain/images/0.png differ diff --git a/meme_generator/memes/captain/images/1.png b/meme_generator/memes/captain/images/1.png index 85d97a6f548a96047ff216a2c4aefdfcd11e4143..3eedbe438dfbbb5fa5c77989c4b9df4b86a24780 100644 Binary files a/meme_generator/memes/captain/images/1.png and b/meme_generator/memes/captain/images/1.png differ diff --git a/meme_generator/memes/captain/images/2.png b/meme_generator/memes/captain/images/2.png index b5a18ba1e036c81cd8b939aaa057070b1808c3d8..65cead63418dcf7eff34a41a0177b2135538cca9 100644 Binary files a/meme_generator/memes/captain/images/2.png and b/meme_generator/memes/captain/images/2.png differ diff --git a/meme_generator/memes/certificate/__init__.py b/meme_generator/memes/certificate/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..234ee250c16710b93e50af43e1946e25fd1194a1 --- /dev/null +++ b/meme_generator/memes/certificate/__init__.py @@ -0,0 +1,108 @@ +from datetime import datetime +from pathlib import Path +from typing import List + +import dateparser +from pil_utils import BuildImage +from pydantic import Field + +from meme_generator import MemeArgsModel, MemeArgsParser, MemeArgsType, add_meme +from meme_generator.exception import TextOverLength + +parser = MemeArgsParser() +parser.add_argument("-t", "--time", type=str, default="", help="指定时间") + + +class Model(MemeArgsModel): + time: str = Field("", description="指定时间") + + +img_dir = Path(__file__).parent / "images" + + +def certificate(images, texts: List[str], args: Model): + time = datetime.now() + if args.time and (parsed_time := dateparser.parse(args.time)): + time = parsed_time + + frame = BuildImage.open(img_dir / "0.png") + + try: + frame.draw_text( + (340, 660, 770, 800), + texts[0], + allow_wrap=False, + max_fontsize=80, + min_fontsize=20, + ) + except ValueError: + raise TextOverLength(texts[0]) + try: + frame.draw_text( + (565, 1040, 2100, 1320), + texts[1], + fill="red", + allow_wrap=True, + max_fontsize=120, + min_fontsize=60, + ) + except ValueError: + raise TextOverLength(texts[1]) + try: + frame.draw_text( + (1500, 1400, 2020, 1520), + texts[2], + allow_wrap=False, + max_fontsize=60, + min_fontsize=20, + ) + except ValueError: + raise TextOverLength(texts[2]) + try: + frame.draw_text( + (450, 850, 2270, 1080), + texts[3] if len(texts) >= 4 else "  在本学年第一学期中表现优秀,被我校决定评为", + allow_wrap=True, + max_fontsize=80, + min_fontsize=40, + halign="left", + valign="top", + ) + except ValueError: + raise TextOverLength(texts[3]) + + frame.draw_text( + (1565, 1527), + f"{time.year:04d}", + allow_wrap=False, + fontsize=60, + ) + frame.draw_text( + (1752, 1527), + f"{time.month:02d}", + allow_wrap=False, + fontsize=60, + ) + frame.draw_text( + (1865, 1527), + f"{time.day:02d}", + allow_wrap=False, + fontsize=60, + ) + + return frame.save_png() + + +add_meme( + "certificate", + certificate, + min_texts=3, + max_texts=4, + default_texts=[ + "小王", + "优秀学生", + "一年一班", + ], + args_type=MemeArgsType(parser, Model), + keywords=["奖状", "证书"], +) diff --git a/meme_generator/memes/certificate/images/0.png b/meme_generator/memes/certificate/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..100bbd0b820fcac7dd919641b8154aedae9c1a99 --- /dev/null +++ b/meme_generator/memes/certificate/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce64522d264c0d415afe32a633143054d5c0711a5b30cf1c75a2947c50b2a481 +size 1534206 diff --git a/meme_generator/memes/charpic/__init__.py b/meme_generator/memes/charpic/__init__.py index 8ba8761022e9d421ea5b183d922672efc1a88491..ee8f7bc6f491de848290b8453d20746657649b09 100644 --- a/meme_generator/memes/charpic/__init__.py +++ b/meme_generator/memes/charpic/__init__.py @@ -15,14 +15,14 @@ def charpic(images: List[BuildImage], texts, args): font = Font.find("Consolas").load_font(15) def make(img: BuildImage) -> BuildImage: - img = img.convert("L").resize_width(150) + img = img.convert("RGBA").resize_width(150).convert("L") img = img.resize((img.width, img.height // 2)) lines = [] for y in range(img.height): line = "" for x in range(img.width): gray = img.image.getpixel((x, y)) - line += str_map[int(num * gray / 256)] + line += str_map[int(num * gray / 256)] if gray != 0 else " " lines.append(line) text = "\n".join(lines) text_img = Image.new("RGB", (2000, 2000), "white") diff --git a/meme_generator/memes/chase_train/images/0.png b/meme_generator/memes/chase_train/images/0.png index 478f8a831179b43e44f03a6da1b6332edcdd836a..488deb14d13be762b8dc29e8ff22f97a8ee73878 100644 Binary files a/meme_generator/memes/chase_train/images/0.png and b/meme_generator/memes/chase_train/images/0.png differ diff --git a/meme_generator/memes/chase_train/images/1.png b/meme_generator/memes/chase_train/images/1.png index 3ba439bc51837b1f78b2eafe868a39773ba563e6..af5d3b28f5012d09856ae1c14b3855aea0c4d616 100644 Binary files a/meme_generator/memes/chase_train/images/1.png and b/meme_generator/memes/chase_train/images/1.png differ diff --git a/meme_generator/memes/chase_train/images/10.png b/meme_generator/memes/chase_train/images/10.png index 01d6914288c85bf5d39a0973181a2f06107d5b76..ba665d5dbd7d472e67210c2e9de61d2a4df981da 100644 Binary files a/meme_generator/memes/chase_train/images/10.png and b/meme_generator/memes/chase_train/images/10.png differ diff --git a/meme_generator/memes/chase_train/images/100.png b/meme_generator/memes/chase_train/images/100.png index e6a00eb34a4783f18008f848f675991c1aec5f88..89d56647839b82cd5985efde2a6e1eb260bbbe47 100644 Binary files a/meme_generator/memes/chase_train/images/100.png and b/meme_generator/memes/chase_train/images/100.png differ diff --git a/meme_generator/memes/chase_train/images/101.png b/meme_generator/memes/chase_train/images/101.png index 277e3b266ad8b521b71a9dcb76b23a9c767e0502..99f8c3b632ef91d85355c67727dc81173c76bb5d 100644 Binary files a/meme_generator/memes/chase_train/images/101.png and b/meme_generator/memes/chase_train/images/101.png differ diff --git a/meme_generator/memes/chase_train/images/102.png b/meme_generator/memes/chase_train/images/102.png index 7f2ea350f4bb085b6a36313ab20b1d7f698fba4e..56e53f8184db8ca9226983d4f9bb53c179b15863 100644 Binary files a/meme_generator/memes/chase_train/images/102.png and b/meme_generator/memes/chase_train/images/102.png differ diff --git a/meme_generator/memes/chase_train/images/103.png b/meme_generator/memes/chase_train/images/103.png index 26d4894ce3564558d1b58126d25b764fbdb5dc95..8cf5d4f270919a94767653aea8085b7b5390f1f7 100644 Binary files a/meme_generator/memes/chase_train/images/103.png and b/meme_generator/memes/chase_train/images/103.png differ diff --git a/meme_generator/memes/chase_train/images/104.png b/meme_generator/memes/chase_train/images/104.png index 16eba66c068746ca7231c7019c54f139822fd150..3905cf307c683875fdc19f6c6873fdd0e8ada460 100644 Binary files a/meme_generator/memes/chase_train/images/104.png and b/meme_generator/memes/chase_train/images/104.png differ diff --git a/meme_generator/memes/chase_train/images/105.png b/meme_generator/memes/chase_train/images/105.png index 78b6f6840c32d074129b812da331ea0f529cd27c..35263ed850eaf5ede79df0c5fd26502238a59c5a 100644 Binary files a/meme_generator/memes/chase_train/images/105.png and b/meme_generator/memes/chase_train/images/105.png differ diff --git a/meme_generator/memes/chase_train/images/106.png b/meme_generator/memes/chase_train/images/106.png index 0519440a57f011008d5f9102d7d39de59f20ae2a..1a19775ac0682b2f54a71830caf3df0c6ca7f22f 100644 Binary files a/meme_generator/memes/chase_train/images/106.png and b/meme_generator/memes/chase_train/images/106.png differ diff --git a/meme_generator/memes/chase_train/images/107.png b/meme_generator/memes/chase_train/images/107.png index c76ed4762d63ceac329e361966e2bc7830655a72..b269e335d2a1bad08c72f51e691b2a9f63a25382 100644 Binary files a/meme_generator/memes/chase_train/images/107.png and b/meme_generator/memes/chase_train/images/107.png differ diff --git a/meme_generator/memes/chase_train/images/108.png b/meme_generator/memes/chase_train/images/108.png index fde7cb4c3b42d8c0ab94507e3d6bd9df71463a56..dd3c997ff158316c5b70cbf86acd44625367c784 100644 Binary files a/meme_generator/memes/chase_train/images/108.png and b/meme_generator/memes/chase_train/images/108.png differ diff --git a/meme_generator/memes/chase_train/images/109.png b/meme_generator/memes/chase_train/images/109.png index 119afa86d89e1d0b215583f3c61d865e066db5d4..12a99626476fa0f534f4d373e634740992d10e6b 100644 Binary files a/meme_generator/memes/chase_train/images/109.png and b/meme_generator/memes/chase_train/images/109.png differ diff --git a/meme_generator/memes/chase_train/images/11.png b/meme_generator/memes/chase_train/images/11.png index a50d075ba6504e48ce3f1d498c6d06412920bb6d..5fd1afec0568d8e80c207f545f46aae28cfd5068 100644 Binary files a/meme_generator/memes/chase_train/images/11.png and b/meme_generator/memes/chase_train/images/11.png differ diff --git a/meme_generator/memes/chase_train/images/110.png b/meme_generator/memes/chase_train/images/110.png index a1ff05e472e798b822799222d1056cd7e7bc612b..49be6d6715630d9cd5a26b0e08a15967ebed609e 100644 Binary files a/meme_generator/memes/chase_train/images/110.png and b/meme_generator/memes/chase_train/images/110.png differ diff --git a/meme_generator/memes/chase_train/images/111.png b/meme_generator/memes/chase_train/images/111.png index 31a827369a26241d3bc58d0d9d34930f3a77a95a..191e2e8f5471f3ce3f00135bdd4bd6ffd75814f6 100644 Binary files a/meme_generator/memes/chase_train/images/111.png and b/meme_generator/memes/chase_train/images/111.png differ diff --git a/meme_generator/memes/chase_train/images/112.png b/meme_generator/memes/chase_train/images/112.png index 324679a0799d10d0cc8060300624297209120148..b0bb566479debaa91d913022b8e4a3e70ec17f76 100644 Binary files a/meme_generator/memes/chase_train/images/112.png and b/meme_generator/memes/chase_train/images/112.png differ diff --git a/meme_generator/memes/chase_train/images/113.png b/meme_generator/memes/chase_train/images/113.png index 492e8fa8d75b3b9d080897706fa56d5cf626b734..4e9acefb3e8a0e9aede3d960b58e38cc63b6353c 100644 Binary files a/meme_generator/memes/chase_train/images/113.png and b/meme_generator/memes/chase_train/images/113.png differ diff --git a/meme_generator/memes/chase_train/images/114.png b/meme_generator/memes/chase_train/images/114.png index 1011831e650bec65fb27632f2ed8451569816849..19377c23014311ed05820a98345e9ea5cedf0f64 100644 Binary files a/meme_generator/memes/chase_train/images/114.png and b/meme_generator/memes/chase_train/images/114.png differ diff --git a/meme_generator/memes/chase_train/images/115.png b/meme_generator/memes/chase_train/images/115.png index 45d5ac92c233210be51d6ae6d4e03e74f5c0eedb..170d76691e46aae25ff35ad92cb5be8c43e281ef 100644 Binary files a/meme_generator/memes/chase_train/images/115.png and b/meme_generator/memes/chase_train/images/115.png differ diff --git a/meme_generator/memes/chase_train/images/116.png b/meme_generator/memes/chase_train/images/116.png index 254c7d4b94ea9fc6ca16b88b9c8233585f051cd8..e2ad62fe715b65e0c125e282aecdf57ab4ef4b2f 100644 Binary files a/meme_generator/memes/chase_train/images/116.png and b/meme_generator/memes/chase_train/images/116.png differ diff --git a/meme_generator/memes/chase_train/images/117.png b/meme_generator/memes/chase_train/images/117.png index ceb7dfa799f9bb4e85ebb68811c8bfdfd7f8bce9..a4d260813bfd4830329d7a04a0fec6d8e4732299 100644 Binary files a/meme_generator/memes/chase_train/images/117.png and b/meme_generator/memes/chase_train/images/117.png differ diff --git a/meme_generator/memes/chase_train/images/118.png b/meme_generator/memes/chase_train/images/118.png index 0835e11517a5cf6fd0e249317753df228c409aa2..fdc2be6b41d48a85a8c10a216f92ac68989c936f 100644 Binary files a/meme_generator/memes/chase_train/images/118.png and b/meme_generator/memes/chase_train/images/118.png differ diff --git a/meme_generator/memes/chase_train/images/119.png b/meme_generator/memes/chase_train/images/119.png index 5fb205d24885531f30f639cd20a17b653a04094b..7b01288942f2e5fa67027e20a3271432f599801f 100644 Binary files a/meme_generator/memes/chase_train/images/119.png and b/meme_generator/memes/chase_train/images/119.png differ diff --git a/meme_generator/memes/chase_train/images/12.png b/meme_generator/memes/chase_train/images/12.png index 1676ef6f2b837bdc0196f8065b871c345ada9068..e8bf32b72f1f914316347c5fad371385fda5e07d 100644 Binary files a/meme_generator/memes/chase_train/images/12.png and b/meme_generator/memes/chase_train/images/12.png differ diff --git a/meme_generator/memes/chase_train/images/13.png b/meme_generator/memes/chase_train/images/13.png index 8836680b7e1fe03956dd0ce6d56fa2a27de7a4ed..1bda78e21ccaa4f676903acd2aac55d5a709d931 100644 Binary files a/meme_generator/memes/chase_train/images/13.png and b/meme_generator/memes/chase_train/images/13.png differ diff --git a/meme_generator/memes/chase_train/images/14.png b/meme_generator/memes/chase_train/images/14.png index 9262a3872d50b111cad81815afff96106b133c3f..2ef8ac1d67924d2edbf2f49bb830cb4cbfc02b4d 100644 Binary files a/meme_generator/memes/chase_train/images/14.png and b/meme_generator/memes/chase_train/images/14.png differ diff --git a/meme_generator/memes/chase_train/images/15.png b/meme_generator/memes/chase_train/images/15.png index ae8e8558e3dfc00c684b3368ebca49fc0411d44f..a71254dcbb2d614dcb6eee8e47f133ec5f92c663 100644 Binary files a/meme_generator/memes/chase_train/images/15.png and b/meme_generator/memes/chase_train/images/15.png differ diff --git a/meme_generator/memes/chase_train/images/16.png b/meme_generator/memes/chase_train/images/16.png index 00c22b51527e5bd4541bcc070236d4d12dc65df3..49ddc8942f9a3ac8a6b469e68ceef458857cf44a 100644 Binary files a/meme_generator/memes/chase_train/images/16.png and b/meme_generator/memes/chase_train/images/16.png differ diff --git a/meme_generator/memes/chase_train/images/17.png b/meme_generator/memes/chase_train/images/17.png index e59f1576ae24a7c264d1f7b2524ef621b0f7fe3d..e5cad2a4c3bcf0ef1a43f71b06fff44fe2e4f19a 100644 Binary files a/meme_generator/memes/chase_train/images/17.png and b/meme_generator/memes/chase_train/images/17.png differ diff --git a/meme_generator/memes/chase_train/images/18.png b/meme_generator/memes/chase_train/images/18.png index 4ad1752a31ea62b2bf25716e40d10172d8c024b9..98ed51c9ac879f909ed0189685b3d9dca006fb01 100644 Binary files a/meme_generator/memes/chase_train/images/18.png and b/meme_generator/memes/chase_train/images/18.png differ diff --git a/meme_generator/memes/chase_train/images/19.png b/meme_generator/memes/chase_train/images/19.png index 4b14e32752961b6e24ce10fe9a723fe6fb5c7987..64a226e26ae064eab7f555498819cc1ac9cf85f0 100644 Binary files a/meme_generator/memes/chase_train/images/19.png and b/meme_generator/memes/chase_train/images/19.png differ diff --git a/meme_generator/memes/chase_train/images/2.png b/meme_generator/memes/chase_train/images/2.png index 9177c30cbc5fd689626e1a2749dbbedd74e551ab..4ce763be9d1770c3650a6596ec0bf071692804ba 100644 Binary files a/meme_generator/memes/chase_train/images/2.png and b/meme_generator/memes/chase_train/images/2.png differ diff --git a/meme_generator/memes/chase_train/images/20.png b/meme_generator/memes/chase_train/images/20.png index 68c38317a7b4f916a5f3e186ee179b5fa81f6c6c..f1fb9c27ea2e57d7e0275afa6fff6d2433240cb6 100644 Binary files a/meme_generator/memes/chase_train/images/20.png and b/meme_generator/memes/chase_train/images/20.png differ diff --git a/meme_generator/memes/chase_train/images/21.png b/meme_generator/memes/chase_train/images/21.png index 90ae4b3785fbe9e72c77f35549bc79d3057c17f4..c91d79537e9f9d287493a6c018deb3b538202346 100644 Binary files a/meme_generator/memes/chase_train/images/21.png and b/meme_generator/memes/chase_train/images/21.png differ diff --git a/meme_generator/memes/chase_train/images/22.png b/meme_generator/memes/chase_train/images/22.png index 66398611f74c45c6841e48e4e0fb6006ab4d061e..8ad4070a68ca2b157769eda1d0dbdb1efac896d7 100644 Binary files a/meme_generator/memes/chase_train/images/22.png and b/meme_generator/memes/chase_train/images/22.png differ diff --git a/meme_generator/memes/chase_train/images/23.png b/meme_generator/memes/chase_train/images/23.png index 864402309e3e13dcfc9e8a7384d4a171798061a1..59465c5f79bcdb76c79e4b79db86f69db3084dd6 100644 Binary files a/meme_generator/memes/chase_train/images/23.png and b/meme_generator/memes/chase_train/images/23.png differ diff --git a/meme_generator/memes/chase_train/images/24.png b/meme_generator/memes/chase_train/images/24.png index 8982506ec61127ce7a1d0d7de7d12595af865d1c..5de9e77ef83d7d71e35d2b029177dd9d8f0f261d 100644 Binary files a/meme_generator/memes/chase_train/images/24.png and b/meme_generator/memes/chase_train/images/24.png differ diff --git a/meme_generator/memes/chase_train/images/25.png b/meme_generator/memes/chase_train/images/25.png index 35825fa1dcd5ea9bda4170ee60c5c7977b19ff2e..89356c80823e7d771e5307af9b1e941d43c9d13d 100644 Binary files a/meme_generator/memes/chase_train/images/25.png and b/meme_generator/memes/chase_train/images/25.png differ diff --git a/meme_generator/memes/chase_train/images/26.png b/meme_generator/memes/chase_train/images/26.png index d49abfcd6e25ecdbe620a154ef6e75ae552ce4b0..a5c23e0a72859aa8fb3b0b61e028a6abbb64408a 100644 Binary files a/meme_generator/memes/chase_train/images/26.png and b/meme_generator/memes/chase_train/images/26.png differ diff --git a/meme_generator/memes/chase_train/images/27.png b/meme_generator/memes/chase_train/images/27.png index 13305210e4e10578c0b8e6216e8291cdc7460689..061985db8092c2f8ec67c6b7b2f127898378e6d0 100644 Binary files a/meme_generator/memes/chase_train/images/27.png and b/meme_generator/memes/chase_train/images/27.png differ diff --git a/meme_generator/memes/chase_train/images/28.png b/meme_generator/memes/chase_train/images/28.png index 46fcfedb2502171062fe4eab533f9224ce35f410..f48d2f5ed4dd68fcbeb5a62997d1094fe19f86be 100644 Binary files a/meme_generator/memes/chase_train/images/28.png and b/meme_generator/memes/chase_train/images/28.png differ diff --git a/meme_generator/memes/chase_train/images/29.png b/meme_generator/memes/chase_train/images/29.png index bcffd5e9692a6b37d7ee01dce2587fd926427853..ab4d277b901b600a1a03a34e32cae14fc2a87f9b 100644 Binary files a/meme_generator/memes/chase_train/images/29.png and b/meme_generator/memes/chase_train/images/29.png differ diff --git a/meme_generator/memes/chase_train/images/3.png b/meme_generator/memes/chase_train/images/3.png index d28751e98953c0b440af57ee76e2b3ae7678f776..257e7ffad43d968448aa05f8e92df4ff4575316c 100644 Binary files a/meme_generator/memes/chase_train/images/3.png and b/meme_generator/memes/chase_train/images/3.png differ diff --git a/meme_generator/memes/chase_train/images/30.png b/meme_generator/memes/chase_train/images/30.png index 0e7d4769e737c28f9b15bba6d3fbca394a2848bf..2e2d29bf38f9f68acb23e33a6addec7d2a4577d3 100644 Binary files a/meme_generator/memes/chase_train/images/30.png and b/meme_generator/memes/chase_train/images/30.png differ diff --git a/meme_generator/memes/chase_train/images/31.png b/meme_generator/memes/chase_train/images/31.png index 31f69f56adcae0019cc2d475b05cc87d38b07a43..8f661e1041544cc13ef3353c9242ff9ad66a311b 100644 Binary files a/meme_generator/memes/chase_train/images/31.png and b/meme_generator/memes/chase_train/images/31.png differ diff --git a/meme_generator/memes/chase_train/images/32.png b/meme_generator/memes/chase_train/images/32.png index 0d7fc7573cdcc66e156dd4859ac8fd80a731640c..2846bf4759109ea82a41659fb838b7f4ee2298bb 100644 Binary files a/meme_generator/memes/chase_train/images/32.png and b/meme_generator/memes/chase_train/images/32.png differ diff --git a/meme_generator/memes/chase_train/images/33.png b/meme_generator/memes/chase_train/images/33.png index 1c378429011767ca9aa74322004770f3ab69de7f..297de8c8424a4e201e0a22fbed77883ea88c58f7 100644 Binary files a/meme_generator/memes/chase_train/images/33.png and b/meme_generator/memes/chase_train/images/33.png differ diff --git a/meme_generator/memes/chase_train/images/34.png b/meme_generator/memes/chase_train/images/34.png index 9045e4cfac2c518cf02df91a33a3e74bd69f8a2f..416dafde02933cb6a7312cd36c6389cc48b54723 100644 Binary files a/meme_generator/memes/chase_train/images/34.png and b/meme_generator/memes/chase_train/images/34.png differ diff --git a/meme_generator/memes/chase_train/images/35.png b/meme_generator/memes/chase_train/images/35.png index 1731f99dc7c435d7d3dea01026164429f6c44c16..e607798031ac4db805201e3c4cdf41b388a5ee27 100644 Binary files a/meme_generator/memes/chase_train/images/35.png and b/meme_generator/memes/chase_train/images/35.png differ diff --git a/meme_generator/memes/chase_train/images/36.png b/meme_generator/memes/chase_train/images/36.png index 06009605f5a1d6bdb7fb12591c14d20f29c8723a..229837de4af4589c0c7e2c27fa57937007ccf490 100644 Binary files a/meme_generator/memes/chase_train/images/36.png and b/meme_generator/memes/chase_train/images/36.png differ diff --git a/meme_generator/memes/chase_train/images/37.png b/meme_generator/memes/chase_train/images/37.png index 2074c9cf7c0f40ed118563c06e62073a7a7ba705..79f5258c5b6939cbb1a11d7151aac520f58c9d9d 100644 Binary files a/meme_generator/memes/chase_train/images/37.png and b/meme_generator/memes/chase_train/images/37.png differ diff --git a/meme_generator/memes/chase_train/images/38.png b/meme_generator/memes/chase_train/images/38.png index 836c2e2289c8026ecfe4e6c83ebe340de7040f1d..2f58404803649517c19d3ef5962ef6c02152395e 100644 Binary files a/meme_generator/memes/chase_train/images/38.png and b/meme_generator/memes/chase_train/images/38.png differ diff --git a/meme_generator/memes/chase_train/images/39.png b/meme_generator/memes/chase_train/images/39.png index dff8b3a18daf29b326df9b97f2573de02e3bc2d7..e5079c9ca23d116c44bd2cd30789ff1d99ea64c1 100644 Binary files a/meme_generator/memes/chase_train/images/39.png and b/meme_generator/memes/chase_train/images/39.png differ diff --git a/meme_generator/memes/chase_train/images/4.png b/meme_generator/memes/chase_train/images/4.png index 2c53c21581f6b1fe5e5a963e2482f18a5b6593b3..2a11bea6101ed6e68a35cff190613d8751eb5158 100644 Binary files a/meme_generator/memes/chase_train/images/4.png and b/meme_generator/memes/chase_train/images/4.png differ diff --git a/meme_generator/memes/chase_train/images/40.png b/meme_generator/memes/chase_train/images/40.png index cb0dacf92c782c850b306981ff76610390315576..906270959fbd06c6bb3cd2e2bca1c4eed24cc3d5 100644 Binary files a/meme_generator/memes/chase_train/images/40.png and b/meme_generator/memes/chase_train/images/40.png differ diff --git a/meme_generator/memes/chase_train/images/41.png b/meme_generator/memes/chase_train/images/41.png index 8e26174e975ae3eab1d38abd9788a13c0f451e42..e5d313ffb956f0f0eeae71f9b521e26139e9e01c 100644 Binary files a/meme_generator/memes/chase_train/images/41.png and b/meme_generator/memes/chase_train/images/41.png differ diff --git a/meme_generator/memes/chase_train/images/42.png b/meme_generator/memes/chase_train/images/42.png index 64e2c057d37f2bf201dba199a7b539c3c463204f..f1ba8a9bfffed6622e4181e26018819bc7071d17 100644 Binary files a/meme_generator/memes/chase_train/images/42.png and b/meme_generator/memes/chase_train/images/42.png differ diff --git a/meme_generator/memes/chase_train/images/43.png b/meme_generator/memes/chase_train/images/43.png index ffdd2e3aaafb130fa749d8521f0768f3a7b6dc86..7e3bdce691da5493d49ff2bd744b0c128639cbd7 100644 Binary files a/meme_generator/memes/chase_train/images/43.png and b/meme_generator/memes/chase_train/images/43.png differ diff --git a/meme_generator/memes/chase_train/images/44.png b/meme_generator/memes/chase_train/images/44.png index 1dc1deb66f6dba64eeb02b5935d166c9d67f0dae..fda582840b3574e994de52e5de1e26aab1fdd8f9 100644 Binary files a/meme_generator/memes/chase_train/images/44.png and b/meme_generator/memes/chase_train/images/44.png differ diff --git a/meme_generator/memes/chase_train/images/45.png b/meme_generator/memes/chase_train/images/45.png index ef4d13d0f9260df8ed4b006902b4135f12e09018..9f650be5a977ed074de2b7bd693bfe5a93b4cb12 100644 Binary files a/meme_generator/memes/chase_train/images/45.png and b/meme_generator/memes/chase_train/images/45.png differ diff --git a/meme_generator/memes/chase_train/images/46.png b/meme_generator/memes/chase_train/images/46.png index 43a2d634a876d1b245984916962f6c0dca6156b5..574970a5b3c9e786e3c71e41b5efaadf4c06fa6e 100644 Binary files a/meme_generator/memes/chase_train/images/46.png and b/meme_generator/memes/chase_train/images/46.png differ diff --git a/meme_generator/memes/chase_train/images/47.png b/meme_generator/memes/chase_train/images/47.png index b783e22eb9fd29d9b2f5e03e03b9bf134253ba24..5ed28a4e9f97c8d8c7039690f9a6475ef42856b9 100644 Binary files a/meme_generator/memes/chase_train/images/47.png and b/meme_generator/memes/chase_train/images/47.png differ diff --git a/meme_generator/memes/chase_train/images/48.png b/meme_generator/memes/chase_train/images/48.png index d60af0b9ae5eac4401081bc3db7a164dd492eeb8..fb0ca0c591a3a43df1c98471ee50ab4e2e69fb35 100644 Binary files a/meme_generator/memes/chase_train/images/48.png and b/meme_generator/memes/chase_train/images/48.png differ diff --git a/meme_generator/memes/chase_train/images/49.png b/meme_generator/memes/chase_train/images/49.png index 825d284a78403731576342cd2553811a740a0483..7964460a9f8bc37f8a9c26b486c1399967b6bdf7 100644 Binary files a/meme_generator/memes/chase_train/images/49.png and b/meme_generator/memes/chase_train/images/49.png differ diff --git a/meme_generator/memes/chase_train/images/5.png b/meme_generator/memes/chase_train/images/5.png index 5a8cca4d43afe5ef384bc4d7ddb64d7143d41553..bec997f77ac279232bf36ea8360448c3e2330655 100644 Binary files a/meme_generator/memes/chase_train/images/5.png and b/meme_generator/memes/chase_train/images/5.png differ diff --git a/meme_generator/memes/chase_train/images/50.png b/meme_generator/memes/chase_train/images/50.png index b837035f3c599d48a570d660c17e14fc339bb37d..f9129e50e6633ab6ca198966a48621c2f206f094 100644 Binary files a/meme_generator/memes/chase_train/images/50.png and b/meme_generator/memes/chase_train/images/50.png differ diff --git a/meme_generator/memes/chase_train/images/51.png b/meme_generator/memes/chase_train/images/51.png index 0496deb1f7bf26e0a1d18addbdbfa1bf2ca77f47..6e06c9d0dc0b229610f141e6133bee7c49de72d3 100644 Binary files a/meme_generator/memes/chase_train/images/51.png and b/meme_generator/memes/chase_train/images/51.png differ diff --git a/meme_generator/memes/chase_train/images/52.png b/meme_generator/memes/chase_train/images/52.png index a9fd9c066bdecbbeca3aee88c6bbbd1d00402e2e..42d5695ad57db8326423a79d117ca79f3153ef2d 100644 Binary files a/meme_generator/memes/chase_train/images/52.png and b/meme_generator/memes/chase_train/images/52.png differ diff --git a/meme_generator/memes/chase_train/images/53.png b/meme_generator/memes/chase_train/images/53.png index 8ade682f4bd22f047ae6f8464fa45fddc9c303f7..9f8f21ce4357c89ca5a43dc75a0c72e5bc6d8951 100644 Binary files a/meme_generator/memes/chase_train/images/53.png and b/meme_generator/memes/chase_train/images/53.png differ diff --git a/meme_generator/memes/chase_train/images/54.png b/meme_generator/memes/chase_train/images/54.png index e0181fb0f3b2bc451a17d32b32ef2894d0e619af..2c722830c47b3856a8c4e0c6a90b9e490168b817 100644 Binary files a/meme_generator/memes/chase_train/images/54.png and b/meme_generator/memes/chase_train/images/54.png differ diff --git a/meme_generator/memes/chase_train/images/55.png b/meme_generator/memes/chase_train/images/55.png index f346e67868998ab5870d66523a78c1289cb039f8..98f1e4b18c3d284bf7a8301ccad8e4e935248f5a 100644 Binary files a/meme_generator/memes/chase_train/images/55.png and b/meme_generator/memes/chase_train/images/55.png differ diff --git a/meme_generator/memes/chase_train/images/56.png b/meme_generator/memes/chase_train/images/56.png index e06daabc9e33fb57eeed964cfb16bbecec3cbcfb..a366adaabbd897f13a28c2864eb156eba5b46aeb 100644 Binary files a/meme_generator/memes/chase_train/images/56.png and b/meme_generator/memes/chase_train/images/56.png differ diff --git a/meme_generator/memes/chase_train/images/57.png b/meme_generator/memes/chase_train/images/57.png index c204c48149ae69d309c22980e000263ef45c96ce..b6cccb06aafb82f01a328d6a4052d71bb8e5ad5a 100644 Binary files a/meme_generator/memes/chase_train/images/57.png and b/meme_generator/memes/chase_train/images/57.png differ diff --git a/meme_generator/memes/chase_train/images/58.png b/meme_generator/memes/chase_train/images/58.png index 6dff318be382f67a7dc7fec6616c5b01883e3bd1..971b9bb226921328708b1def898ea02172bd5cd5 100644 Binary files a/meme_generator/memes/chase_train/images/58.png and b/meme_generator/memes/chase_train/images/58.png differ diff --git a/meme_generator/memes/chase_train/images/59.png b/meme_generator/memes/chase_train/images/59.png index 2538188a443d7e53dae42d66a8ea0d3416a10d00..86d460f33639a537a049c4ef89123674f4bbfcd7 100644 Binary files a/meme_generator/memes/chase_train/images/59.png and b/meme_generator/memes/chase_train/images/59.png differ diff --git a/meme_generator/memes/chase_train/images/6.png b/meme_generator/memes/chase_train/images/6.png index 4ad0945a2d15d7d86cd68ea7cd4d8e392a4fc361..936d189dc2718e26cbd25377d506787a6ff26f7a 100644 Binary files a/meme_generator/memes/chase_train/images/6.png and b/meme_generator/memes/chase_train/images/6.png differ diff --git a/meme_generator/memes/chase_train/images/60.png b/meme_generator/memes/chase_train/images/60.png index 850c43a961bf0da9cafd78a69170b6f4ab99b3f9..bc00355c22c64adb4d72b50d944d791660fa3060 100644 Binary files a/meme_generator/memes/chase_train/images/60.png and b/meme_generator/memes/chase_train/images/60.png differ diff --git a/meme_generator/memes/chase_train/images/61.png b/meme_generator/memes/chase_train/images/61.png index 445d82ebc4ed4fd77501e706ed6b3be34f904191..0ab8e72c8548b9ae404219b38b9a95d78f44dd49 100644 Binary files a/meme_generator/memes/chase_train/images/61.png and b/meme_generator/memes/chase_train/images/61.png differ diff --git a/meme_generator/memes/chase_train/images/62.png b/meme_generator/memes/chase_train/images/62.png index 251ac92323f9f9abb6e1935a889027ee02c21014..c33c7215b18bd6ec1e799f3611f326a092c507c9 100644 Binary files a/meme_generator/memes/chase_train/images/62.png and b/meme_generator/memes/chase_train/images/62.png differ diff --git a/meme_generator/memes/chase_train/images/63.png b/meme_generator/memes/chase_train/images/63.png index 0fc31f5151f5ba0bf496bbc549f6ceecd9c61c09..a45488f82e9e625dad3c927f577c5f25721a8b97 100644 Binary files a/meme_generator/memes/chase_train/images/63.png and b/meme_generator/memes/chase_train/images/63.png differ diff --git a/meme_generator/memes/chase_train/images/64.png b/meme_generator/memes/chase_train/images/64.png index 86e2d6357c43e72b4002b9234243a86f9b617f25..74557fcda156d56c45b96d6742f12c39cc55766e 100644 Binary files a/meme_generator/memes/chase_train/images/64.png and b/meme_generator/memes/chase_train/images/64.png differ diff --git a/meme_generator/memes/chase_train/images/65.png b/meme_generator/memes/chase_train/images/65.png index d128e72863c5f863ae9a3b3eac8e4cea052ae86f..964d831d8ebb63ca10d80d918885c8f41eaad698 100644 Binary files a/meme_generator/memes/chase_train/images/65.png and b/meme_generator/memes/chase_train/images/65.png differ diff --git a/meme_generator/memes/chase_train/images/66.png b/meme_generator/memes/chase_train/images/66.png index 785d9da29b4a6dd9b80631c2c0d63a7e6fc47b09..cd2a989e24a638c5d13d4229029f1c2bf99e1ae7 100644 Binary files a/meme_generator/memes/chase_train/images/66.png and b/meme_generator/memes/chase_train/images/66.png differ diff --git a/meme_generator/memes/chase_train/images/67.png b/meme_generator/memes/chase_train/images/67.png index cd8ebbd2ff7408a12ff8f3895b4b1eaaf65d11a5..212af532b6acde66be4aa9e0f25fca3dfce00ac7 100644 Binary files a/meme_generator/memes/chase_train/images/67.png and b/meme_generator/memes/chase_train/images/67.png differ diff --git a/meme_generator/memes/chase_train/images/68.png b/meme_generator/memes/chase_train/images/68.png index e9427331919e1e4abbc836d95b5db676d8cc9886..48181a554334edaa845a50b0f057015233e31257 100644 Binary files a/meme_generator/memes/chase_train/images/68.png and b/meme_generator/memes/chase_train/images/68.png differ diff --git a/meme_generator/memes/chase_train/images/69.png b/meme_generator/memes/chase_train/images/69.png index 951ccadec8cb95d7bf6ed18c1ceeb8f1f1dac35d..cfe6db73d75f825c77d7d2d4d758327608969480 100644 Binary files a/meme_generator/memes/chase_train/images/69.png and b/meme_generator/memes/chase_train/images/69.png differ diff --git a/meme_generator/memes/chase_train/images/7.png b/meme_generator/memes/chase_train/images/7.png index 81d46fc02e9288f968c1d34c81c26b486200cb86..a4c3e4b6487f5f6a26439d61b5ecc49a371089e3 100644 Binary files a/meme_generator/memes/chase_train/images/7.png and b/meme_generator/memes/chase_train/images/7.png differ diff --git a/meme_generator/memes/chase_train/images/70.png b/meme_generator/memes/chase_train/images/70.png index bb885f22480a7f22747cdb37f069f80ddc57cf14..4c40ca54d136e9e3f0a2e65a105178a7c96389ed 100644 Binary files a/meme_generator/memes/chase_train/images/70.png and b/meme_generator/memes/chase_train/images/70.png differ diff --git a/meme_generator/memes/chase_train/images/71.png b/meme_generator/memes/chase_train/images/71.png index 1f2e2b39b644817ce5e6153c2c02b4b08b419995..fd0d9518606b398b2ae58ca379b8527516ac447d 100644 Binary files a/meme_generator/memes/chase_train/images/71.png and b/meme_generator/memes/chase_train/images/71.png differ diff --git a/meme_generator/memes/chase_train/images/72.png b/meme_generator/memes/chase_train/images/72.png index c5f40dfd2f98c9843b5ab593423c9759a6edb28c..83b5005e743c5105ce1a068b2290a23ebdd0bb26 100644 Binary files a/meme_generator/memes/chase_train/images/72.png and b/meme_generator/memes/chase_train/images/72.png differ diff --git a/meme_generator/memes/chase_train/images/73.png b/meme_generator/memes/chase_train/images/73.png index 0d2d71386a50b67d12c1a1e1220acd92f05268f8..20faa249378428841fe0dcb02b26c1e832072f1a 100644 Binary files a/meme_generator/memes/chase_train/images/73.png and b/meme_generator/memes/chase_train/images/73.png differ diff --git a/meme_generator/memes/chase_train/images/74.png b/meme_generator/memes/chase_train/images/74.png index 7e2926a13d28d92b537df95bbc56c4555e876781..2dac580acdd6b736b3eeab13af61d10d605384fb 100644 Binary files a/meme_generator/memes/chase_train/images/74.png and b/meme_generator/memes/chase_train/images/74.png differ diff --git a/meme_generator/memes/chase_train/images/75.png b/meme_generator/memes/chase_train/images/75.png index 09a67b8827be0cb2a02889fe507931f8a9dff371..a15107414990b810778cfecc9987020925eba020 100644 Binary files a/meme_generator/memes/chase_train/images/75.png and b/meme_generator/memes/chase_train/images/75.png differ diff --git a/meme_generator/memes/chase_train/images/76.png b/meme_generator/memes/chase_train/images/76.png index be01c4c83335cb2d1d8cd8ead2fbc3927c17dea5..3b2f5b21526031d29265b85406ed38bdf24553e9 100644 Binary files a/meme_generator/memes/chase_train/images/76.png and b/meme_generator/memes/chase_train/images/76.png differ diff --git a/meme_generator/memes/chase_train/images/77.png b/meme_generator/memes/chase_train/images/77.png index 01b32f1cee71df240ab6dfc24c96f2d6597a2fb6..21a2876d74ec28149a2e4d9d9f7f4e9ec6d0a7e4 100644 Binary files a/meme_generator/memes/chase_train/images/77.png and b/meme_generator/memes/chase_train/images/77.png differ diff --git a/meme_generator/memes/chase_train/images/78.png b/meme_generator/memes/chase_train/images/78.png index 7ee48cebeece98a7c28fc9ab9382cb6623232397..0934d6f7814f404e5c568e75427c83258d6bbdb5 100644 Binary files a/meme_generator/memes/chase_train/images/78.png and b/meme_generator/memes/chase_train/images/78.png differ diff --git a/meme_generator/memes/chase_train/images/79.png b/meme_generator/memes/chase_train/images/79.png index 0d139112004d5b404adfe43e7fea931d06bfd39a..448d4599e2b9b36e160bba1bb369ccc575cc707d 100644 Binary files a/meme_generator/memes/chase_train/images/79.png and b/meme_generator/memes/chase_train/images/79.png differ diff --git a/meme_generator/memes/chase_train/images/8.png b/meme_generator/memes/chase_train/images/8.png index 6a31eca7ee56dfed46965bcd28e41d64d1f51bc7..68140d535d3749c7c54001f864fa71b374945fa0 100644 Binary files a/meme_generator/memes/chase_train/images/8.png and b/meme_generator/memes/chase_train/images/8.png differ diff --git a/meme_generator/memes/chase_train/images/80.png b/meme_generator/memes/chase_train/images/80.png index 23e4736f9417d2c23b4a2336bfbce707738823e0..5931c83fe5e3afb9008272ff78db92a6f6ecfd5a 100644 Binary files a/meme_generator/memes/chase_train/images/80.png and b/meme_generator/memes/chase_train/images/80.png differ diff --git a/meme_generator/memes/chase_train/images/81.png b/meme_generator/memes/chase_train/images/81.png new file mode 100644 index 0000000000000000000000000000000000000000..a535ae7cac0dc53c67bb685dea02b31e1032f104 --- /dev/null +++ b/meme_generator/memes/chase_train/images/81.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bea41ca796bc1e58d22c5d0698cba4dbc4ac82f400a0647ccf9836836e06aeb4 +size 11324 diff --git a/meme_generator/memes/chase_train/images/82.png b/meme_generator/memes/chase_train/images/82.png new file mode 100644 index 0000000000000000000000000000000000000000..03a4aa7ff87a0d46bed53a20d5180f2dafaec470 --- /dev/null +++ b/meme_generator/memes/chase_train/images/82.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9058a16c83f76b35fc9fe14cf15f014a0a2704c73e8cb51e7f48814fbcc5bdfc +size 10871 diff --git a/meme_generator/memes/chase_train/images/83.png b/meme_generator/memes/chase_train/images/83.png new file mode 100644 index 0000000000000000000000000000000000000000..0a58de64a8491f88206540e3a2c4fd9dfa5ce1fa --- /dev/null +++ b/meme_generator/memes/chase_train/images/83.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4b547711456a9ac8365e5d3bacc5223eb2b6c56522ae3ed90bf51eb079fc2e9 +size 10371 diff --git a/meme_generator/memes/chase_train/images/84.png b/meme_generator/memes/chase_train/images/84.png new file mode 100644 index 0000000000000000000000000000000000000000..c7919e566825c0f796066a7d73e9249a077833f1 --- /dev/null +++ b/meme_generator/memes/chase_train/images/84.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38840573e1aef3b0be07720bc42b95241496ff34c99a88eac846d5dbb6fd7559 +size 10615 diff --git a/meme_generator/memes/chase_train/images/85.png b/meme_generator/memes/chase_train/images/85.png new file mode 100644 index 0000000000000000000000000000000000000000..ac5e326d3f255aff2781927d3cf9c3f1b7814597 --- /dev/null +++ b/meme_generator/memes/chase_train/images/85.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ae9f448672205d541eedcdd5d1171d297fa72134dca522c84cd221e6f012de8 +size 10934 diff --git a/meme_generator/memes/chase_train/images/86.png b/meme_generator/memes/chase_train/images/86.png new file mode 100644 index 0000000000000000000000000000000000000000..644fe800f5a20d7d10d851c28834c62c9a3d4772 --- /dev/null +++ b/meme_generator/memes/chase_train/images/86.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e952b9f53eb03b262630f3a4e41944c17986417b796d7894f2c0a6aeccacace +size 11187 diff --git a/meme_generator/memes/chase_train/images/87.png b/meme_generator/memes/chase_train/images/87.png new file mode 100644 index 0000000000000000000000000000000000000000..2b78ccd53edbd3908cba1f8fb99a2db5997350f0 --- /dev/null +++ b/meme_generator/memes/chase_train/images/87.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a482be113727e88f73188101a5f4c6d72056a19336c3cc3b99565477eec28976 +size 10657 diff --git a/meme_generator/memes/chase_train/images/88.png b/meme_generator/memes/chase_train/images/88.png new file mode 100644 index 0000000000000000000000000000000000000000..620c4b0fffe4f9470e34aefd1513d269bf4b7053 --- /dev/null +++ b/meme_generator/memes/chase_train/images/88.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d34c968ab8aeba3e65943c84823f7277c1f7ecd803967b2ff9f7ae015a03f5b1 +size 11238 diff --git a/meme_generator/memes/chase_train/images/89.png b/meme_generator/memes/chase_train/images/89.png new file mode 100644 index 0000000000000000000000000000000000000000..e27d6ecc608f6089caa2b86b8668a3a3ec5e62df --- /dev/null +++ b/meme_generator/memes/chase_train/images/89.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62e5847e6aa59b72a32ed1c77e77602e0d68dca6519608c3fb9adb96b8c90b24 +size 11708 diff --git a/meme_generator/memes/chase_train/images/9.png b/meme_generator/memes/chase_train/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..a75cd79f28ab9a4dba95973edbedd9019339efab --- /dev/null +++ b/meme_generator/memes/chase_train/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78b27b83a99aa7714781b8cd150641cfe90a006f9e73b3210763e0c6e79d6dba +size 9569 diff --git a/meme_generator/memes/chase_train/images/90.png b/meme_generator/memes/chase_train/images/90.png new file mode 100644 index 0000000000000000000000000000000000000000..dd1c19fd746828fe6905733ba9246ef65779c054 --- /dev/null +++ b/meme_generator/memes/chase_train/images/90.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b747953616d3a0ce2b301087f9154c2f886fa6bc8d317f8d2e8bf6f777bdb18 +size 12007 diff --git a/meme_generator/memes/chase_train/images/91.png b/meme_generator/memes/chase_train/images/91.png new file mode 100644 index 0000000000000000000000000000000000000000..80121a1a3d3d5946da8a9205c272c748a8bbcbbd --- /dev/null +++ b/meme_generator/memes/chase_train/images/91.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d038f8d7854d4a0afb32bb36499308f1229e87a9894dd59110a78e6c2ccc866 +size 11138 diff --git a/meme_generator/memes/chase_train/images/92.png b/meme_generator/memes/chase_train/images/92.png new file mode 100644 index 0000000000000000000000000000000000000000..337402b9dd3b182fbbf6a4ef5462051405e45dab --- /dev/null +++ b/meme_generator/memes/chase_train/images/92.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ca068c28c7d601bfb9d14a46ac704d7230f66e9a6c5e7a41baa9e84a302b86b +size 10911 diff --git a/meme_generator/memes/chase_train/images/93.png b/meme_generator/memes/chase_train/images/93.png new file mode 100644 index 0000000000000000000000000000000000000000..23751e247384f890789ef61baf12f014b3b54909 --- /dev/null +++ b/meme_generator/memes/chase_train/images/93.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6e5f147fa6fd9c691de6ba934b6c939713ec5d1f73a9e4288080718d181385b +size 11011 diff --git a/meme_generator/memes/chase_train/images/94.png b/meme_generator/memes/chase_train/images/94.png new file mode 100644 index 0000000000000000000000000000000000000000..a2e627eb3268a564434c8287700e19a8bd2fad9c --- /dev/null +++ b/meme_generator/memes/chase_train/images/94.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f347967f84ef5e8410a021515eba773faef2188e3b8783a0c40eb5d17aa54dbc +size 11568 diff --git a/meme_generator/memes/chase_train/images/95.png b/meme_generator/memes/chase_train/images/95.png new file mode 100644 index 0000000000000000000000000000000000000000..189ed780db13be7be2004f0da166843e2862f139 --- /dev/null +++ b/meme_generator/memes/chase_train/images/95.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05dcd8dbf5acd1e6e3717304d0329734533a733ce5169a31bf3901c9b2007f50 +size 10936 diff --git a/meme_generator/memes/chase_train/images/96.png b/meme_generator/memes/chase_train/images/96.png new file mode 100644 index 0000000000000000000000000000000000000000..c58ec32244e4b546dbbc42b907645b825dc4f5c7 --- /dev/null +++ b/meme_generator/memes/chase_train/images/96.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79d937ba58646d86c14c2927dd8b25139ac17e164d6aeb2141839407c6f1483f +size 11304 diff --git a/meme_generator/memes/chase_train/images/97.png b/meme_generator/memes/chase_train/images/97.png new file mode 100644 index 0000000000000000000000000000000000000000..efafe757ad1f4363fcd780327f6e6ec73d1ea817 --- /dev/null +++ b/meme_generator/memes/chase_train/images/97.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05076aa66f322360ea3efc6a56a704f260d1c75ab17238fa249e94f9fc3d890b +size 11097 diff --git a/meme_generator/memes/chase_train/images/98.png b/meme_generator/memes/chase_train/images/98.png new file mode 100644 index 0000000000000000000000000000000000000000..261f77fc3ebd39ecc3ac056002b2a37b8e68a3ad --- /dev/null +++ b/meme_generator/memes/chase_train/images/98.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5595af7277f6493151611398db3fc46744ee7f1d9b3170b0db06f5e0fa989e5 +size 11852 diff --git a/meme_generator/memes/chase_train/images/99.png b/meme_generator/memes/chase_train/images/99.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ebcee4e3a2a7fcd0eb769d39b333e3bb58c853 --- /dev/null +++ b/meme_generator/memes/chase_train/images/99.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:360654270e985e640266e01d6dfb5feba0ea67709f687ff8e04da383abc4916a +size 10945 diff --git a/meme_generator/memes/china_flag/images/0.png b/meme_generator/memes/china_flag/images/0.png index e2755ae97e7fa1d1c665498814c32d7b33341fb5..76c02cd583fa781f1c6b2dc2a785368fed05a6a8 100644 Binary files a/meme_generator/memes/china_flag/images/0.png and b/meme_generator/memes/china_flag/images/0.png differ diff --git a/meme_generator/memes/clown/__init__.py b/meme_generator/memes/clown/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..c0f50bac82b991771f158df1b288a92da9f7c914 --- /dev/null +++ b/meme_generator/memes/clown/__init__.py @@ -0,0 +1,72 @@ +from dataclasses import dataclass +from pathlib import Path +from typing import List, Tuple + +from pil_utils import BuildImage +from pydantic import Field + +from meme_generator import MemeArgsModel, MemeArgsParser, MemeArgsType, add_meme + +IMG_DIR = Path(__file__).parent / "images" +CIRCLE_PATH = IMG_DIR / "circle.png" +PERSON_PATH = IMG_DIR / "person.png" + + +@dataclass +class PicInfo: + frame_path: Path + avatar_size: Tuple[int, int] + avatar_rotate: int + avatar_left_center: Tuple[int, int] # top right 直接算镜像 + + +CIRCLE_INFO = PicInfo(CIRCLE_PATH, (554, 442), 26, (153, 341)) +PERSON_INFO = PicInfo(PERSON_PATH, (434, 467), 26, (174, 378)) + + +HELP_PERSON = "是否使用爷爷头轮廓" + +parser = MemeArgsParser(prefix_chars="-/") +parser.add_argument("--person", "/爷", action="store_true", help=HELP_PERSON) + + +class Model(MemeArgsModel): + person: bool = Field(False, description=HELP_PERSON) + + +def clown(images: List[BuildImage], texts, args: Model): + info = PERSON_INFO if args.person else CIRCLE_INFO + avatar = images[0].convert("RGBA").resize(info.avatar_size, keep_ratio=True) + frame = BuildImage.open(info.frame_path).convert("RGBA") + + img_size = frame.size + bg = BuildImage.new("RGBA", img_size, (255, 255, 255)) # white bg + + left_part = avatar.crop( + (0, 0, avatar.width // 2, avatar.height), + ).rotate(info.avatar_rotate, expand=True) + right_part = avatar.crop( + (avatar.width // 2, 0, avatar.width, avatar.height) + ).rotate(-info.avatar_rotate, expand=True) + + img_w = bg.width + left_center_x, center_y = info.avatar_left_center # 左半边中心 x, 中心 y + left_top_x = left_center_x - left_part.width // 2 # 左半边左上 x + top_y = center_y - left_part.height // 2 # 左上 y + right_top_x = img_w - left_top_x - right_part.width # 右半边左上 x + + bg.paste(left_part, (left_top_x, top_y), alpha=True) + bg.paste(right_part, (right_top_x, top_y), alpha=True) + bg.paste(frame, alpha=True) + + return bg.save_png() + + +add_meme( + "clown", + clown, + min_images=1, + max_images=1, + args_type=MemeArgsType(parser, Model, [Model(person=False), Model(person=True)]), + keywords=["小丑"], +) diff --git a/meme_generator/memes/clown/images/circle.png b/meme_generator/memes/clown/images/circle.png new file mode 100644 index 0000000000000000000000000000000000000000..5ea7526b03eefe4fa38c99b085ea55bc10f04c8a --- /dev/null +++ b/meme_generator/memes/clown/images/circle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3b0c557dec21f3616715e5c2df5f5fc0c5ea0b5b495d12cd6fbc9c4015024ef +size 414934 diff --git a/meme_generator/memes/clown/images/person.png b/meme_generator/memes/clown/images/person.png new file mode 100644 index 0000000000000000000000000000000000000000..3178d96b74e7f745668708ba7d500cb85f1d9e9a --- /dev/null +++ b/meme_generator/memes/clown/images/person.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b037b43a99803910942e85c27405d4f7599ea79b2412e187394d62f59716c2ab +size 450516 diff --git a/meme_generator/memes/confuse/images/0.png b/meme_generator/memes/confuse/images/0.png index bbd8f6be4c9ddcf74fd8b5e4279706c8133a5e34..a3f89ced58d0d7a010de4c6bd3cc8e36fc90babc 100644 Binary files a/meme_generator/memes/confuse/images/0.png and b/meme_generator/memes/confuse/images/0.png differ diff --git a/meme_generator/memes/confuse/images/1.png b/meme_generator/memes/confuse/images/1.png index 099cc888679a241deea485d6a616e779031701c0..cf7216aac0a1e96fe0b1d794f3671f6520bfb6ab 100644 Binary files a/meme_generator/memes/confuse/images/1.png and b/meme_generator/memes/confuse/images/1.png differ diff --git a/meme_generator/memes/confuse/images/10.png b/meme_generator/memes/confuse/images/10.png index 2e15373c3ab4038330c7b37490117a302e1e748e..3453852822e961b1919b61b114736fdb0fbe5146 100644 Binary files a/meme_generator/memes/confuse/images/10.png and b/meme_generator/memes/confuse/images/10.png differ diff --git a/meme_generator/memes/confuse/images/11.png b/meme_generator/memes/confuse/images/11.png index 6ceed0615ca6481f8df27809fed1c6ed740c17fa..66628c476f67835f9df45f8b6afd207f2e8ee729 100644 Binary files a/meme_generator/memes/confuse/images/11.png and b/meme_generator/memes/confuse/images/11.png differ diff --git a/meme_generator/memes/confuse/images/12.png b/meme_generator/memes/confuse/images/12.png index b70ec1e622237e95465877728612d1e1718c64ac..23d8a7a374297a196a3cd90c813097eaa456db35 100644 Binary files a/meme_generator/memes/confuse/images/12.png and b/meme_generator/memes/confuse/images/12.png differ diff --git a/meme_generator/memes/confuse/images/13.png b/meme_generator/memes/confuse/images/13.png index ba0f94187e1c4490ba8138db7c5d5f3d8b54781e..672a0ffc2370f4c6db3297ae61d4ab6cc0d3d8c6 100644 Binary files a/meme_generator/memes/confuse/images/13.png and b/meme_generator/memes/confuse/images/13.png differ diff --git a/meme_generator/memes/confuse/images/14.png b/meme_generator/memes/confuse/images/14.png index 76a9f387e04fd9a62531e1289502e58f6932317f..ca5fee0fd3a9d7431e9c71d39b4cc34b6b922efa 100644 Binary files a/meme_generator/memes/confuse/images/14.png and b/meme_generator/memes/confuse/images/14.png differ diff --git a/meme_generator/memes/confuse/images/15.png b/meme_generator/memes/confuse/images/15.png index 3b92ced411e9c1aed51cddb745d2a33e490a2cff..14aca22793195307c56555c20a88217eaf92a021 100644 Binary files a/meme_generator/memes/confuse/images/15.png and b/meme_generator/memes/confuse/images/15.png differ diff --git a/meme_generator/memes/confuse/images/16.png b/meme_generator/memes/confuse/images/16.png index a584fff2d457fa05992d9c4545514375ceb86f0b..ffaec65e95e9de89565e623b34a4130f57e38ebc 100644 Binary files a/meme_generator/memes/confuse/images/16.png and b/meme_generator/memes/confuse/images/16.png differ diff --git a/meme_generator/memes/confuse/images/17.png b/meme_generator/memes/confuse/images/17.png index 88f6d62436bf9362bc9a6d11c35f444b2243502b..228943a1f774316bb9dac89c22a6d5acf8915fbc 100644 Binary files a/meme_generator/memes/confuse/images/17.png and b/meme_generator/memes/confuse/images/17.png differ diff --git a/meme_generator/memes/confuse/images/18.png b/meme_generator/memes/confuse/images/18.png index 2a111dcd94e6e768dba1e86f8c4fea7661b131fe..17dc6c1a23af2eb54f80e1df5a70e99913c251a9 100644 Binary files a/meme_generator/memes/confuse/images/18.png and b/meme_generator/memes/confuse/images/18.png differ diff --git a/meme_generator/memes/confuse/images/19.png b/meme_generator/memes/confuse/images/19.png index 1098e475b0e40e0c1ab740f821c6b9dbcf2d6f14..56033f0c6877294aa023768a3f602e5bbbf4a5da 100644 Binary files a/meme_generator/memes/confuse/images/19.png and b/meme_generator/memes/confuse/images/19.png differ diff --git a/meme_generator/memes/confuse/images/2.png b/meme_generator/memes/confuse/images/2.png index a0e10280c35defdd6420852eb3517c9c47a4c322..74fa196398dcf52b1273ad9a5b9c439b8eb8834c 100644 Binary files a/meme_generator/memes/confuse/images/2.png and b/meme_generator/memes/confuse/images/2.png differ diff --git a/meme_generator/memes/confuse/images/20.png b/meme_generator/memes/confuse/images/20.png index 83a8cb97d4dfc1e79a7def2136f1180f2ad09f0d..e51d0f7cb01c4024c477941f381788f760c886c9 100644 Binary files a/meme_generator/memes/confuse/images/20.png and b/meme_generator/memes/confuse/images/20.png differ diff --git a/meme_generator/memes/confuse/images/21.png b/meme_generator/memes/confuse/images/21.png index 44e3a4e3e96871e542e02c1e44593f7a6a59333e..8a66a586d7e566b5bbd18342b1ea2c52cd568437 100644 Binary files a/meme_generator/memes/confuse/images/21.png and b/meme_generator/memes/confuse/images/21.png differ diff --git a/meme_generator/memes/confuse/images/22.png b/meme_generator/memes/confuse/images/22.png index 1d358207c8ed67d20a41c6a4b1b0886551b6b412..583ca38ce1e6e46ce338fc6ff102e32316efb995 100644 Binary files a/meme_generator/memes/confuse/images/22.png and b/meme_generator/memes/confuse/images/22.png differ diff --git a/meme_generator/memes/confuse/images/23.png b/meme_generator/memes/confuse/images/23.png index 1800f20b40abde4f8f4710437438f75124addadb..d22903f424e99607e81a49383c2a5630bda327ae 100644 Binary files a/meme_generator/memes/confuse/images/23.png and b/meme_generator/memes/confuse/images/23.png differ diff --git a/meme_generator/memes/confuse/images/24.png b/meme_generator/memes/confuse/images/24.png index 90e8e02afc73ff602e49c87cc37c1326a6caf0e9..c8a85062cc4bf9563ce88f10c6982fd59b177e94 100644 Binary files a/meme_generator/memes/confuse/images/24.png and b/meme_generator/memes/confuse/images/24.png differ diff --git a/meme_generator/memes/confuse/images/25.png b/meme_generator/memes/confuse/images/25.png index 0d62891229f227a7dd8b51b9bbe5f96251ac82ef..4841596345bc0584ebd3edd61d01225db1cf315b 100644 Binary files a/meme_generator/memes/confuse/images/25.png and b/meme_generator/memes/confuse/images/25.png differ diff --git a/meme_generator/memes/confuse/images/26.png b/meme_generator/memes/confuse/images/26.png index 98031f17d66d806ccf26cdf721758bbe07467164..d9f0a292993cb4faa32104fe69bc4be31f2f42b0 100644 Binary files a/meme_generator/memes/confuse/images/26.png and b/meme_generator/memes/confuse/images/26.png differ diff --git a/meme_generator/memes/confuse/images/27.png b/meme_generator/memes/confuse/images/27.png index 8645f6cdaac15c7c345393751fc8a8e7d5c17528..55741f9be58ce252c8a2511f7d1f7a09ebf5e299 100644 Binary files a/meme_generator/memes/confuse/images/27.png and b/meme_generator/memes/confuse/images/27.png differ diff --git a/meme_generator/memes/confuse/images/28.png b/meme_generator/memes/confuse/images/28.png index ee22b8d2fd58687746ba08580931fc026262b19e..2bd261de4341da9526d9e07aefc19716320f6855 100644 Binary files a/meme_generator/memes/confuse/images/28.png and b/meme_generator/memes/confuse/images/28.png differ diff --git a/meme_generator/memes/confuse/images/29.png b/meme_generator/memes/confuse/images/29.png index 5b2e00a2b84080a40a7f806c58f0ec184c8788e5..3b423a56edc6c08073f69e3eb5250204e177adf7 100644 Binary files a/meme_generator/memes/confuse/images/29.png and b/meme_generator/memes/confuse/images/29.png differ diff --git a/meme_generator/memes/confuse/images/3.png b/meme_generator/memes/confuse/images/3.png index 48beacae35c58dc7d5f0068bd5f5c5bd3e160853..5c5758a63ccedc28d30c0e2f184661bcb66e5f7d 100644 Binary files a/meme_generator/memes/confuse/images/3.png and b/meme_generator/memes/confuse/images/3.png differ diff --git a/meme_generator/memes/confuse/images/30.png b/meme_generator/memes/confuse/images/30.png index c97e415d92dde8dfbd1c224f5b426881a8839e30..9c66b9bac4f0ee10bc22d4b91fe9ec6b1a7642f5 100644 Binary files a/meme_generator/memes/confuse/images/30.png and b/meme_generator/memes/confuse/images/30.png differ diff --git a/meme_generator/memes/confuse/images/31.png b/meme_generator/memes/confuse/images/31.png index 67c5119a25341c373533136829dafa70e8786856..a86535de2ed494b0d91f9d4074a21158f8472f7e 100644 Binary files a/meme_generator/memes/confuse/images/31.png and b/meme_generator/memes/confuse/images/31.png differ diff --git a/meme_generator/memes/confuse/images/32.png b/meme_generator/memes/confuse/images/32.png index 1d73273866a933701d7d2977a99159150ff0f44c..446fd65a0c47bc68b4a9bc61d503777d95c8d2fe 100644 Binary files a/meme_generator/memes/confuse/images/32.png and b/meme_generator/memes/confuse/images/32.png differ diff --git a/meme_generator/memes/confuse/images/33.png b/meme_generator/memes/confuse/images/33.png index 703e4d615f8029d7e78b2380a8f006360916468b..d3d11090c27e769b773fe128bc37b85b283aeced 100644 Binary files a/meme_generator/memes/confuse/images/33.png and b/meme_generator/memes/confuse/images/33.png differ diff --git a/meme_generator/memes/confuse/images/34.png b/meme_generator/memes/confuse/images/34.png index 53110a504c2e15805512199c29e37353de500441..d5f9b398f4de49ffde3df4299e418bb0da809be8 100644 Binary files a/meme_generator/memes/confuse/images/34.png and b/meme_generator/memes/confuse/images/34.png differ diff --git a/meme_generator/memes/confuse/images/35.png b/meme_generator/memes/confuse/images/35.png index cce72ca08c038bc3da74845d27a663f38494695d..ecb67e79c0dfeaec382427808cc5abc33111ef1d 100644 Binary files a/meme_generator/memes/confuse/images/35.png and b/meme_generator/memes/confuse/images/35.png differ diff --git a/meme_generator/memes/confuse/images/36.png b/meme_generator/memes/confuse/images/36.png index 40e3a1b3ac9fe61227774f407a03191cb471ec9d..74027dcc05967daca9be047bb6ba108938d72ff7 100644 Binary files a/meme_generator/memes/confuse/images/36.png and b/meme_generator/memes/confuse/images/36.png differ diff --git a/meme_generator/memes/confuse/images/37.png b/meme_generator/memes/confuse/images/37.png index b0dca66b7ad53b937d9bc2b01779dd4646ed882d..2c7fcf1fda4323b2d9bfb2553567d2dd12fb488a 100644 Binary files a/meme_generator/memes/confuse/images/37.png and b/meme_generator/memes/confuse/images/37.png differ diff --git a/meme_generator/memes/confuse/images/38.png b/meme_generator/memes/confuse/images/38.png index 52c0669ca2086dd0a0c0a2e7410496556e452ce6..b811495f5d34df5454b9657d8d1981c4bf1d03a5 100644 Binary files a/meme_generator/memes/confuse/images/38.png and b/meme_generator/memes/confuse/images/38.png differ diff --git a/meme_generator/memes/confuse/images/39.png b/meme_generator/memes/confuse/images/39.png index c022d1294940cf025be674628476f6e43ff7fceb..4aad6b31153fab0f9b7f64574cbe0643867746c6 100644 Binary files a/meme_generator/memes/confuse/images/39.png and b/meme_generator/memes/confuse/images/39.png differ diff --git a/meme_generator/memes/confuse/images/4.png b/meme_generator/memes/confuse/images/4.png index e6ca56f2b1d07324785f86ca9b3776d38e6e818b..647170a48fc4618136c5dae9e19e3cb0fee126d6 100644 Binary files a/meme_generator/memes/confuse/images/4.png and b/meme_generator/memes/confuse/images/4.png differ diff --git a/meme_generator/memes/confuse/images/40.png b/meme_generator/memes/confuse/images/40.png index c425860d5815579a45b126e5bd37286ed9159a81..012fc473a8473fc83b1d604f43193478c98f0b0a 100644 Binary files a/meme_generator/memes/confuse/images/40.png and b/meme_generator/memes/confuse/images/40.png differ diff --git a/meme_generator/memes/confuse/images/41.png b/meme_generator/memes/confuse/images/41.png index 2a112e3a3e5d0f06e4b030183712a76ba7749a88..15a7e0b5b203e6884690b2b3656060fce9bab67c 100644 Binary files a/meme_generator/memes/confuse/images/41.png and b/meme_generator/memes/confuse/images/41.png differ diff --git a/meme_generator/memes/confuse/images/42.png b/meme_generator/memes/confuse/images/42.png index e88f2c62a125687e6564422a02a033b0dcf062df..4889a01d6b6a733dea19d34caec5af284e61bd64 100644 Binary files a/meme_generator/memes/confuse/images/42.png and b/meme_generator/memes/confuse/images/42.png differ diff --git a/meme_generator/memes/confuse/images/43.png b/meme_generator/memes/confuse/images/43.png index 743b9da47f88d662ea488e2cce0135f151d434b5..d824e9bb3155af5e96064d677622491550a54fbb 100644 Binary files a/meme_generator/memes/confuse/images/43.png and b/meme_generator/memes/confuse/images/43.png differ diff --git a/meme_generator/memes/confuse/images/44.png b/meme_generator/memes/confuse/images/44.png index 8032b7b8fea0da31d8986208e97a3d57feee7662..3f2fa24a2ba1d66d060a1f1f7b7efda204231a70 100644 Binary files a/meme_generator/memes/confuse/images/44.png and b/meme_generator/memes/confuse/images/44.png differ diff --git a/meme_generator/memes/confuse/images/45.png b/meme_generator/memes/confuse/images/45.png index 5f1d17ac2b5c4cc355b078743ff0e20e19592cc5..58415ae92e2f26bdb04501bbb143e67c15336b38 100644 Binary files a/meme_generator/memes/confuse/images/45.png and b/meme_generator/memes/confuse/images/45.png differ diff --git a/meme_generator/memes/confuse/images/46.png b/meme_generator/memes/confuse/images/46.png index 244fe7c9b52ab2eda8acaac17b8ef4574a06743b..25de9244b92b8659353dfb6a7132281252a352da 100644 Binary files a/meme_generator/memes/confuse/images/46.png and b/meme_generator/memes/confuse/images/46.png differ diff --git a/meme_generator/memes/confuse/images/47.png b/meme_generator/memes/confuse/images/47.png index 19e3c70c873e511b9db9bdcadc3ecb55f991b83d..8c93fb7c01cc7388779d124e0f22bc8669e73f78 100644 Binary files a/meme_generator/memes/confuse/images/47.png and b/meme_generator/memes/confuse/images/47.png differ diff --git a/meme_generator/memes/confuse/images/48.png b/meme_generator/memes/confuse/images/48.png index b89ddd5433d7cfa75c5a85d64ce6912f44a20b9f..e9950d6b918761bc0e268de28f6a074d2932ba6b 100644 Binary files a/meme_generator/memes/confuse/images/48.png and b/meme_generator/memes/confuse/images/48.png differ diff --git a/meme_generator/memes/confuse/images/49.png b/meme_generator/memes/confuse/images/49.png index 842636eaacff9fb7dbb8dc976487208ebf5ee2bf..78e2c1d266bbec89d3fa87fbe47c9b4dc791311f 100644 Binary files a/meme_generator/memes/confuse/images/49.png and b/meme_generator/memes/confuse/images/49.png differ diff --git a/meme_generator/memes/confuse/images/5.png b/meme_generator/memes/confuse/images/5.png index bc369fcff0040ac3daed89d2aab2855820679d5a..ebe1cfa020aa6d00c98d5eacdf2485e7e083deb3 100644 Binary files a/meme_generator/memes/confuse/images/5.png and b/meme_generator/memes/confuse/images/5.png differ diff --git a/meme_generator/memes/confuse/images/50.png b/meme_generator/memes/confuse/images/50.png index bf8bcf342dcf907073b75ce479c5eeeac37e3ad7..c54264590ea1f7067b78a18d10eae9ca22698427 100644 Binary files a/meme_generator/memes/confuse/images/50.png and b/meme_generator/memes/confuse/images/50.png differ diff --git a/meme_generator/memes/confuse/images/51.png b/meme_generator/memes/confuse/images/51.png index 1eecbeecb12b237bd2824c12a665ca8fa774cc5f..17f74bd581adefc77ba1d3f617740fc5f1859a3e 100644 Binary files a/meme_generator/memes/confuse/images/51.png and b/meme_generator/memes/confuse/images/51.png differ diff --git a/meme_generator/memes/confuse/images/52.png b/meme_generator/memes/confuse/images/52.png index add49948c9d22fb4956f69767ffc6ef4532b8700..46424d1f5009d2934a702d932dfaddb1bf32f42c 100644 Binary files a/meme_generator/memes/confuse/images/52.png and b/meme_generator/memes/confuse/images/52.png differ diff --git a/meme_generator/memes/confuse/images/53.png b/meme_generator/memes/confuse/images/53.png index 605cc7a66bd43b5d7515f71e6cece93d2df1f60b..ea260f82f5ba90836eb692df5b06aada788de9d9 100644 Binary files a/meme_generator/memes/confuse/images/53.png and b/meme_generator/memes/confuse/images/53.png differ diff --git a/meme_generator/memes/confuse/images/54.png b/meme_generator/memes/confuse/images/54.png index 8918066d38655eb10c642a39d2132c74cf5b2544..3d47f58c3df18d9fc7f2f8c8dc58508d0e337637 100644 Binary files a/meme_generator/memes/confuse/images/54.png and b/meme_generator/memes/confuse/images/54.png differ diff --git a/meme_generator/memes/confuse/images/55.png b/meme_generator/memes/confuse/images/55.png index c3ca773fdf26dd75ab73603244ec548538941030..b45bb7cf24ab77d6a72a846e746becc60e5cfba3 100644 Binary files a/meme_generator/memes/confuse/images/55.png and b/meme_generator/memes/confuse/images/55.png differ diff --git a/meme_generator/memes/confuse/images/56.png b/meme_generator/memes/confuse/images/56.png index 64e4c09602a37961976014fcb404e4b2f59a808f..8ee6efa6ff70e41cc015aeec756f5d0d3ca54538 100644 Binary files a/meme_generator/memes/confuse/images/56.png and b/meme_generator/memes/confuse/images/56.png differ diff --git a/meme_generator/memes/confuse/images/57.png b/meme_generator/memes/confuse/images/57.png index 622439f7c82a4c59b4cb00dc67b98d03136b6f22..5c2c6e3918d7e37300e04199937216580975db1e 100644 Binary files a/meme_generator/memes/confuse/images/57.png and b/meme_generator/memes/confuse/images/57.png differ diff --git a/meme_generator/memes/confuse/images/58.png b/meme_generator/memes/confuse/images/58.png index 02a23a2f4d48d60b0070ba9f6f411f2190860a9a..f5248fccc0e41206f2c5598f4757b70a3721a6f5 100644 Binary files a/meme_generator/memes/confuse/images/58.png and b/meme_generator/memes/confuse/images/58.png differ diff --git a/meme_generator/memes/confuse/images/59.png b/meme_generator/memes/confuse/images/59.png index 7d3e10c1f8712f5e2331b0d6179c3a2069921a9e..52da5610bd19a100c5e4e05ad7672bef09eb4e99 100644 Binary files a/meme_generator/memes/confuse/images/59.png and b/meme_generator/memes/confuse/images/59.png differ diff --git a/meme_generator/memes/confuse/images/6.png b/meme_generator/memes/confuse/images/6.png index 3dc2e19ba3b58248d21b9496d53849d842c14d88..381e5e9c5626f79d7edf1233b46ac99c120b08b6 100644 Binary files a/meme_generator/memes/confuse/images/6.png and b/meme_generator/memes/confuse/images/6.png differ diff --git a/meme_generator/memes/confuse/images/60.png b/meme_generator/memes/confuse/images/60.png index daf73ac3e5950757e3f6993115cdd32864c91f4c..bb11fa2cd6f4bd7cf2128f2e7d7f05a1d4cdd81a 100644 Binary files a/meme_generator/memes/confuse/images/60.png and b/meme_generator/memes/confuse/images/60.png differ diff --git a/meme_generator/memes/confuse/images/61.png b/meme_generator/memes/confuse/images/61.png index b398747d4a27ef57941046b4776b4304b2ddddae..42f3b1636a0429644a779593b88d47bcf76d499b 100644 Binary files a/meme_generator/memes/confuse/images/61.png and b/meme_generator/memes/confuse/images/61.png differ diff --git a/meme_generator/memes/confuse/images/62.png b/meme_generator/memes/confuse/images/62.png index ef75263d2ff358dd108cff09de5778a0e2f96560..6c21f7a38c18f5f6cfaf12ebc24b607c5c4cf86d 100644 Binary files a/meme_generator/memes/confuse/images/62.png and b/meme_generator/memes/confuse/images/62.png differ diff --git a/meme_generator/memes/confuse/images/63.png b/meme_generator/memes/confuse/images/63.png index 1d7bb0c61b541853b8c35e4f1861b7e3bb52fdad..d75ef0a3ecc42da33e37c4f24bc232b60b8e9ea8 100644 Binary files a/meme_generator/memes/confuse/images/63.png and b/meme_generator/memes/confuse/images/63.png differ diff --git a/meme_generator/memes/confuse/images/64.png b/meme_generator/memes/confuse/images/64.png index 10e54fd3f0fd495fcfc6d25978ef21b3a434692f..f1d04473a9258a0490389bfc89331ad63c542cdb 100644 Binary files a/meme_generator/memes/confuse/images/64.png and b/meme_generator/memes/confuse/images/64.png differ diff --git a/meme_generator/memes/confuse/images/65.png b/meme_generator/memes/confuse/images/65.png index b3170785d1e402652d6c13e5f46f7ada344b9701..926cbdaca0649de3326bec52579150a58d0ceae9 100644 Binary files a/meme_generator/memes/confuse/images/65.png and b/meme_generator/memes/confuse/images/65.png differ diff --git a/meme_generator/memes/confuse/images/66.png b/meme_generator/memes/confuse/images/66.png index ee96b51f9fa6cb70f581676d2eb18ec21d4ea0bb..be1dbcda81e4324a6f2f70dd10c76fabe73ea644 100644 Binary files a/meme_generator/memes/confuse/images/66.png and b/meme_generator/memes/confuse/images/66.png differ diff --git a/meme_generator/memes/confuse/images/67.png b/meme_generator/memes/confuse/images/67.png index bede24344ff07047458d94189ac72618fe59d6b3..7ab4ab026f1eca08dee2c0d7e4a022c02e9ab321 100644 Binary files a/meme_generator/memes/confuse/images/67.png and b/meme_generator/memes/confuse/images/67.png differ diff --git a/meme_generator/memes/confuse/images/68.png b/meme_generator/memes/confuse/images/68.png index 4761e8deb7631f54e5c8641176d3ab1f9ccee785..b5d4ad8544835e5365cf39906c33b9a92ba2ff2e 100644 Binary files a/meme_generator/memes/confuse/images/68.png and b/meme_generator/memes/confuse/images/68.png differ diff --git a/meme_generator/memes/confuse/images/69.png b/meme_generator/memes/confuse/images/69.png index 6c7ea469f041d6ec000eed75c588c1d9cbbc1d12..cc524ed4f37a294e5bbf1796a4d5cc071e78e1c6 100644 Binary files a/meme_generator/memes/confuse/images/69.png and b/meme_generator/memes/confuse/images/69.png differ diff --git a/meme_generator/memes/confuse/images/7.png b/meme_generator/memes/confuse/images/7.png index a5d75bac0fd973ab1dbb72e12e153f8c4187b06b..48c8384d8970686bc3bedd1c65f5990d18d42568 100644 Binary files a/meme_generator/memes/confuse/images/7.png and b/meme_generator/memes/confuse/images/7.png differ diff --git a/meme_generator/memes/confuse/images/70.png b/meme_generator/memes/confuse/images/70.png index 6a2c52b3cd844af82a690a1ef0b091e748508c4a..63b92cd9058ddd3174f46f410686ee496353368f 100644 Binary files a/meme_generator/memes/confuse/images/70.png and b/meme_generator/memes/confuse/images/70.png differ diff --git a/meme_generator/memes/confuse/images/71.png b/meme_generator/memes/confuse/images/71.png index 47d6083b257f01d5d8354e7c9c92cfd94463a864..d603b7ce50b3589faafdd244743c738d115cc4a0 100644 Binary files a/meme_generator/memes/confuse/images/71.png and b/meme_generator/memes/confuse/images/71.png differ diff --git a/meme_generator/memes/confuse/images/72.png b/meme_generator/memes/confuse/images/72.png index bfcb3fe4732f1318cea71e6549f5dcebd05732af..862e1a6f841caee0385f30a5ca1da8c0de98d49b 100644 Binary files a/meme_generator/memes/confuse/images/72.png and b/meme_generator/memes/confuse/images/72.png differ diff --git a/meme_generator/memes/confuse/images/73.png b/meme_generator/memes/confuse/images/73.png index 26b595c0fafb049f079ef25315b8b03d7f8f3878..b68e3332df127f8d54edaa60c2b705c5ce77b7ac 100644 Binary files a/meme_generator/memes/confuse/images/73.png and b/meme_generator/memes/confuse/images/73.png differ diff --git a/meme_generator/memes/confuse/images/74.png b/meme_generator/memes/confuse/images/74.png index cf7ba09939cea433a85d69e1d8cdeb66da030214..980b90825facc9f345689913a5c90c78955b1473 100644 Binary files a/meme_generator/memes/confuse/images/74.png and b/meme_generator/memes/confuse/images/74.png differ diff --git a/meme_generator/memes/confuse/images/75.png b/meme_generator/memes/confuse/images/75.png index ba5fa9b1aa8fc78da7ba6fb96f916761f86e648c..a831d04477b264d56f4a733f94b7c1d129b9500a 100644 Binary files a/meme_generator/memes/confuse/images/75.png and b/meme_generator/memes/confuse/images/75.png differ diff --git a/meme_generator/memes/confuse/images/76.png b/meme_generator/memes/confuse/images/76.png index 91a976d003d2fb7612019eb6c2ea482924a86f95..cfcae944edaa1114e64f22e1e2be6ae2c703749b 100644 Binary files a/meme_generator/memes/confuse/images/76.png and b/meme_generator/memes/confuse/images/76.png differ diff --git a/meme_generator/memes/confuse/images/77.png b/meme_generator/memes/confuse/images/77.png index 1c9e8b77843610aee5ce612b77ecf985ae0cb084..c8d94b5af133ccaefb1a85abc6d71881f74836b6 100644 Binary files a/meme_generator/memes/confuse/images/77.png and b/meme_generator/memes/confuse/images/77.png differ diff --git a/meme_generator/memes/confuse/images/78.png b/meme_generator/memes/confuse/images/78.png index 1779a0b8a3b3e82a7c4ee7627001554d22ff1888..6b5164fa86b8dc629e334202522fc0a40edd406c 100644 Binary files a/meme_generator/memes/confuse/images/78.png and b/meme_generator/memes/confuse/images/78.png differ diff --git a/meme_generator/memes/confuse/images/79.png b/meme_generator/memes/confuse/images/79.png index 75ff345443e7e4800bc77193874cffa52a44c8b2..ac414985209b8f2147c54b1b5e3237d9d56c9bba 100644 Binary files a/meme_generator/memes/confuse/images/79.png and b/meme_generator/memes/confuse/images/79.png differ diff --git a/meme_generator/memes/confuse/images/8.png b/meme_generator/memes/confuse/images/8.png index 97022192f8c938f7757b6336a7ef3b59e297fe5a..bb0e76410ca657294c9415b1f9092fdfdc2f2773 100644 Binary files a/meme_generator/memes/confuse/images/8.png and b/meme_generator/memes/confuse/images/8.png differ diff --git a/meme_generator/memes/confuse/images/80.png b/meme_generator/memes/confuse/images/80.png index 3dd0442a878b76811f1e510042d0dd6bbeb2784a..053286248d165833ed75db602bb270640c70c923 100644 Binary files a/meme_generator/memes/confuse/images/80.png and b/meme_generator/memes/confuse/images/80.png differ diff --git a/meme_generator/memes/confuse/images/81.png b/meme_generator/memes/confuse/images/81.png index d56f6798bb19e492649ef87de267aa4891f52e24..7f71af8da7be6669f3256fd5aaadc353fcef3d3c 100644 Binary files a/meme_generator/memes/confuse/images/81.png and b/meme_generator/memes/confuse/images/81.png differ diff --git a/meme_generator/memes/confuse/images/82.png b/meme_generator/memes/confuse/images/82.png index c5e1cddb36362837df6564b7b18085a5686147d3..f5fc4e18d900df8175cdbba0863b7304cadfed03 100644 Binary files a/meme_generator/memes/confuse/images/82.png and b/meme_generator/memes/confuse/images/82.png differ diff --git a/meme_generator/memes/confuse/images/83.png b/meme_generator/memes/confuse/images/83.png index b2c77a0f7a268339548630ecc8deb755056c1af2..de023baf14be4b81bbadf954f0d65e0eb0882a79 100644 Binary files a/meme_generator/memes/confuse/images/83.png and b/meme_generator/memes/confuse/images/83.png differ diff --git a/meme_generator/memes/confuse/images/84.png b/meme_generator/memes/confuse/images/84.png index e1bf800d55ca53b60dc62b0cbf074b6161a7afd8..b00c6de4806383c2835ea6df894d182e94e6b8b0 100644 Binary files a/meme_generator/memes/confuse/images/84.png and b/meme_generator/memes/confuse/images/84.png differ diff --git a/meme_generator/memes/confuse/images/85.png b/meme_generator/memes/confuse/images/85.png index cba7edb33fe07936b857a7921ee0f226f2c798fa..5713548caea42a1fbd346ceebd82bf541b8b76a0 100644 Binary files a/meme_generator/memes/confuse/images/85.png and b/meme_generator/memes/confuse/images/85.png differ diff --git a/meme_generator/memes/confuse/images/86.png b/meme_generator/memes/confuse/images/86.png index 332413ee15c0fef6c5d864efcb884ffb73f48aa5..4ae0ddf84b4bb21767c78337280362a8d5d3479a 100644 Binary files a/meme_generator/memes/confuse/images/86.png and b/meme_generator/memes/confuse/images/86.png differ diff --git a/meme_generator/memes/confuse/images/87.png b/meme_generator/memes/confuse/images/87.png index 1c1967891b6ba2625a8dd044680de1ccc8038d8c..54d2ff6f35245314c4cc46298b17e8cdb8379338 100644 Binary files a/meme_generator/memes/confuse/images/87.png and b/meme_generator/memes/confuse/images/87.png differ diff --git a/meme_generator/memes/confuse/images/88.png b/meme_generator/memes/confuse/images/88.png index 62273b9ac49123b3f72347769c7af069cf4dacc5..b105c4c490126860bc969ddaf55f485d99d0455b 100644 Binary files a/meme_generator/memes/confuse/images/88.png and b/meme_generator/memes/confuse/images/88.png differ diff --git a/meme_generator/memes/confuse/images/89.png b/meme_generator/memes/confuse/images/89.png index c58481e1057434c799105fcf61f314be6876d616..62aed8d783bec49892ec6d2e9f9db2eeef7ea85f 100644 Binary files a/meme_generator/memes/confuse/images/89.png and b/meme_generator/memes/confuse/images/89.png differ diff --git a/meme_generator/memes/confuse/images/9.png b/meme_generator/memes/confuse/images/9.png index a88e52b53b742b40cb9b43d9ba8960c932a426e7..ef6020e8538f2cdd959ec35e5cd96902749f17a2 100644 Binary files a/meme_generator/memes/confuse/images/9.png and b/meme_generator/memes/confuse/images/9.png differ diff --git a/meme_generator/memes/confuse/images/90.png b/meme_generator/memes/confuse/images/90.png index b0882ca9eaaae4f4685e17d9bf96346d81d74971..831bc7e354f3f88e9e1f08acfb480cd7af83cd6f 100644 Binary files a/meme_generator/memes/confuse/images/90.png and b/meme_generator/memes/confuse/images/90.png differ diff --git a/meme_generator/memes/confuse/images/91.png b/meme_generator/memes/confuse/images/91.png index 99c7c8618822fa3dd15a358d30e2b1e1e8c29d89..088dff63fc811e1c3e8cc578ebf9d6a9c45a7fcd 100644 Binary files a/meme_generator/memes/confuse/images/91.png and b/meme_generator/memes/confuse/images/91.png differ diff --git a/meme_generator/memes/confuse/images/92.png b/meme_generator/memes/confuse/images/92.png index 097978a524f3daf682e54a75ea0cb385e75ff072..de6c46b7dc8a83ef79fb315cfb5537e6b120b4f6 100644 Binary files a/meme_generator/memes/confuse/images/92.png and b/meme_generator/memes/confuse/images/92.png differ diff --git a/meme_generator/memes/confuse/images/93.png b/meme_generator/memes/confuse/images/93.png index 948ed37c0fe1c8ba336c5333989028f2568ab0ac..81afaccc69c36f76517eb141bf526e3812509732 100644 Binary files a/meme_generator/memes/confuse/images/93.png and b/meme_generator/memes/confuse/images/93.png differ diff --git a/meme_generator/memes/confuse/images/94.png b/meme_generator/memes/confuse/images/94.png index 29fac303eee9e68a717b14810bfdd2b1a40db6e5..2fdb148b3173a7893dcd7fda9938719fb545bfd6 100644 Binary files a/meme_generator/memes/confuse/images/94.png and b/meme_generator/memes/confuse/images/94.png differ diff --git a/meme_generator/memes/confuse/images/95.png b/meme_generator/memes/confuse/images/95.png index 59355b6790f7fc7fe91e73f374cf33a54b53d45e..056c4823b3c912749c4c95db7e06504afb363247 100644 Binary files a/meme_generator/memes/confuse/images/95.png and b/meme_generator/memes/confuse/images/95.png differ diff --git a/meme_generator/memes/confuse/images/96.png b/meme_generator/memes/confuse/images/96.png index e218a7d7369370093af2682412536fdb9bdcd41c..110ee6d832fb9c852c4ef64a6c2f7f1bf29ecfff 100644 Binary files a/meme_generator/memes/confuse/images/96.png and b/meme_generator/memes/confuse/images/96.png differ diff --git a/meme_generator/memes/confuse/images/97.png b/meme_generator/memes/confuse/images/97.png index bf57b52052c9ffd6b81edcf9467e8a65564297b6..e1e77b693a3f451816b6c5a8d4b4898fa0b54484 100644 Binary files a/meme_generator/memes/confuse/images/97.png and b/meme_generator/memes/confuse/images/97.png differ diff --git a/meme_generator/memes/confuse/images/98.png b/meme_generator/memes/confuse/images/98.png index beaa8bf7de13c3f9cf285d1c4c8012405566fd7f..5e22eb03e8d829b7c00d8c5009266cda25a28132 100644 Binary files a/meme_generator/memes/confuse/images/98.png and b/meme_generator/memes/confuse/images/98.png differ diff --git a/meme_generator/memes/confuse/images/99.png b/meme_generator/memes/confuse/images/99.png index 24fc104e1e00b42dc441f6e096f712edf8e92bff..e9ef5d874083fb2f9b8851a32d8b8332f0c032b7 100644 Binary files a/meme_generator/memes/confuse/images/99.png and b/meme_generator/memes/confuse/images/99.png differ diff --git a/meme_generator/memes/coupon/images/0.png b/meme_generator/memes/coupon/images/0.png index 22b42b311689d872cde2f386314dd0b3c19bc2e8..6ce06d4b4227d674ab35d02499b21cf489ee5b7f 100644 Binary files a/meme_generator/memes/coupon/images/0.png and b/meme_generator/memes/coupon/images/0.png differ diff --git a/meme_generator/memes/cover_face/images/0.png b/meme_generator/memes/cover_face/images/0.png index 2c6d982a39ce1e8b2e79a188ac03e7ed6a2dde48..84668371d5def3f649275db177555925a795ce87 100644 Binary files a/meme_generator/memes/cover_face/images/0.png and b/meme_generator/memes/cover_face/images/0.png differ diff --git a/meme_generator/memes/daynight/__init__.py b/meme_generator/memes/daynight/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8c6ac0ee11bc80a66e51217c567f2f32fffb9d0b --- /dev/null +++ b/meme_generator/memes/daynight/__init__.py @@ -0,0 +1,20 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def daynight(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((333, 360), keep_ratio=True) + img_ = images[1].convert("RGBA").resize((333, 360), keep_ratio=True) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img, (349, 0)) + frame.paste(img_, (349, 361)) + return frame.save_jpg() + + +add_meme("daynight", daynight, min_images=2, max_images=2, keywords=["白天黑夜", "白天晚上"]) diff --git a/meme_generator/memes/daynight/images/0.png b/meme_generator/memes/daynight/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..2c92fd5af7508893410e43d2ecc3b0ed03445e82 --- /dev/null +++ b/meme_generator/memes/daynight/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa1e76abeda7aecd36eff4f8215ffd66d9a4a62740bc7175a80646f0202a84b8 +size 58139 diff --git a/meme_generator/memes/decent_kiss/images/0.png b/meme_generator/memes/decent_kiss/images/0.png index 8f1e365c58c2a3708faf6a5a4878d679951a20d1..0adfb26543c5e20be3104ca118239e21e5ad09ea 100644 Binary files a/meme_generator/memes/decent_kiss/images/0.png and b/meme_generator/memes/decent_kiss/images/0.png differ diff --git a/meme_generator/memes/distracted/images/0.png b/meme_generator/memes/distracted/images/0.png index ec7a27d2c8242687b208494b1f250793dac037a9..86f876300adcd14d6ac4a18adbe832e5223d09dc 100644 Binary files a/meme_generator/memes/distracted/images/0.png and b/meme_generator/memes/distracted/images/0.png differ diff --git a/meme_generator/memes/distracted/images/1.png b/meme_generator/memes/distracted/images/1.png index a9a725d12eca553a8f2a8bdb992bf30f2fa3c47b..5ef17a0817acbbc9aafbb02a7f77c6788763c698 100644 Binary files a/meme_generator/memes/distracted/images/1.png and b/meme_generator/memes/distracted/images/1.png differ diff --git a/meme_generator/memes/distracted/images/2.png b/meme_generator/memes/distracted/images/2.png index 6205947b0c768e92fce1078f791bc6e81726ebf1..0cff48f9c8ca8545abf3e4a8f19896131631b42c 100644 Binary files a/meme_generator/memes/distracted/images/2.png and b/meme_generator/memes/distracted/images/2.png differ diff --git a/meme_generator/memes/distracted/images/3.png b/meme_generator/memes/distracted/images/3.png index 54817c8a13cb5360135d8f4351f65db3885fc645..5de996644254110b33bcf8f2de6956226dd55dda 100644 Binary files a/meme_generator/memes/distracted/images/3.png and b/meme_generator/memes/distracted/images/3.png differ diff --git a/meme_generator/memes/divorce/images/0.png b/meme_generator/memes/divorce/images/0.png index 2cedd0aa700107171d15d8e851688e0bb6f9c935..c7bb77fffcd9108ffaf09579ff3b56e786149288 100644 Binary files a/meme_generator/memes/divorce/images/0.png and b/meme_generator/memes/divorce/images/0.png differ diff --git a/meme_generator/memes/do/images/0.png b/meme_generator/memes/do/images/0.png index a4b74895c3faf36cdcd1cbf3bd5f89645659cc42..022f20dc809f398bce199c6f41c8ed839da477c9 100644 Binary files a/meme_generator/memes/do/images/0.png and b/meme_generator/memes/do/images/0.png differ diff --git a/meme_generator/memes/do/images/1.png b/meme_generator/memes/do/images/1.png index fd67a831fe8d454e0583906e9cec37f40e17da63..fe3f8004a76684b4e2642892199cca1e4246a90b 100644 Binary files a/meme_generator/memes/do/images/1.png and b/meme_generator/memes/do/images/1.png differ diff --git a/meme_generator/memes/do/images/2.png b/meme_generator/memes/do/images/2.png index 24aecc2f4d8b4825507140149582f64cbc33912b..84a871562a1ded9cb6c58f95a1d0bab583fa1847 100644 Binary files a/meme_generator/memes/do/images/2.png and b/meme_generator/memes/do/images/2.png differ diff --git a/meme_generator/memes/dog_dislike/__init__.py b/meme_generator/memes/dog_dislike/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..556ca18a3d95b3445d7b798d493fa452fdcad877 --- /dev/null +++ b/meme_generator/memes/dog_dislike/__init__.py @@ -0,0 +1,80 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +from pil_utils import BuildImage +from pydantic import Field + +from meme_generator import MemeArgsModel, MemeArgsParser, MemeArgsType, add_meme +from meme_generator.utils import save_gif + +img_dir = Path(__file__).parent / "images" + +help = "是否将图片变为圆形" + +parser = MemeArgsParser(prefix_chars="-/") +parser.add_argument("--circle", "/圆", action="store_true", help=help) + + +class Model(MemeArgsModel): + circle: bool = Field(False, description=help) + + +def dog_dislike(images: List[BuildImage], texts: List[str], args: Model): + location = [ + (36, 408), + (36, 410), + (40, 375), + (40, 355), + (36, 325), + (28, 305), + (28, 305), + (28, 305), + (28, 305), + (28, 285), + (28, 285), + (28, 285), + (28, 285), + (28, 290), + (30, 295), + (30, 300), + (30, 300), + (30, 300), + (30, 300), + (30, 300), + (30, 300), + (28, 298), + (26, 296), + (24, 294), + (28, 294), + (26, 294), + (24, 294), + (35, 294), + (115, 330), + (150, 355), + (180, 420), + (180, 450), + (150, 450), + (150, 450), + ] + head = images[0].convert("RGBA").resize((122, 122), keep_ratio=True) + if args.circle: + head = head.circle() + frames: List[IMG] = [] + for i in range(34): + frame = BuildImage.open(img_dir / f"{i}.png") + frame.paste(head, location[i], alpha=True) + frames.append(frame.image) + return save_gif(frames, 0.08) + + +add_meme( + "dog_dislike", + dog_dislike, + min_images=1, + max_images=1, + min_texts=0, + max_texts=0, + args_type=MemeArgsType(parser, Model, [Model(circle=False), Model(circle=True)]), + keywords=["狗都不玩"], +) diff --git a/meme_generator/memes/dog_dislike/images/0.png b/meme_generator/memes/dog_dislike/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..741ae5fe1fe4038eabd55c4557e211552b4a1f4b --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7ae17800389e4b907f610790aaa3cd9986b989034398ea468150a5686e198c2 +size 79872 diff --git a/meme_generator/memes/dog_dislike/images/1.png b/meme_generator/memes/dog_dislike/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..feef48464d69276f3be6ecf1408b46508fc67d0c --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97d7d001cbfff1934cb0e1760b10da19df43ebaae71ea85a671559327aa710f2 +size 81920 diff --git a/meme_generator/memes/dog_dislike/images/10.png b/meme_generator/memes/dog_dislike/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e41e7a5240e111a0e5d170ef310be7d108a9b4 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eada7865d2a75022c51dfb3151ff7d6fad0758af1a1bd8903e8d45f9ebb94e9e +size 86016 diff --git a/meme_generator/memes/dog_dislike/images/11.png b/meme_generator/memes/dog_dislike/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6cdc823397adf0c84be7a732fb57d278ed97e4 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78734b78c4d3418ab7d682dbfadc4181c397ae50a5a9755e1f90fa76a5944d4d +size 86016 diff --git a/meme_generator/memes/dog_dislike/images/12.png b/meme_generator/memes/dog_dislike/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..68e81999d7c8d850a5ef08d52faab10d816bbe4f --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a44f2ac79d54e3bcea0c47ae9226af0166146569431d615a4ec0aa4150dc8331 +size 86016 diff --git a/meme_generator/memes/dog_dislike/images/13.png b/meme_generator/memes/dog_dislike/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..b3935a3cdd2d137d5cb12a64e80414de4eef74f4 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5607506782ac9bdd2b9ea15e75f3cc7186ceaccd187d5fc772071cf0527fc130 +size 86016 diff --git a/meme_generator/memes/dog_dislike/images/14.png b/meme_generator/memes/dog_dislike/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..86d033a89008e954493626606732a0a83c5e87a6 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1d3ee2cfaa336ec96f4b21bcbf7eb8681f2bc1742a89c1c933032c277f9b830 +size 83968 diff --git a/meme_generator/memes/dog_dislike/images/15.png b/meme_generator/memes/dog_dislike/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..db90a142d7c34fc1ee47101ac0fe889d853406aa --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15ad384e0bb21bbd4b0754e35b182961fe412c31f23ec45f367043dcb965e653 +size 81920 diff --git a/meme_generator/memes/dog_dislike/images/16.png b/meme_generator/memes/dog_dislike/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..059492343d5f1f6243591866150c1836b9cee521 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee16a0446c39b911b422fbc0cf1fbf725be0425dce97abed99ba97f89e0bbe09 +size 83968 diff --git a/meme_generator/memes/dog_dislike/images/17.png b/meme_generator/memes/dog_dislike/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..06ff636a7ea16a3bdd3993f0c0108f41d0b7f470 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e5387282be0e83eab913008702923ac1adbad4f12ca1762fb643a12320cef84 +size 79872 diff --git a/meme_generator/memes/dog_dislike/images/18.png b/meme_generator/memes/dog_dislike/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..4bf45f29823e5227df6650f5e3c99411636a1238 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5dcf4653a9aae94e029e401cf013845c56dd3bf9ac24f7bea0b13f4bf1e3daf +size 83968 diff --git a/meme_generator/memes/dog_dislike/images/19.png b/meme_generator/memes/dog_dislike/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..a17d571290c8858ebeb7c4ad355dda245b20a863 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aa5da294cb2268e2e0fdf6bc0126009db7c3bafdde4fea62f6a589f21176085 +size 79872 diff --git a/meme_generator/memes/dog_dislike/images/2.png b/meme_generator/memes/dog_dislike/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..45048fd70bf02d44be02f147a9baa33d98a61767 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:604df3a1491f0319fe8974f2f9fbcbb7027f4e9850231c84076f69ebb744653f +size 81920 diff --git a/meme_generator/memes/dog_dislike/images/20.png b/meme_generator/memes/dog_dislike/images/20.png new file mode 100644 index 0000000000000000000000000000000000000000..2a58d5244e2c56465f7c87a39e4f9c739fe4abca --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00ecbff4250d131f46bde46ec778d99d2115971244b3d53661af6c1548c42b80 +size 79872 diff --git a/meme_generator/memes/dog_dislike/images/21.png b/meme_generator/memes/dog_dislike/images/21.png new file mode 100644 index 0000000000000000000000000000000000000000..5e4ed92964f0394b1c0a46b084ea522770d062bc --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e3b61ccca068604fcf5eebd0d3fb1c356aa8ae84b67333a3cf3f73ad282bb29 +size 79872 diff --git a/meme_generator/memes/dog_dislike/images/22.png b/meme_generator/memes/dog_dislike/images/22.png new file mode 100644 index 0000000000000000000000000000000000000000..bc23ff54e8ad4cf72402f69613799ab07ffdaa09 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:426665ab1cd9b2ca6c04b9e29288d07cfb69b8d57d166cc02b4bcb3b51f68b8e +size 77824 diff --git a/meme_generator/memes/dog_dislike/images/23.png b/meme_generator/memes/dog_dislike/images/23.png new file mode 100644 index 0000000000000000000000000000000000000000..b938468cb43358c94b7ac06710cdfca3fc5b4627 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dc92110183cc8ba4d393ac1ac32bf4fd31593b8c5bb17f4b2d320a5d709a04f +size 75776 diff --git a/meme_generator/memes/dog_dislike/images/24.png b/meme_generator/memes/dog_dislike/images/24.png new file mode 100644 index 0000000000000000000000000000000000000000..44eee47fb8c40e2eba2bdd3a45ec7c02de9816a5 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/24.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32c5b5d17f5dbaef5f6afad7b9fc9374f076db59ffb4c48511e58ba5ce9af23e +size 73728 diff --git a/meme_generator/memes/dog_dislike/images/25.png b/meme_generator/memes/dog_dislike/images/25.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed70da899efac310e2de85d8bf642410a0bc052 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/25.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dc8efae530b7aeccd52048f3f8e78556d5ac2d4e0bda18e531e8272271bf7d2 +size 75776 diff --git a/meme_generator/memes/dog_dislike/images/26.png b/meme_generator/memes/dog_dislike/images/26.png new file mode 100644 index 0000000000000000000000000000000000000000..58addd169d85564262278ef1b21ae274000ae7c5 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/26.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d23a1b547a75e383d816d2d12fdbe4ca410803f740fe3c453a06b81297b234d +size 81920 diff --git a/meme_generator/memes/dog_dislike/images/27.png b/meme_generator/memes/dog_dislike/images/27.png new file mode 100644 index 0000000000000000000000000000000000000000..16f79e0f00987b0f10ac7bd3731d51bd088e7068 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/27.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dae5eda1d350bf8913969706057afc8d1daab82a3476eba6840b5df811dea9f +size 81920 diff --git a/meme_generator/memes/dog_dislike/images/28.png b/meme_generator/memes/dog_dislike/images/28.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6056786b67eea340b102d0e84863c3cb7c3c8f --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/28.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3942d3ba6bf72d67e898e2f632883e19bc18fd451a2a3795a59df69f94deae47 +size 81920 diff --git a/meme_generator/memes/dog_dislike/images/29.png b/meme_generator/memes/dog_dislike/images/29.png new file mode 100644 index 0000000000000000000000000000000000000000..d38ae9e03add377a89c40a931a349443be290440 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/29.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:096a1b29d5a92d0b58bfb1e52bcc9a1980aa60bb791ce261f2d6b3e37ab4ec00 +size 90112 diff --git a/meme_generator/memes/dog_dislike/images/3.png b/meme_generator/memes/dog_dislike/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..33d437d39afa1191b16d5fe60b5f22630cf793b6 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bb3bc481770921a6909b16ba2d240179684115130b6a2b3e1f136472d40c5e2 +size 86016 diff --git a/meme_generator/memes/dog_dislike/images/30.png b/meme_generator/memes/dog_dislike/images/30.png new file mode 100644 index 0000000000000000000000000000000000000000..c168e46a7f5e111bfdf65eaf0f81113f8b079184 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/30.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92c711205c45fe6907a3e26d1cb7bf32806049d761bc3f87982ca5ec39d1f9e5 +size 79872 diff --git a/meme_generator/memes/dog_dislike/images/31.png b/meme_generator/memes/dog_dislike/images/31.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7951bf65b2a228b86c32ace1e499fda7b06864 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/31.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30b9990a1823a51c21ad16c3b55008df416ba2ba5deea075d57d1dc1c8f7e8a0 +size 81920 diff --git a/meme_generator/memes/dog_dislike/images/32.png b/meme_generator/memes/dog_dislike/images/32.png new file mode 100644 index 0000000000000000000000000000000000000000..a9b2af786bc8dac653df7a81711f71e23f87b766 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cc54176528f2a2071bfb4348234e404c9c0b2fec9005c6de029df94d4ae71f6 +size 79872 diff --git a/meme_generator/memes/dog_dislike/images/33.png b/meme_generator/memes/dog_dislike/images/33.png new file mode 100644 index 0000000000000000000000000000000000000000..5ba8599b039cfe08adbad11b607cda6cc0b67966 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/33.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad7c9da5c0386be06198af61fcb684da6f780da5f49610dfec515838e7e7a4ff +size 83968 diff --git a/meme_generator/memes/dog_dislike/images/4.png b/meme_generator/memes/dog_dislike/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..e793105cc284a1d5a8503f90c98c083b6811b6c3 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de8eb8f648f9b959c53a9b606e301b70e901133880d23be6458de1bbe616c76a +size 86016 diff --git a/meme_generator/memes/dog_dislike/images/5.png b/meme_generator/memes/dog_dislike/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..e8c1c742642be056a4c46c9e8fd67f596e36a7ab --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8a9011a9470b83d9107bdedb95922a3a7a7910ac57d4ec55ad31d448bb7f3ed +size 86016 diff --git a/meme_generator/memes/dog_dislike/images/6.png b/meme_generator/memes/dog_dislike/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..e83117afb6d3d2cacb1c062c2a0c364f3e6be174 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3261199bba834533597cfd945ef6a483ff515684becfe52aa3520106a0a332a3 +size 83968 diff --git a/meme_generator/memes/dog_dislike/images/7.png b/meme_generator/memes/dog_dislike/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d0edf8d23a40572e77013304c500cffcc90f84 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:121981fee843c61ef7ee856fdf7d9588e103e6babd54b2e7ed1be5015bc839df +size 86016 diff --git a/meme_generator/memes/dog_dislike/images/8.png b/meme_generator/memes/dog_dislike/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad6cb6168e4ab4aefdb03715921f66acaa186f7 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b96cc7f0817a5eecfd83a0382c9e867e4b04804b2b001b6513be90430c3bfdc +size 83968 diff --git a/meme_generator/memes/dog_dislike/images/9.png b/meme_generator/memes/dog_dislike/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..c53efb8260c1ca5f859f14407af0c4e1d28838a8 --- /dev/null +++ b/meme_generator/memes/dog_dislike/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ed7ac7eb977da76cfcc4523ff172b1a52b0f5092a1ee53aba796c26aadccd58 +size 86016 diff --git a/meme_generator/memes/dont_go_near/images/0.png b/meme_generator/memes/dont_go_near/images/0.png index 0e50de4722e47e900a07811604638945aab42547..aea6f65eac3d3f891f3ca6ac715f7893f361632f 100644 Binary files a/meme_generator/memes/dont_go_near/images/0.png and b/meme_generator/memes/dont_go_near/images/0.png differ diff --git a/meme_generator/memes/dont_touch/images/0.png b/meme_generator/memes/dont_touch/images/0.png index a12a2447d61cd1bd06e2c9009c0caadf49d5acfd..603f4b085b5206884eba098fd873ec9120cb3e1a 100644 Binary files a/meme_generator/memes/dont_touch/images/0.png and b/meme_generator/memes/dont_touch/images/0.png differ diff --git a/meme_generator/memes/dont_touch/images/mask.png b/meme_generator/memes/dont_touch/images/mask.png index fabceb7a4c171dd5ec09f4f98e199ee9bc1c59bd..172f195a1b897a6c6b619f992d4b8c82ccb3c125 100644 Binary files a/meme_generator/memes/dont_touch/images/mask.png and b/meme_generator/memes/dont_touch/images/mask.png differ diff --git a/meme_generator/memes/eat/images/0.png b/meme_generator/memes/eat/images/0.png index b9d5c931e744a5fa7cb1634c477a69e655776ae9..9291d1732078ef6f53b30f222b452ee451dbe216 100644 Binary files a/meme_generator/memes/eat/images/0.png and b/meme_generator/memes/eat/images/0.png differ diff --git a/meme_generator/memes/eat/images/1.png b/meme_generator/memes/eat/images/1.png index 55ba596628a217ba133a6f04c2e82cdee0bbe080..d5a6a7f81b0cc1fa79afb0d09ccc3e20ef8499ed 100644 Binary files a/meme_generator/memes/eat/images/1.png and b/meme_generator/memes/eat/images/1.png differ diff --git a/meme_generator/memes/eat/images/2.png b/meme_generator/memes/eat/images/2.png index 1b67bb27c83ad0b79c56a4914859acfac6fd15d3..0cf5f13271b82a1662c1b0c2aafa8b561871c5e1 100644 Binary files a/meme_generator/memes/eat/images/2.png and b/meme_generator/memes/eat/images/2.png differ diff --git a/meme_generator/memes/empathy/images/0.png b/meme_generator/memes/empathy/images/0.png index 6af92dcd5013abea45123888c4778bbc4bd1d9ed..d99a441f5ad748f188a81080c6c4464756472707 100644 Binary files a/meme_generator/memes/empathy/images/0.png and b/meme_generator/memes/empathy/images/0.png differ diff --git a/meme_generator/memes/fencing/images/0.png b/meme_generator/memes/fencing/images/0.png index ed47882454855698cdb7b16d7c33f9bfc23fa78e..ef6548c63e7f1cab7c5c04d07879acf841897338 100644 Binary files a/meme_generator/memes/fencing/images/0.png and b/meme_generator/memes/fencing/images/0.png differ diff --git a/meme_generator/memes/fencing/images/1.png b/meme_generator/memes/fencing/images/1.png index 184b7f94c4592633f7ea152546b8d5b86c33397d..61879015ea675b6e21a23b91405d6cb2026a3d12 100644 Binary files a/meme_generator/memes/fencing/images/1.png and b/meme_generator/memes/fencing/images/1.png differ diff --git a/meme_generator/memes/fencing/images/10.png b/meme_generator/memes/fencing/images/10.png index b9e4e9650395f9c53f6eca25a749d1f46c25c545..0d81c56d066a9af11618252f1d8a44ca1ad867ef 100644 Binary files a/meme_generator/memes/fencing/images/10.png and b/meme_generator/memes/fencing/images/10.png differ diff --git a/meme_generator/memes/fencing/images/11.png b/meme_generator/memes/fencing/images/11.png index 1732979790546b62677a34ce661ae2f0db44e590..1cc30a437be8050317b5c1934b8f96647430195a 100644 Binary files a/meme_generator/memes/fencing/images/11.png and b/meme_generator/memes/fencing/images/11.png differ diff --git a/meme_generator/memes/fencing/images/12.png b/meme_generator/memes/fencing/images/12.png index 82584828a134bc843e89de91274b5c6a4e2d4d53..573168bd16c32b16ec05d060a663b59ebfaddb5e 100644 Binary files a/meme_generator/memes/fencing/images/12.png and b/meme_generator/memes/fencing/images/12.png differ diff --git a/meme_generator/memes/fencing/images/13.png b/meme_generator/memes/fencing/images/13.png index 914d02d04582be421a39ac824384e0e206ffe8b9..f3298fffd767c0d60551da0589c8f16afd240aea 100644 Binary files a/meme_generator/memes/fencing/images/13.png and b/meme_generator/memes/fencing/images/13.png differ diff --git a/meme_generator/memes/fencing/images/14.png b/meme_generator/memes/fencing/images/14.png index c5b8cf496bcfa2084f424cac1892a3fc3a5d5185..1c9b0fc031f49265ad9fd43529146d4c3ff419e9 100644 Binary files a/meme_generator/memes/fencing/images/14.png and b/meme_generator/memes/fencing/images/14.png differ diff --git a/meme_generator/memes/fencing/images/15.png b/meme_generator/memes/fencing/images/15.png index eb7f620f1c4f7cdc2d75c559c735f2f362c6ebe3..3c966c8aef6460f0ab126577a2abcf8f3eb9c770 100644 Binary files a/meme_generator/memes/fencing/images/15.png and b/meme_generator/memes/fencing/images/15.png differ diff --git a/meme_generator/memes/fencing/images/16.png b/meme_generator/memes/fencing/images/16.png index 41588ac731daf81c3c3f1e9130d01adde60e7a13..88db6dc46733d95723879b735fa536387d7c13b4 100644 Binary files a/meme_generator/memes/fencing/images/16.png and b/meme_generator/memes/fencing/images/16.png differ diff --git a/meme_generator/memes/fencing/images/17.png b/meme_generator/memes/fencing/images/17.png index 4f9480ceb2e0531c32cf845923cdfccd501d8d20..fa32c6772721f7decb270fa46c8674e93aa81392 100644 Binary files a/meme_generator/memes/fencing/images/17.png and b/meme_generator/memes/fencing/images/17.png differ diff --git a/meme_generator/memes/fencing/images/18.png b/meme_generator/memes/fencing/images/18.png index a803eaf15f309b79fe8edf70f1e0fe2e0507a199..440504fd06de4e7fad6ed8157e213ee4896ab461 100644 Binary files a/meme_generator/memes/fencing/images/18.png and b/meme_generator/memes/fencing/images/18.png differ diff --git a/meme_generator/memes/fencing/images/2.png b/meme_generator/memes/fencing/images/2.png index 7f98de093823ba414b6a6e1e9b5e702d4e561717..057e5022879725fbe743cf672820a1e31730c09c 100644 Binary files a/meme_generator/memes/fencing/images/2.png and b/meme_generator/memes/fencing/images/2.png differ diff --git a/meme_generator/memes/fencing/images/3.png b/meme_generator/memes/fencing/images/3.png index fe23ce14400b3451dfc0054383a61e3ed2a0d3f1..63ee7a974da963d3498857dbd9e020b534a7ed23 100644 Binary files a/meme_generator/memes/fencing/images/3.png and b/meme_generator/memes/fencing/images/3.png differ diff --git a/meme_generator/memes/fencing/images/4.png b/meme_generator/memes/fencing/images/4.png index 306686992b95ff0c10b16ba8cebd604c37fdb6f6..863c195e6fae08f45a0911ba66a608ae5b4edaf6 100644 Binary files a/meme_generator/memes/fencing/images/4.png and b/meme_generator/memes/fencing/images/4.png differ diff --git a/meme_generator/memes/fencing/images/5.png b/meme_generator/memes/fencing/images/5.png index b3d4eb998eb378ca01f430e026111ee79d217c39..050261d7aa5e971f239dfc2d06743c872121f286 100644 Binary files a/meme_generator/memes/fencing/images/5.png and b/meme_generator/memes/fencing/images/5.png differ diff --git a/meme_generator/memes/fencing/images/6.png b/meme_generator/memes/fencing/images/6.png index 0d3d339f63bed82046d944c2896dab00424b95b1..be2b464bca1ce61b88306f7093c0ad7c5ba92a72 100644 Binary files a/meme_generator/memes/fencing/images/6.png and b/meme_generator/memes/fencing/images/6.png differ diff --git a/meme_generator/memes/fencing/images/7.png b/meme_generator/memes/fencing/images/7.png index c21afd7f6db37a5d3e3ccdc40081f3125e892d6f..26670e82160a80c7d5fe07fe3d36c5b3e3acafa2 100644 Binary files a/meme_generator/memes/fencing/images/7.png and b/meme_generator/memes/fencing/images/7.png differ diff --git a/meme_generator/memes/fencing/images/8.png b/meme_generator/memes/fencing/images/8.png index 6629c7bb50e0edbb1c0387b454315ed059fba1e9..1e2896425b41503119ad55882925daef3b0cd7e1 100644 Binary files a/meme_generator/memes/fencing/images/8.png and b/meme_generator/memes/fencing/images/8.png differ diff --git a/meme_generator/memes/fencing/images/9.png b/meme_generator/memes/fencing/images/9.png index 5e085e3d1b8e017486b5b2c1fe69b3fd00e9158f..2f610d6ad4664ade314b193ee6d2a9f3ac627602 100644 Binary files a/meme_generator/memes/fencing/images/9.png and b/meme_generator/memes/fencing/images/9.png differ diff --git a/meme_generator/memes/fill_head/__init__.py b/meme_generator/memes/fill_head/__init__.py index 40320e1a407ac28e01f598f3e575e100aa42057c..8deaee3d5f51be19e198292857cfb87866a4887f 100644 --- a/meme_generator/memes/fill_head/__init__.py +++ b/meme_generator/memes/fill_head/__init__.py @@ -18,7 +18,7 @@ def fill_head(images: List[BuildImage], texts: List[str], args: MemeArgsModel): frame.draw_text( (20, 458, frame.width - 20, 550), text, max_fontsize=65, min_fontsize=30 ) - except: + except ValueError: raise TextOverLength(name) def make(img: BuildImage) -> BuildImage: diff --git a/meme_generator/memes/fleshlight/images/0.png b/meme_generator/memes/fleshlight/images/0.png index c3885d4dacbd82b0b9c1f3bf6a5694f25c101f3b..755bdaa6e5036b4a51ce5f6e91193ba675347efb 100644 Binary files a/meme_generator/memes/fleshlight/images/0.png and b/meme_generator/memes/fleshlight/images/0.png differ diff --git a/meme_generator/memes/fleshlight/images/1.png b/meme_generator/memes/fleshlight/images/1.png index 555c04902df1ddf2084a97e56f23443a0e5de035..43a67190fecfe36fcce40dd9ba4463e64dae062b 100644 Binary files a/meme_generator/memes/fleshlight/images/1.png and b/meme_generator/memes/fleshlight/images/1.png differ diff --git a/meme_generator/memes/fleshlight/images/10.png b/meme_generator/memes/fleshlight/images/10.png index 0cf2698240b9ba0054d580d94afc57b7a9f42ad2..b18f9e3bf2a3c6a020d57c3897ceaa37edd6ec4f 100644 Binary files a/meme_generator/memes/fleshlight/images/10.png and b/meme_generator/memes/fleshlight/images/10.png differ diff --git a/meme_generator/memes/fleshlight/images/11.png b/meme_generator/memes/fleshlight/images/11.png index e219b014b6638afd40ab42798ed036d4a55f94d4..d275d3a824a912c5479d82952fc77f97cf53b985 100644 Binary files a/meme_generator/memes/fleshlight/images/11.png and b/meme_generator/memes/fleshlight/images/11.png differ diff --git a/meme_generator/memes/fleshlight/images/12.png b/meme_generator/memes/fleshlight/images/12.png index 716df9d19e59315388d6a543e05b1e1b1ed9b24e..55a42f1a429c49f014be149ecf547e782988b7c2 100644 Binary files a/meme_generator/memes/fleshlight/images/12.png and b/meme_generator/memes/fleshlight/images/12.png differ diff --git a/meme_generator/memes/fleshlight/images/13.png b/meme_generator/memes/fleshlight/images/13.png index 51f57066cce0defa7e67e7beaf1ea26e6fd95f0a..51621a9a097b71b22f0db5902c8e86a8cfdd33e9 100644 Binary files a/meme_generator/memes/fleshlight/images/13.png and b/meme_generator/memes/fleshlight/images/13.png differ diff --git a/meme_generator/memes/fleshlight/images/14.png b/meme_generator/memes/fleshlight/images/14.png index 2a6bb8d9ec803cc0db3dedd8c269c3bf9bfb1d1b..c2921725e5027ecc02fd6702b5427c9ec8e10c1c 100644 Binary files a/meme_generator/memes/fleshlight/images/14.png and b/meme_generator/memes/fleshlight/images/14.png differ diff --git a/meme_generator/memes/fleshlight/images/15.png b/meme_generator/memes/fleshlight/images/15.png index 2abad2590c4dac5bceeb477778edb7dfe704cb1c..1a752205f42a9ee1ba9ff8b8e512da97f79f8659 100644 Binary files a/meme_generator/memes/fleshlight/images/15.png and b/meme_generator/memes/fleshlight/images/15.png differ diff --git a/meme_generator/memes/fleshlight/images/16.png b/meme_generator/memes/fleshlight/images/16.png index 16e83b1a6a8a60389bdc2d81e0734e09477098e2..98148f1f3bec2f5e1e44e1fee868facaa4e170d7 100644 Binary files a/meme_generator/memes/fleshlight/images/16.png and b/meme_generator/memes/fleshlight/images/16.png differ diff --git a/meme_generator/memes/fleshlight/images/17.png b/meme_generator/memes/fleshlight/images/17.png index a0508287f7b0db5f3300703a9e522e736bd7993c..56b3db9dc7955a211f156f9d6bfd06d1d2090e9d 100644 Binary files a/meme_generator/memes/fleshlight/images/17.png and b/meme_generator/memes/fleshlight/images/17.png differ diff --git a/meme_generator/memes/fleshlight/images/18.png b/meme_generator/memes/fleshlight/images/18.png index 5bc5c3a29e3af673dd197eb2746dd5fbb5aedda5..906e6adc584005c1a11c7c89bd55c21a1b7607cd 100644 Binary files a/meme_generator/memes/fleshlight/images/18.png and b/meme_generator/memes/fleshlight/images/18.png differ diff --git a/meme_generator/memes/fleshlight/images/19.png b/meme_generator/memes/fleshlight/images/19.png index 195c7e8e441f00f8c77df12c936055e6bf4aaf01..1ddbc9976786a7caf03e0fd45082f41eda5d823a 100644 Binary files a/meme_generator/memes/fleshlight/images/19.png and b/meme_generator/memes/fleshlight/images/19.png differ diff --git a/meme_generator/memes/fleshlight/images/2.png b/meme_generator/memes/fleshlight/images/2.png index ccda97ebd1c1d5191474e0e9774467886c2189e0..1047cbdd30ada455c22769d0e9dfa55b2507d535 100644 Binary files a/meme_generator/memes/fleshlight/images/2.png and b/meme_generator/memes/fleshlight/images/2.png differ diff --git a/meme_generator/memes/fleshlight/images/20.png b/meme_generator/memes/fleshlight/images/20.png index 1c15a956cc4bb8dd098070207144673ee0ecd4e4..e8a93f5a17977d9df36e364e1e6666ca6ecfe25c 100644 Binary files a/meme_generator/memes/fleshlight/images/20.png and b/meme_generator/memes/fleshlight/images/20.png differ diff --git a/meme_generator/memes/fleshlight/images/21.png b/meme_generator/memes/fleshlight/images/21.png index 95aad059237948b9a3d5845b05e5e4ddc137e3f5..7436e8473a2547a0c64af0eb6b419763ae0377de 100644 Binary files a/meme_generator/memes/fleshlight/images/21.png and b/meme_generator/memes/fleshlight/images/21.png differ diff --git a/meme_generator/memes/fleshlight/images/22.png b/meme_generator/memes/fleshlight/images/22.png index ef4b2c68c469b85626cd5e19f6da5df564d1b373..392260cac5b1ddacf14479f0920ee419981e9f02 100644 Binary files a/meme_generator/memes/fleshlight/images/22.png and b/meme_generator/memes/fleshlight/images/22.png differ diff --git a/meme_generator/memes/fleshlight/images/23.png b/meme_generator/memes/fleshlight/images/23.png index b25f804cfdc1629f7a0bf649928333d15a63716d..eb0188a0047a35c884c0a52a11a02be52c6caafc 100644 Binary files a/meme_generator/memes/fleshlight/images/23.png and b/meme_generator/memes/fleshlight/images/23.png differ diff --git a/meme_generator/memes/fleshlight/images/24.png b/meme_generator/memes/fleshlight/images/24.png index 82b487e3d8ee2d8563df27872d3f46f0c93643c0..9d7bec31aeceddf1c37657dd78e7c6b56bec1dad 100644 Binary files a/meme_generator/memes/fleshlight/images/24.png and b/meme_generator/memes/fleshlight/images/24.png differ diff --git a/meme_generator/memes/fleshlight/images/25.png b/meme_generator/memes/fleshlight/images/25.png index 886e0ee359d383d354a2cf58ce7fc1453d1a9cfe..860492a28bd725cdbf26e793c675a6e150a8f526 100644 Binary files a/meme_generator/memes/fleshlight/images/25.png and b/meme_generator/memes/fleshlight/images/25.png differ diff --git a/meme_generator/memes/fleshlight/images/26.png b/meme_generator/memes/fleshlight/images/26.png index f61167c19d17e88ff19c27b1319e12cae1fcebf7..96faad0a82db76fe750dd2e6938c677df5b345bc 100644 Binary files a/meme_generator/memes/fleshlight/images/26.png and b/meme_generator/memes/fleshlight/images/26.png differ diff --git a/meme_generator/memes/fleshlight/images/27.png b/meme_generator/memes/fleshlight/images/27.png index 85f35bf61cefea6151be45b73b2edd76b782532f..9ae0edc03dd3d8bd428b17781259a5b4c23b51c8 100644 Binary files a/meme_generator/memes/fleshlight/images/27.png and b/meme_generator/memes/fleshlight/images/27.png differ diff --git a/meme_generator/memes/fleshlight/images/28.png b/meme_generator/memes/fleshlight/images/28.png index 65d8e0ee7ebc263b0017c7f11083845636582804..6a3269843c6ed09f50764c15bf9e39438eccac68 100644 Binary files a/meme_generator/memes/fleshlight/images/28.png and b/meme_generator/memes/fleshlight/images/28.png differ diff --git a/meme_generator/memes/fleshlight/images/29.png b/meme_generator/memes/fleshlight/images/29.png index a467ab664cb1bf3683a64fff78b124d440c8f32e..a4b7bbbdfbfa044b0d7d58e99c5e5c183bcd0101 100644 Binary files a/meme_generator/memes/fleshlight/images/29.png and b/meme_generator/memes/fleshlight/images/29.png differ diff --git a/meme_generator/memes/fleshlight/images/3.png b/meme_generator/memes/fleshlight/images/3.png index 9dac579221e6040903985f95cba7562c04692017..22597ad7c371f17ef93ba11ee8248b929a11cb12 100644 Binary files a/meme_generator/memes/fleshlight/images/3.png and b/meme_generator/memes/fleshlight/images/3.png differ diff --git a/meme_generator/memes/fleshlight/images/30.png b/meme_generator/memes/fleshlight/images/30.png index 8566494b42803e2186c1638f7395bf9049cb814b..37d8825910ba913ca4ad3bfa58324bf4ed2090f2 100644 Binary files a/meme_generator/memes/fleshlight/images/30.png and b/meme_generator/memes/fleshlight/images/30.png differ diff --git a/meme_generator/memes/fleshlight/images/31.png b/meme_generator/memes/fleshlight/images/31.png index 036c1e55340053446419c7a061e576972b753f93..48ebd616034c36d600363748da1e81937df567c6 100644 Binary files a/meme_generator/memes/fleshlight/images/31.png and b/meme_generator/memes/fleshlight/images/31.png differ diff --git a/meme_generator/memes/fleshlight/images/32.png b/meme_generator/memes/fleshlight/images/32.png index 8311fa44721bb83452614ce85ba911ad41587b37..8ea4dcbd2e559a1685dade7ebba72f51203e947f 100644 Binary files a/meme_generator/memes/fleshlight/images/32.png and b/meme_generator/memes/fleshlight/images/32.png differ diff --git a/meme_generator/memes/fleshlight/images/33.png b/meme_generator/memes/fleshlight/images/33.png index 49578e4afdd8f14c9c8d8b7289899e9db0d31c08..3dcebbd54487a0aa8e65318639ed4c336cd68a51 100644 Binary files a/meme_generator/memes/fleshlight/images/33.png and b/meme_generator/memes/fleshlight/images/33.png differ diff --git a/meme_generator/memes/fleshlight/images/4.png b/meme_generator/memes/fleshlight/images/4.png index b28d35a4bad3dbcb22af3e6eb43ec3a22a5db48f..29b5d3505d5ad49085242dd92dfd1874f65ace2f 100644 Binary files a/meme_generator/memes/fleshlight/images/4.png and b/meme_generator/memes/fleshlight/images/4.png differ diff --git a/meme_generator/memes/fleshlight/images/5.png b/meme_generator/memes/fleshlight/images/5.png index 4649d9075c103bdb111c50cd61336b7cac8dbc01..dbd21db228b77623f2a00551fc018b3068af4c2e 100644 Binary files a/meme_generator/memes/fleshlight/images/5.png and b/meme_generator/memes/fleshlight/images/5.png differ diff --git a/meme_generator/memes/fleshlight/images/6.png b/meme_generator/memes/fleshlight/images/6.png index e0656251a52990b268b091c91c16ef6e74bc7539..299ed85b73ad883483a77f28477ed4696bd6ed0e 100644 Binary files a/meme_generator/memes/fleshlight/images/6.png and b/meme_generator/memes/fleshlight/images/6.png differ diff --git a/meme_generator/memes/fleshlight/images/7.png b/meme_generator/memes/fleshlight/images/7.png index 8f5b2462f2ad2dbbfc0899e7a2dc68d1477831dd..51e98677121ef59ab7fc5c2f74cce9428d034079 100644 Binary files a/meme_generator/memes/fleshlight/images/7.png and b/meme_generator/memes/fleshlight/images/7.png differ diff --git a/meme_generator/memes/fleshlight/images/8.png b/meme_generator/memes/fleshlight/images/8.png index b0d467e282c23743de72298f19dba65021a8ca16..9922f81621824554c26867da712cde35e0c9e53b 100644 Binary files a/meme_generator/memes/fleshlight/images/8.png and b/meme_generator/memes/fleshlight/images/8.png differ diff --git a/meme_generator/memes/fleshlight/images/9.png b/meme_generator/memes/fleshlight/images/9.png index f48026a769351505269391b75852e3b87af67894..d445b2977850c2c25d2f3f71b98310e24267de4a 100644 Binary files a/meme_generator/memes/fleshlight/images/9.png and b/meme_generator/memes/fleshlight/images/9.png differ diff --git a/meme_generator/memes/forbid/images/0.png b/meme_generator/memes/forbid/images/0.png index a8e474a0417d416bf23eca136a0c4c896a70b9cf..7f55f83f9363472deed35cb5e2c2884a430acb3a 100644 Binary files a/meme_generator/memes/forbid/images/0.png and b/meme_generator/memes/forbid/images/0.png differ diff --git a/meme_generator/memes/garbage/images/0.png b/meme_generator/memes/garbage/images/0.png index 5656ce45ac31aeb8a17ff9b515b808a96a86a98e..49871557eddf82cf6141a2edade8cca8179dfb6d 100644 Binary files a/meme_generator/memes/garbage/images/0.png and b/meme_generator/memes/garbage/images/0.png differ diff --git a/meme_generator/memes/garbage/images/1.png b/meme_generator/memes/garbage/images/1.png index cf9dbbb61c5472369fd71ef585e4d6081bf0bdff..9e9de5935d2d1cce9bb9e9b65fb265155878e999 100644 Binary files a/meme_generator/memes/garbage/images/1.png and b/meme_generator/memes/garbage/images/1.png differ diff --git a/meme_generator/memes/garbage/images/10.png b/meme_generator/memes/garbage/images/10.png index 944f4f2b41ce4a3b042561e74cd2e51b12deee67..f9c93e674e02aae47221298ac2ff9f92d3f2d5a5 100644 Binary files a/meme_generator/memes/garbage/images/10.png and b/meme_generator/memes/garbage/images/10.png differ diff --git a/meme_generator/memes/garbage/images/11.png b/meme_generator/memes/garbage/images/11.png index c39166615a3d1a17400dd8075d01a723ac81b743..12f9ab1a93f4aed73bca32cecacbfd94ae9dc643 100644 Binary files a/meme_generator/memes/garbage/images/11.png and b/meme_generator/memes/garbage/images/11.png differ diff --git a/meme_generator/memes/garbage/images/12.png b/meme_generator/memes/garbage/images/12.png index 07c687f4560aa10ae29c209fbe0d2ef40136c110..c35acf8874e585db3558b47a666e479ba6ba521c 100644 Binary files a/meme_generator/memes/garbage/images/12.png and b/meme_generator/memes/garbage/images/12.png differ diff --git a/meme_generator/memes/garbage/images/13.png b/meme_generator/memes/garbage/images/13.png index 8a039db5bd38f635013c0c8f8da233de088aa80f..05b2c58e0c49f195187bbd29dc5f319dbd9bf915 100644 Binary files a/meme_generator/memes/garbage/images/13.png and b/meme_generator/memes/garbage/images/13.png differ diff --git a/meme_generator/memes/garbage/images/14.png b/meme_generator/memes/garbage/images/14.png index 73c4c7ef66325f006335227170e383172f7a45d9..e9396e868d58c269c7d0eb1d8114792f3b524ffa 100644 Binary files a/meme_generator/memes/garbage/images/14.png and b/meme_generator/memes/garbage/images/14.png differ diff --git a/meme_generator/memes/garbage/images/15.png b/meme_generator/memes/garbage/images/15.png index cbb9499b854ed1d00bdc13f17bdfccabd6f25348..a6a66f38b9c7f4a2ff01b6a1ca24740b68e5495a 100644 Binary files a/meme_generator/memes/garbage/images/15.png and b/meme_generator/memes/garbage/images/15.png differ diff --git a/meme_generator/memes/garbage/images/16.png b/meme_generator/memes/garbage/images/16.png index 6aff9616f767b62ddf195dac1276a866e1acc0ee..4711ae603d7a46a31bb0fe3c890bb3df07ff78bc 100644 Binary files a/meme_generator/memes/garbage/images/16.png and b/meme_generator/memes/garbage/images/16.png differ diff --git a/meme_generator/memes/garbage/images/17.png b/meme_generator/memes/garbage/images/17.png index b290e859b94b14ca97cf08b4fa2e9fc07e33f242..2f797b06dc65d48b7205454a91e63d27da6b9c93 100644 Binary files a/meme_generator/memes/garbage/images/17.png and b/meme_generator/memes/garbage/images/17.png differ diff --git a/meme_generator/memes/garbage/images/18.png b/meme_generator/memes/garbage/images/18.png index a1622ee2c560565cddd5653f74d95f781ee92953..f67206651946f078379c8fcb4832c191a76dba36 100644 Binary files a/meme_generator/memes/garbage/images/18.png and b/meme_generator/memes/garbage/images/18.png differ diff --git a/meme_generator/memes/garbage/images/19.png b/meme_generator/memes/garbage/images/19.png index 0f09b6000d59215482bd2066a4e6408482094691..367c49be1fb1febc9aa3576bb0a12e4fbc8e363d 100644 Binary files a/meme_generator/memes/garbage/images/19.png and b/meme_generator/memes/garbage/images/19.png differ diff --git a/meme_generator/memes/garbage/images/2.png b/meme_generator/memes/garbage/images/2.png index 211ee5bbd9a0d2fddcb8e94fc7efc0078d7cb593..81aed576c578e8edc3460b978138fabaa4ded89d 100644 Binary files a/meme_generator/memes/garbage/images/2.png and b/meme_generator/memes/garbage/images/2.png differ diff --git a/meme_generator/memes/garbage/images/20.png b/meme_generator/memes/garbage/images/20.png index da3351f03245c98f27988e44213d0f5db65b8e94..3f741a2ac2893f9e9514c672e30200997ebcf61e 100644 Binary files a/meme_generator/memes/garbage/images/20.png and b/meme_generator/memes/garbage/images/20.png differ diff --git a/meme_generator/memes/garbage/images/21.png b/meme_generator/memes/garbage/images/21.png index 3888bb2cb512d6404e458c20175692c3a48d2bf1..2e9aab790664d8aa1e32c544ba94608041a0f28b 100644 Binary files a/meme_generator/memes/garbage/images/21.png and b/meme_generator/memes/garbage/images/21.png differ diff --git a/meme_generator/memes/garbage/images/22.png b/meme_generator/memes/garbage/images/22.png index 9782e33da1b0c8ef32de8597f3854b0a78f79cac..968f45845742e891df5580df21b93bb9c7d0d613 100644 Binary files a/meme_generator/memes/garbage/images/22.png and b/meme_generator/memes/garbage/images/22.png differ diff --git a/meme_generator/memes/garbage/images/23.png b/meme_generator/memes/garbage/images/23.png index c30b01c21296babe835af7d0b5c45bc3b518864a..4bb6ca9957e70a5ed2e10dccbe3896ff0e9284e2 100644 Binary files a/meme_generator/memes/garbage/images/23.png and b/meme_generator/memes/garbage/images/23.png differ diff --git a/meme_generator/memes/garbage/images/24.png b/meme_generator/memes/garbage/images/24.png index b31a985020f7b7281b8fb9bc84fa54c36d9a207f..aa0f74140346ece4c6412d87ce4ed4abe8a54589 100644 Binary files a/meme_generator/memes/garbage/images/24.png and b/meme_generator/memes/garbage/images/24.png differ diff --git a/meme_generator/memes/garbage/images/3.png b/meme_generator/memes/garbage/images/3.png index 17522feb32e033f1668af989c56ea6e494353668..c2d8c6ddd055871af8612a8dc7c6a3c93bce82f8 100644 Binary files a/meme_generator/memes/garbage/images/3.png and b/meme_generator/memes/garbage/images/3.png differ diff --git a/meme_generator/memes/garbage/images/4.png b/meme_generator/memes/garbage/images/4.png index 1dbd80615c40ec427573a305baba804fb17b8bc6..f327f3f2f7c9ffc0ceac8211fed6b56921dccc1e 100644 Binary files a/meme_generator/memes/garbage/images/4.png and b/meme_generator/memes/garbage/images/4.png differ diff --git a/meme_generator/memes/garbage/images/5.png b/meme_generator/memes/garbage/images/5.png index 6f43a028c02d1643001d175458356526596ffdd7..debe751f7d42d4516994e4747452fb77a7e40769 100644 Binary files a/meme_generator/memes/garbage/images/5.png and b/meme_generator/memes/garbage/images/5.png differ diff --git a/meme_generator/memes/garbage/images/6.png b/meme_generator/memes/garbage/images/6.png index 930a02b6838c646e97980047279db8aaa251b0e8..31cda01b2fb7623f2f18ea492c3878ac4f527ed9 100644 Binary files a/meme_generator/memes/garbage/images/6.png and b/meme_generator/memes/garbage/images/6.png differ diff --git a/meme_generator/memes/garbage/images/7.png b/meme_generator/memes/garbage/images/7.png index 0099937c09b37dac7ac07af8c522220275266fdd..2853daf1bd902a2599af7b41001051be92cb206f 100644 Binary files a/meme_generator/memes/garbage/images/7.png and b/meme_generator/memes/garbage/images/7.png differ diff --git a/meme_generator/memes/garbage/images/8.png b/meme_generator/memes/garbage/images/8.png index 5854f0e35e84478e18835a2f609cf7e1b9784720..20f3f4bc5a78694f2aaeb1fd2c4b48b4a3a9b841 100644 Binary files a/meme_generator/memes/garbage/images/8.png and b/meme_generator/memes/garbage/images/8.png differ diff --git a/meme_generator/memes/garbage/images/9.png b/meme_generator/memes/garbage/images/9.png index da8c0942f24fd68219d74b489e55f17321da5f35..40256e2522d8bb0ef4a916b3113b6c910a79e498 100644 Binary files a/meme_generator/memes/garbage/images/9.png and b/meme_generator/memes/garbage/images/9.png differ diff --git a/meme_generator/memes/genshin_start/__init__.py b/meme_generator/memes/genshin_start/__init__.py index 507fdd22dfff4045eb99e68afbf6f747c7732b5c..577b8ea1c978b9912a42ed5d9f61c6ee8ad4d9e5 100644 --- a/meme_generator/memes/genshin_start/__init__.py +++ b/meme_generator/memes/genshin_start/__init__.py @@ -24,7 +24,7 @@ def genshin_start(images: List[BuildImage], texts: List[str], args): stroke_fill="black", stroke_ratio=0.05, ) - except: + except ValueError: raise TextOverLength(text) def make(img: BuildImage) -> BuildImage: diff --git a/meme_generator/memes/genshin_start/images/0.png b/meme_generator/memes/genshin_start/images/0.png index f19f1d46b58a6ec8d44065a7bb847451813aca9a..bf6e80d013dfe15f2d86145d90da113da4cfb165 100644 Binary files a/meme_generator/memes/genshin_start/images/0.png and b/meme_generator/memes/genshin_start/images/0.png differ diff --git a/meme_generator/memes/grab/images/0.png b/meme_generator/memes/grab/images/0.png index 7dafaea23efe0a7026cabbf03d723a879be0b0c9..adc543afd3bd93441a271a937c2f9d6bb4308562 100644 Binary files a/meme_generator/memes/grab/images/0.png and b/meme_generator/memes/grab/images/0.png differ diff --git a/meme_generator/memes/gun/images/0.png b/meme_generator/memes/gun/images/0.png index 8b86d12ed06b133a3c067a4fe24d521e16de5ce6..6564a3c42e1155f5ba3c7116a588a1e2ffcd7194 100644 Binary files a/meme_generator/memes/gun/images/0.png and b/meme_generator/memes/gun/images/0.png differ diff --git a/meme_generator/memes/hammer/images/0.png b/meme_generator/memes/hammer/images/0.png index 10353d3fb244c53ecb69efe9273510114b05aeba..2d5024837878184671e0dce6f11b37fda83db34a 100644 Binary files a/meme_generator/memes/hammer/images/0.png and b/meme_generator/memes/hammer/images/0.png differ diff --git a/meme_generator/memes/hammer/images/1.png b/meme_generator/memes/hammer/images/1.png index 771d71bcc8465240474974dd316aa2565186c120..cc82eec915b51ebe8c227cab226d4b58a35e4a21 100644 Binary files a/meme_generator/memes/hammer/images/1.png and b/meme_generator/memes/hammer/images/1.png differ diff --git a/meme_generator/memes/hammer/images/2.png b/meme_generator/memes/hammer/images/2.png index edfc0dcc123350661ac19f40f1c39a0add158312..9d0202ec3f8876fbf83204829b01e9ffdeb59b60 100644 Binary files a/meme_generator/memes/hammer/images/2.png and b/meme_generator/memes/hammer/images/2.png differ diff --git a/meme_generator/memes/hammer/images/3.png b/meme_generator/memes/hammer/images/3.png index ff96b3f147f7f4472a8782f120637e2bf10a7ac6..a09217f72ad24197abe25ad83fabcc088370ecce 100644 Binary files a/meme_generator/memes/hammer/images/3.png and b/meme_generator/memes/hammer/images/3.png differ diff --git a/meme_generator/memes/hammer/images/4.png b/meme_generator/memes/hammer/images/4.png index a06a86640eadaf095fece6cc1087d02e6b9abce7..2e888bbf22e3a2b71b42e3b023ef36bc17f629ba 100644 Binary files a/meme_generator/memes/hammer/images/4.png and b/meme_generator/memes/hammer/images/4.png differ diff --git a/meme_generator/memes/hammer/images/5.png b/meme_generator/memes/hammer/images/5.png index 0d9a2f1c4f408ba309f77ab6b6fb9545fd38a398..f924823b6378533754a462c15f9bb2a8f287d776 100644 Binary files a/meme_generator/memes/hammer/images/5.png and b/meme_generator/memes/hammer/images/5.png differ diff --git a/meme_generator/memes/hammer/images/6.png b/meme_generator/memes/hammer/images/6.png index 88f609ab164f8b9842ee97c26793096ea35bf90f..9cb9286d9ad98620b49bf144976e05f6b4a4744d 100644 Binary files a/meme_generator/memes/hammer/images/6.png and b/meme_generator/memes/hammer/images/6.png differ diff --git a/meme_generator/memes/hit_screen/images/0.png b/meme_generator/memes/hit_screen/images/0.png index 042ffbe3395db6a55ae99db385f2aabcdc085ec3..81ddf20616eedcd54ce1bbb581fb5fc978eca41f 100644 Binary files a/meme_generator/memes/hit_screen/images/0.png and b/meme_generator/memes/hit_screen/images/0.png differ diff --git a/meme_generator/memes/hit_screen/images/1.png b/meme_generator/memes/hit_screen/images/1.png index 9cf9e8489618e94aa4e533770030641b884fc565..132caef6a1b6955e1f6dfcf486f962c886083305 100644 Binary files a/meme_generator/memes/hit_screen/images/1.png and b/meme_generator/memes/hit_screen/images/1.png differ diff --git a/meme_generator/memes/hit_screen/images/10.png b/meme_generator/memes/hit_screen/images/10.png index c8b175d965e4547e98a2fcb9b72aac58bd51b614..351bd0a6ddcd4c459ddaa3281855006890d69c83 100644 Binary files a/meme_generator/memes/hit_screen/images/10.png and b/meme_generator/memes/hit_screen/images/10.png differ diff --git a/meme_generator/memes/hit_screen/images/11.png b/meme_generator/memes/hit_screen/images/11.png index 99cd0e5d5c3f8ca295010a844dfcb43e8b9501ad..bd04a457f7906442d0ea162cf21beff472b12e2c 100644 Binary files a/meme_generator/memes/hit_screen/images/11.png and b/meme_generator/memes/hit_screen/images/11.png differ diff --git a/meme_generator/memes/hit_screen/images/12.png b/meme_generator/memes/hit_screen/images/12.png index bfdaa4d38b9639cdac360d2660db7a35abb2c961..8a3d06ef79f1b4f08615f2e01a361a9f080789af 100644 Binary files a/meme_generator/memes/hit_screen/images/12.png and b/meme_generator/memes/hit_screen/images/12.png differ diff --git a/meme_generator/memes/hit_screen/images/13.png b/meme_generator/memes/hit_screen/images/13.png index 9dbbeb6ee010124d5161a7f3273b6ef2dfaaa8be..09a08c9bb1a13a0c8c49b4bd42982bb082597f75 100644 Binary files a/meme_generator/memes/hit_screen/images/13.png and b/meme_generator/memes/hit_screen/images/13.png differ diff --git a/meme_generator/memes/hit_screen/images/14.png b/meme_generator/memes/hit_screen/images/14.png index 513b3a252e5adae2035387704ef61f48c9c90834..244038591b45ebf7cc1b654a9ecd718f82e305ba 100644 Binary files a/meme_generator/memes/hit_screen/images/14.png and b/meme_generator/memes/hit_screen/images/14.png differ diff --git a/meme_generator/memes/hit_screen/images/15.png b/meme_generator/memes/hit_screen/images/15.png index 60f82d6d19fec770110ccdef24afc09e0cd16e39..5c137e7b92118094d2161d24c7c2e662406e6d54 100644 Binary files a/meme_generator/memes/hit_screen/images/15.png and b/meme_generator/memes/hit_screen/images/15.png differ diff --git a/meme_generator/memes/hit_screen/images/16.png b/meme_generator/memes/hit_screen/images/16.png index 8dadf10a11ff226e7b269c97f15adc58d4c51620..67dca4e014a26bb54fd0fbcf2c8cd4d226be77c4 100644 Binary files a/meme_generator/memes/hit_screen/images/16.png and b/meme_generator/memes/hit_screen/images/16.png differ diff --git a/meme_generator/memes/hit_screen/images/17.png b/meme_generator/memes/hit_screen/images/17.png index 80d3365df7024d1bbca7456568643af4be1f2831..5ffc5f1e0cf706e3b0535b498c35fb51259ec7c9 100644 Binary files a/meme_generator/memes/hit_screen/images/17.png and b/meme_generator/memes/hit_screen/images/17.png differ diff --git a/meme_generator/memes/hit_screen/images/18.png b/meme_generator/memes/hit_screen/images/18.png index 80524eaf1c1d680465ced2f4bf9a6c697c8246f7..d006214903ce66790379e39b3c5e05c406a936e7 100644 Binary files a/meme_generator/memes/hit_screen/images/18.png and b/meme_generator/memes/hit_screen/images/18.png differ diff --git a/meme_generator/memes/hit_screen/images/19.png b/meme_generator/memes/hit_screen/images/19.png index dac731b67900093e8aebb31c786056193496368f..84f0e0648c9584616719e46aa2fd14bda1acb7a8 100644 Binary files a/meme_generator/memes/hit_screen/images/19.png and b/meme_generator/memes/hit_screen/images/19.png differ diff --git a/meme_generator/memes/hit_screen/images/2.png b/meme_generator/memes/hit_screen/images/2.png index 84ab43f105034533498c83c42e44878ac5418dc0..4d69ef5b79d51b5a05a2645e54db1a1473114a9a 100644 Binary files a/meme_generator/memes/hit_screen/images/2.png and b/meme_generator/memes/hit_screen/images/2.png differ diff --git a/meme_generator/memes/hit_screen/images/20.png b/meme_generator/memes/hit_screen/images/20.png index ae7ce3ea10bd8f2f462b205252f4ecbb03ce3873..049c2850d82d32bf2d9032c91e7e0bb5cf183ac9 100644 Binary files a/meme_generator/memes/hit_screen/images/20.png and b/meme_generator/memes/hit_screen/images/20.png differ diff --git a/meme_generator/memes/hit_screen/images/21.png b/meme_generator/memes/hit_screen/images/21.png index d067347cf45e5d719a77d5098bb965e0b772a55c..5901c5752da0c8ad102a45933de7584d121a38b2 100644 Binary files a/meme_generator/memes/hit_screen/images/21.png and b/meme_generator/memes/hit_screen/images/21.png differ diff --git a/meme_generator/memes/hit_screen/images/22.png b/meme_generator/memes/hit_screen/images/22.png index 6c08cbaa028d9c4cd3f76be9df4f596c2b9b95ae..b8ad94ea3b57ede5c53b3a17815bc32b8c57f87e 100644 Binary files a/meme_generator/memes/hit_screen/images/22.png and b/meme_generator/memes/hit_screen/images/22.png differ diff --git a/meme_generator/memes/hit_screen/images/23.png b/meme_generator/memes/hit_screen/images/23.png index c53e7af9cccea425e351713fa29bbdc6ea172e08..8c30663a78052777ecaf2657ac737b981c5229be 100644 Binary files a/meme_generator/memes/hit_screen/images/23.png and b/meme_generator/memes/hit_screen/images/23.png differ diff --git a/meme_generator/memes/hit_screen/images/24.png b/meme_generator/memes/hit_screen/images/24.png index 3cc11cfe01fc4dd37015e34b36d5afa9b6c6c359..82b4fdf66693037b1a825ff9bc0bfab1eca47ace 100644 Binary files a/meme_generator/memes/hit_screen/images/24.png and b/meme_generator/memes/hit_screen/images/24.png differ diff --git a/meme_generator/memes/hit_screen/images/25.png b/meme_generator/memes/hit_screen/images/25.png index fba926ab3ae47f8e478e52389b4afc7738f019f9..b771e857d6a6cbd449b2731b588c20e0e2318531 100644 Binary files a/meme_generator/memes/hit_screen/images/25.png and b/meme_generator/memes/hit_screen/images/25.png differ diff --git a/meme_generator/memes/hit_screen/images/26.png b/meme_generator/memes/hit_screen/images/26.png index fdb414be99f65c0abaeee53231d343bd58e4daed..702bb22fa0aaeca3f64a8b805f1dcbcf03fd0fc7 100644 Binary files a/meme_generator/memes/hit_screen/images/26.png and b/meme_generator/memes/hit_screen/images/26.png differ diff --git a/meme_generator/memes/hit_screen/images/27.png b/meme_generator/memes/hit_screen/images/27.png index ed2c991899dc7a651d8ea7330d3c7d4521cc26c4..9379de7fa977132266f70e0eeb34d37351ab2b00 100644 Binary files a/meme_generator/memes/hit_screen/images/27.png and b/meme_generator/memes/hit_screen/images/27.png differ diff --git a/meme_generator/memes/hit_screen/images/28.png b/meme_generator/memes/hit_screen/images/28.png index b9d7f6ba2a7f1e522a4f2cf2f6cb78050a1a5b37..811929f22e839c01b125d03ccfc6e884f7eaef5e 100644 Binary files a/meme_generator/memes/hit_screen/images/28.png and b/meme_generator/memes/hit_screen/images/28.png differ diff --git a/meme_generator/memes/hit_screen/images/3.png b/meme_generator/memes/hit_screen/images/3.png index a56d2e5e3654c536d95c1277a3ff4cc6b813bec6..5e67eae699b2d6615b89f161f5531cbdaa654383 100644 Binary files a/meme_generator/memes/hit_screen/images/3.png and b/meme_generator/memes/hit_screen/images/3.png differ diff --git a/meme_generator/memes/hit_screen/images/4.png b/meme_generator/memes/hit_screen/images/4.png index 7c330d24ee9db683d60e428bf375a6acd6cb291d..ebaa49cc3d8210ec70727e5262810a6a8ab9402c 100644 Binary files a/meme_generator/memes/hit_screen/images/4.png and b/meme_generator/memes/hit_screen/images/4.png differ diff --git a/meme_generator/memes/hit_screen/images/5.png b/meme_generator/memes/hit_screen/images/5.png index 38d16a69fe66f4a4cebdd7d48cb2c9da125c5e9d..34bab9e3971c7df246cdc2102a3a8c7d31f3f0b1 100644 Binary files a/meme_generator/memes/hit_screen/images/5.png and b/meme_generator/memes/hit_screen/images/5.png differ diff --git a/meme_generator/memes/hit_screen/images/6.png b/meme_generator/memes/hit_screen/images/6.png index b71cb173dea1350429147602851e916c1c5aa0d4..9af6acd46bc57f94648f77726b7b3d0201eeb9b5 100644 Binary files a/meme_generator/memes/hit_screen/images/6.png and b/meme_generator/memes/hit_screen/images/6.png differ diff --git a/meme_generator/memes/hit_screen/images/7.png b/meme_generator/memes/hit_screen/images/7.png index 1d9d2b65b2e9db029188883540540884c9cb15ae..3f89dee45d62389e4df4cc9c47c1274c941d260e 100644 Binary files a/meme_generator/memes/hit_screen/images/7.png and b/meme_generator/memes/hit_screen/images/7.png differ diff --git a/meme_generator/memes/hit_screen/images/8.png b/meme_generator/memes/hit_screen/images/8.png index c51ed876ff1d2a13f4e5f62d6570fcd26032308c..20ba30c249ec02bf75820057ff2a3421620860df 100644 Binary files a/meme_generator/memes/hit_screen/images/8.png and b/meme_generator/memes/hit_screen/images/8.png differ diff --git a/meme_generator/memes/hit_screen/images/9.png b/meme_generator/memes/hit_screen/images/9.png index 8517d765638f250b9632de6db53a69e8239e21cd..ebf322ebed44aa3f5b3236362b5a0b333ec0a9a2 100644 Binary files a/meme_generator/memes/hit_screen/images/9.png and b/meme_generator/memes/hit_screen/images/9.png differ diff --git a/meme_generator/memes/hold_grudge/images/0.png b/meme_generator/memes/hold_grudge/images/0.png index 01615f73cee31363c72ae35c4c708e4743d6a39b..80d40e1c3bd4702ddaaec7385707de9345b349cd 100644 Binary files a/meme_generator/memes/hold_grudge/images/0.png and b/meme_generator/memes/hold_grudge/images/0.png differ diff --git a/meme_generator/memes/hold_tight/images/0.png b/meme_generator/memes/hold_tight/images/0.png index 314a232a308be28640926aaa6c97bef30e76e7e9..f083b6d2cbb1219e51da79ca13fa2e4fa25ed5d9 100644 Binary files a/meme_generator/memes/hold_tight/images/0.png and b/meme_generator/memes/hold_tight/images/0.png differ diff --git a/meme_generator/memes/hug_leg/images/0.png b/meme_generator/memes/hug_leg/images/0.png index 2f158831bdd67a5bdf0224a0975db12b63759e49..fe832c87c63ad60e08bbd178e1471adf571bb6d2 100644 Binary files a/meme_generator/memes/hug_leg/images/0.png and b/meme_generator/memes/hug_leg/images/0.png differ diff --git a/meme_generator/memes/hug_leg/images/1.png b/meme_generator/memes/hug_leg/images/1.png index 06e4dd62ea26e928e60b2f5b5c80e6891b9d5c6b..e19048cec8d08d01a45f45c9fa9fb3b8b709042a 100644 Binary files a/meme_generator/memes/hug_leg/images/1.png and b/meme_generator/memes/hug_leg/images/1.png differ diff --git a/meme_generator/memes/hug_leg/images/2.png b/meme_generator/memes/hug_leg/images/2.png index d68037864c9674270e54eb22cbb91654434cec07..ee6828d704545f9a1b7aa79bdcc4406cbef76b4f 100644 Binary files a/meme_generator/memes/hug_leg/images/2.png and b/meme_generator/memes/hug_leg/images/2.png differ diff --git a/meme_generator/memes/hug_leg/images/3.png b/meme_generator/memes/hug_leg/images/3.png index 17dfdc2eb403df48af18933429cc7930b6a7a049..d45bd5af6b6f1e9ec739c7a4043b42f68a0bfef0 100644 Binary files a/meme_generator/memes/hug_leg/images/3.png and b/meme_generator/memes/hug_leg/images/3.png differ diff --git a/meme_generator/memes/hug_leg/images/4.png b/meme_generator/memes/hug_leg/images/4.png index 2bc1498cc0c27f2cbe163d67aa904a4ca988e870..106f34b87d846689445b408ca0906106c91dfc2f 100644 Binary files a/meme_generator/memes/hug_leg/images/4.png and b/meme_generator/memes/hug_leg/images/4.png differ diff --git a/meme_generator/memes/hug_leg/images/5.png b/meme_generator/memes/hug_leg/images/5.png index 7495eb046190c11a2493fdf2157f608d01abb462..a5e6a9a0afe820c7412f21fb6c6e62e16d62603a 100644 Binary files a/meme_generator/memes/hug_leg/images/5.png and b/meme_generator/memes/hug_leg/images/5.png differ diff --git a/meme_generator/memes/hutao_bite/images/0.png b/meme_generator/memes/hutao_bite/images/0.png index 3c16da68d5973dc095fb5a27c59896303f598166..837642833cab6a2d5e0fb86889a306ba7a5ab20d 100644 Binary files a/meme_generator/memes/hutao_bite/images/0.png and b/meme_generator/memes/hutao_bite/images/0.png differ diff --git a/meme_generator/memes/hutao_bite/images/1.png b/meme_generator/memes/hutao_bite/images/1.png index 114121705bd9d75ada5cff8ebbdd3665f38f8eca..5f4b5ad3b521bd0cf5c61206cce8a2a2c1259db1 100644 Binary files a/meme_generator/memes/hutao_bite/images/1.png and b/meme_generator/memes/hutao_bite/images/1.png differ diff --git a/meme_generator/memes/incivilization/images/0.png b/meme_generator/memes/incivilization/images/0.png index d4d0a5f71deacfc3946c64f278474e88383715ec..453f32718231a9578cfbd11f1ea4de9d9b33e463 100644 Binary files a/meme_generator/memes/incivilization/images/0.png and b/meme_generator/memes/incivilization/images/0.png differ diff --git a/meme_generator/memes/interview/images/huaji.png b/meme_generator/memes/interview/images/huaji.png index a98bac89096617160e7f534d8969bea959cd0a46..c063eee39861d92bad5a43ab333502e9cf168a1e 100644 Binary files a/meme_generator/memes/interview/images/huaji.png and b/meme_generator/memes/interview/images/huaji.png differ diff --git a/meme_generator/memes/interview/images/microphone.png b/meme_generator/memes/interview/images/microphone.png index a566e5e2d2a5d42297f0b8e23f01f1a68f5b5111..64adf8365de78c79eecf9c1243033300d47b5fab 100644 Binary files a/meme_generator/memes/interview/images/microphone.png and b/meme_generator/memes/interview/images/microphone.png differ diff --git a/meme_generator/memes/jiji_king/images/0.png b/meme_generator/memes/jiji_king/images/0.png index 5c81e3c7eb4dc9bf8c80f0797d8751c168c68190..7a10a8233943f967f96c468673f90e4306137383 100644 Binary files a/meme_generator/memes/jiji_king/images/0.png and b/meme_generator/memes/jiji_king/images/0.png differ diff --git a/meme_generator/memes/jiujiu/images/0.png b/meme_generator/memes/jiujiu/images/0.png index c983ac7a7aecf952d0aa42b49f1ea08e2101a898..b4651eecd5e02d1f54fff9941d77144ca7a0ee5a 100644 Binary files a/meme_generator/memes/jiujiu/images/0.png and b/meme_generator/memes/jiujiu/images/0.png differ diff --git a/meme_generator/memes/jiujiu/images/1.png b/meme_generator/memes/jiujiu/images/1.png index a5b0d26b67f749e32df97542da5c2b776208c3e7..6b80b3b48f7bb6d0e20eed8e36cc7f616b69f5a4 100644 Binary files a/meme_generator/memes/jiujiu/images/1.png and b/meme_generator/memes/jiujiu/images/1.png differ diff --git a/meme_generator/memes/jiujiu/images/2.png b/meme_generator/memes/jiujiu/images/2.png index 1d3fa21c03a2bd1b1846febeb30aea035e054917..92e916d4da26777c778ac877621b7402d4222192 100644 Binary files a/meme_generator/memes/jiujiu/images/2.png and b/meme_generator/memes/jiujiu/images/2.png differ diff --git a/meme_generator/memes/jiujiu/images/3.png b/meme_generator/memes/jiujiu/images/3.png index 5d65d0f2e734a1e04d23f02894570041c3fe5b8a..e6c1cb626ad28049b8d90a390cb5ecb6b904b111 100644 Binary files a/meme_generator/memes/jiujiu/images/3.png and b/meme_generator/memes/jiujiu/images/3.png differ diff --git a/meme_generator/memes/jiujiu/images/4.png b/meme_generator/memes/jiujiu/images/4.png index 3191d8765dad67eb8d8b7b424b98bc7172ffbf5e..7899e8233db78ce932c3cbfafc9defdfb0752376 100644 Binary files a/meme_generator/memes/jiujiu/images/4.png and b/meme_generator/memes/jiujiu/images/4.png differ diff --git a/meme_generator/memes/jiujiu/images/5.png b/meme_generator/memes/jiujiu/images/5.png index 0b19475aedadf54eb0e0f18e728a7c9f30ecd730..1579009b1cb2abe22da24dc36076185d159b71e6 100644 Binary files a/meme_generator/memes/jiujiu/images/5.png and b/meme_generator/memes/jiujiu/images/5.png differ diff --git a/meme_generator/memes/jiujiu/images/6.png b/meme_generator/memes/jiujiu/images/6.png index 566db45ef77c34efd14efa7df2730d9fd94ef18c..0abc11ef47e0407a7e6e636c2213c165b506cb62 100644 Binary files a/meme_generator/memes/jiujiu/images/6.png and b/meme_generator/memes/jiujiu/images/6.png differ diff --git a/meme_generator/memes/jiujiu/images/7.png b/meme_generator/memes/jiujiu/images/7.png index 00675452d09d18710c6eda0c520796020601699f..f448343edb43650c1ab40ef372a8a8c869040134 100644 Binary files a/meme_generator/memes/jiujiu/images/7.png and b/meme_generator/memes/jiujiu/images/7.png differ diff --git a/meme_generator/memes/kaleidoscope/__init__.py b/meme_generator/memes/kaleidoscope/__init__.py index d88c48f959b6651b66319ea7a58c7add927f0b2c..ab17c0e0744f1e74deb281473b660263b474abef 100644 --- a/meme_generator/memes/kaleidoscope/__init__.py +++ b/meme_generator/memes/kaleidoscope/__init__.py @@ -23,7 +23,10 @@ def kaleidoscope(images: List[BuildImage], texts, args: Model): img_per_circle = 4 init_angle = 0 angle_step = 360 / img_per_circle - radius = lambda n: n * 50 + 100 + + def radius(n): + return n * 50 + 100 + cx = cy = radius(circle_num) img = img.convert("RGBA") diff --git a/meme_generator/memes/karyl_point/images/0.png b/meme_generator/memes/karyl_point/images/0.png index dd4f779fb11beb9464c56e8a9db5d3af4851beff..e17b51abf852569863b96587e3179450b650d1b5 100644 Binary files a/meme_generator/memes/karyl_point/images/0.png and b/meme_generator/memes/karyl_point/images/0.png differ diff --git a/meme_generator/memes/kick_ball/images/0.png b/meme_generator/memes/kick_ball/images/0.png index 519ef693a08c7f0dc2c8dfc3cddd422d4dc0b0f5..c1634649408fa9c546c01d1dafc513aaf83f552d 100644 Binary files a/meme_generator/memes/kick_ball/images/0.png and b/meme_generator/memes/kick_ball/images/0.png differ diff --git a/meme_generator/memes/kick_ball/images/1.png b/meme_generator/memes/kick_ball/images/1.png index 1a4f3748bdc6934e5f2d4ee9f2e2484367433268..cba9cdfdbbb1490091d8e4583ffee08bafb20f01 100644 Binary files a/meme_generator/memes/kick_ball/images/1.png and b/meme_generator/memes/kick_ball/images/1.png differ diff --git a/meme_generator/memes/kick_ball/images/10.png b/meme_generator/memes/kick_ball/images/10.png index 1d573b7e2f71846aa0b16d28444ed83285fc848f..b2a8b9dba10c50e058a1d496a5659573c25523dc 100644 Binary files a/meme_generator/memes/kick_ball/images/10.png and b/meme_generator/memes/kick_ball/images/10.png differ diff --git a/meme_generator/memes/kick_ball/images/11.png b/meme_generator/memes/kick_ball/images/11.png index dd74d9b519fa444c0e9b174d7d93bb21330b3aca..8bedf60aee3aea3ce412c829b9411fb0c8d4e32d 100644 Binary files a/meme_generator/memes/kick_ball/images/11.png and b/meme_generator/memes/kick_ball/images/11.png differ diff --git a/meme_generator/memes/kick_ball/images/12.png b/meme_generator/memes/kick_ball/images/12.png index 4343aa62df6fb73e7e699fa7e1e168039a0589f2..7dc7feeabc6b3a63257dc8cf3c62c9f1af3663f0 100644 Binary files a/meme_generator/memes/kick_ball/images/12.png and b/meme_generator/memes/kick_ball/images/12.png differ diff --git a/meme_generator/memes/kick_ball/images/13.png b/meme_generator/memes/kick_ball/images/13.png index 5b0ee62e21c3f82bb03b1737eeb90af724f1e7e4..d4adf8abffc1bd2909aa04822b2f4252d9a54b46 100644 Binary files a/meme_generator/memes/kick_ball/images/13.png and b/meme_generator/memes/kick_ball/images/13.png differ diff --git a/meme_generator/memes/kick_ball/images/14.png b/meme_generator/memes/kick_ball/images/14.png index b912b66ea052d66bd6dd092cc83b14f0417f2ef9..4e02f6b435481bb0e00d9f7e0a4dd31ee400cd11 100644 Binary files a/meme_generator/memes/kick_ball/images/14.png and b/meme_generator/memes/kick_ball/images/14.png differ diff --git a/meme_generator/memes/kick_ball/images/2.png b/meme_generator/memes/kick_ball/images/2.png index 8c80b5f9a82abf442056bbbd29487019eabf5aa1..5fa69a40206f191bfd9e51406ce4763ea0a74bea 100644 Binary files a/meme_generator/memes/kick_ball/images/2.png and b/meme_generator/memes/kick_ball/images/2.png differ diff --git a/meme_generator/memes/kick_ball/images/3.png b/meme_generator/memes/kick_ball/images/3.png index 50437d5fda5af431667579b337c4b5e83522cc88..4f63f0fe99932691358081097ae2af8d91e941f0 100644 Binary files a/meme_generator/memes/kick_ball/images/3.png and b/meme_generator/memes/kick_ball/images/3.png differ diff --git a/meme_generator/memes/kick_ball/images/4.png b/meme_generator/memes/kick_ball/images/4.png index d3d3f286aafa3aafc22f1b160d923a39b5cb2bc3..742c66007c606afdb1640cc873eda5893d36b5cd 100644 Binary files a/meme_generator/memes/kick_ball/images/4.png and b/meme_generator/memes/kick_ball/images/4.png differ diff --git a/meme_generator/memes/kick_ball/images/5.png b/meme_generator/memes/kick_ball/images/5.png index cdeb009f1156b7b79a0131de34ebf13e19b4fe1e..8202791c4eaab88fd51958cb830fe8b483e774d6 100644 Binary files a/meme_generator/memes/kick_ball/images/5.png and b/meme_generator/memes/kick_ball/images/5.png differ diff --git a/meme_generator/memes/kick_ball/images/6.png b/meme_generator/memes/kick_ball/images/6.png index 92e64335d06ff42d4e958843a7c83b0f399894ae..bf995a389a746a3f38744b4730b7b17b673de241 100644 Binary files a/meme_generator/memes/kick_ball/images/6.png and b/meme_generator/memes/kick_ball/images/6.png differ diff --git a/meme_generator/memes/kick_ball/images/7.png b/meme_generator/memes/kick_ball/images/7.png index 7a7ff712ca95a2cf39aa7506967444eef0555c20..f2d14be7422126df3130d608edd813e475545f6e 100644 Binary files a/meme_generator/memes/kick_ball/images/7.png and b/meme_generator/memes/kick_ball/images/7.png differ diff --git a/meme_generator/memes/kick_ball/images/8.png b/meme_generator/memes/kick_ball/images/8.png index 5ee31e41b260af56e7d13da4e5ae3ae1a3f09faf..c9f2ac9cff52f4dbbe275e70e34746e52db8f1a7 100644 Binary files a/meme_generator/memes/kick_ball/images/8.png and b/meme_generator/memes/kick_ball/images/8.png differ diff --git a/meme_generator/memes/kick_ball/images/9.png b/meme_generator/memes/kick_ball/images/9.png index 5b7e5e2b9eac8bd8bdea9728d367aaa878efac7d..35f6061c1928f45eb2a4ace62663f9ad61e5f9de 100644 Binary files a/meme_generator/memes/kick_ball/images/9.png and b/meme_generator/memes/kick_ball/images/9.png differ diff --git a/meme_generator/memes/kirby_hammer/__init__.py b/meme_generator/memes/kirby_hammer/__init__.py index 9bc850c0d9e7f143d86bd6371baceeede2bcdffc..808c491dd820b54b45294ce254ee06c0fcc8b912 100644 --- a/meme_generator/memes/kirby_hammer/__init__.py +++ b/meme_generator/memes/kirby_hammer/__init__.py @@ -22,9 +22,9 @@ class Model(MemeArgsModel): def kirby_hammer(images: List[BuildImage], texts, args: Model): # fmt: off positions = [ - (318, 163), (319, 173), (320, 183), (317, 193), (312, 199), - (297, 212), (289, 218), (280, 224), (278, 223), (278, 220), - (280, 215), (280, 213), (280, 210), (280, 206), (280, 201), + (318, 163), (319, 173), (320, 183), (317, 193), (312, 199), + (297, 212), (289, 218), (280, 224), (278, 223), (278, 220), + (280, 215), (280, 213), (280, 210), (280, 206), (280, 201), (280, 192), (280, 188), (280, 184), (280, 179) ] # fmt: on diff --git a/meme_generator/memes/kirby_hammer/images/0.png b/meme_generator/memes/kirby_hammer/images/0.png index 48e1edadb34de60392309aa5b0e28aff1ae7158f..ee6a46391f62d8b68a518e792f78b21dd4f305db 100644 Binary files a/meme_generator/memes/kirby_hammer/images/0.png and b/meme_generator/memes/kirby_hammer/images/0.png differ diff --git a/meme_generator/memes/kirby_hammer/images/1.png b/meme_generator/memes/kirby_hammer/images/1.png index 30abd81f6ed8ebefcf28feb6b2dd859f2a8a0c70..692fd48810e71384d57dc30322b56ec1ef30aafe 100644 Binary files a/meme_generator/memes/kirby_hammer/images/1.png and b/meme_generator/memes/kirby_hammer/images/1.png differ diff --git a/meme_generator/memes/kirby_hammer/images/10.png b/meme_generator/memes/kirby_hammer/images/10.png index 4d4842ea53b8deec546ec524c84fc06384028508..9ff0825b7daf3e9f1150d1b37219a31dbae69aa7 100644 Binary files a/meme_generator/memes/kirby_hammer/images/10.png and b/meme_generator/memes/kirby_hammer/images/10.png differ diff --git a/meme_generator/memes/kirby_hammer/images/11.png b/meme_generator/memes/kirby_hammer/images/11.png index 30bc3e46a1f4fa325e2ecab5634bec92a2106703..27bf877469f5a3894209b40367a1fc8dbb0899e8 100644 Binary files a/meme_generator/memes/kirby_hammer/images/11.png and b/meme_generator/memes/kirby_hammer/images/11.png differ diff --git a/meme_generator/memes/kirby_hammer/images/12.png b/meme_generator/memes/kirby_hammer/images/12.png index 06b243f68aba02a78fcb718da294e46e08102a8a..b6590134f5422992238228ff87464a8037afa5f1 100644 Binary files a/meme_generator/memes/kirby_hammer/images/12.png and b/meme_generator/memes/kirby_hammer/images/12.png differ diff --git a/meme_generator/memes/kirby_hammer/images/13.png b/meme_generator/memes/kirby_hammer/images/13.png index 3aed1f2f47791e26167201d4e4e6211ba2a4f866..a258e6c4f1cea8715c101a252ddd5b0230baeb53 100644 Binary files a/meme_generator/memes/kirby_hammer/images/13.png and b/meme_generator/memes/kirby_hammer/images/13.png differ diff --git a/meme_generator/memes/kirby_hammer/images/14.png b/meme_generator/memes/kirby_hammer/images/14.png index 7e1844235b86d4e2a73cabfaf7c4d157fc9dc4ca..dc384a019f800939f8fa5dee4551e23b511118f9 100644 Binary files a/meme_generator/memes/kirby_hammer/images/14.png and b/meme_generator/memes/kirby_hammer/images/14.png differ diff --git a/meme_generator/memes/kirby_hammer/images/15.png b/meme_generator/memes/kirby_hammer/images/15.png index 7e517de63fac4fe690afb89352e93b34702231fa..e6383fb869ab8c51e1e9e6f4a9f905cce1c8438f 100644 Binary files a/meme_generator/memes/kirby_hammer/images/15.png and b/meme_generator/memes/kirby_hammer/images/15.png differ diff --git a/meme_generator/memes/kirby_hammer/images/16.png b/meme_generator/memes/kirby_hammer/images/16.png index f896366d4f42874b1991e1f0d7ff087f74946176..4b48aeb9c1279a640c797ea0c8815705596e8ed0 100644 Binary files a/meme_generator/memes/kirby_hammer/images/16.png and b/meme_generator/memes/kirby_hammer/images/16.png differ diff --git a/meme_generator/memes/kirby_hammer/images/17.png b/meme_generator/memes/kirby_hammer/images/17.png index cce4aede56e64198e0fb3bee4ce088358bbccfba..39154b186b32047be586c4c7067a15eb99c58f7e 100644 Binary files a/meme_generator/memes/kirby_hammer/images/17.png and b/meme_generator/memes/kirby_hammer/images/17.png differ diff --git a/meme_generator/memes/kirby_hammer/images/18.png b/meme_generator/memes/kirby_hammer/images/18.png index 8efec0afc6f8f450b2f3b7224b98e0e2ca400abf..9178de897e7ecdaf24c7b869c15a996af59e1507 100644 Binary files a/meme_generator/memes/kirby_hammer/images/18.png and b/meme_generator/memes/kirby_hammer/images/18.png differ diff --git a/meme_generator/memes/kirby_hammer/images/19.png b/meme_generator/memes/kirby_hammer/images/19.png index c2ad618bf695801f29a55549203a37f5d151e8cd..3f1cae0299faba41168c4ba9cd28a2c3a4296999 100644 Binary files a/meme_generator/memes/kirby_hammer/images/19.png and b/meme_generator/memes/kirby_hammer/images/19.png differ diff --git a/meme_generator/memes/kirby_hammer/images/2.png b/meme_generator/memes/kirby_hammer/images/2.png index 94cf485a0680a60e20a0a7cc8ec9f3d67f00cc74..d28bac230b140df0e0f2bc272dde0571c787b2a5 100644 Binary files a/meme_generator/memes/kirby_hammer/images/2.png and b/meme_generator/memes/kirby_hammer/images/2.png differ diff --git a/meme_generator/memes/kirby_hammer/images/20.png b/meme_generator/memes/kirby_hammer/images/20.png index f6d1f130dbbb10a08388b68efa5b51b1c6d421b0..12ee821615b845ff5daabf559595ab0fc81cd7c6 100644 Binary files a/meme_generator/memes/kirby_hammer/images/20.png and b/meme_generator/memes/kirby_hammer/images/20.png differ diff --git a/meme_generator/memes/kirby_hammer/images/21.png b/meme_generator/memes/kirby_hammer/images/21.png index 4e145a3f6f2f2e4454618e9859fb289d3c585e64..41029c165f921cf19674fc0ced9ac8ec69cddc8b 100644 Binary files a/meme_generator/memes/kirby_hammer/images/21.png and b/meme_generator/memes/kirby_hammer/images/21.png differ diff --git a/meme_generator/memes/kirby_hammer/images/22.png b/meme_generator/memes/kirby_hammer/images/22.png index 02472281c8f4496c6b6e68667cc56941d927b481..c8aa9426e4ff7cbd2420ce41c2f91298ab8f4f8b 100644 Binary files a/meme_generator/memes/kirby_hammer/images/22.png and b/meme_generator/memes/kirby_hammer/images/22.png differ diff --git a/meme_generator/memes/kirby_hammer/images/23.png b/meme_generator/memes/kirby_hammer/images/23.png index c8e197f0e6a6e0a1a27b00d9812fd4d8905ff497..47c66b6988b6da753ada511a44be28f8baabb327 100644 Binary files a/meme_generator/memes/kirby_hammer/images/23.png and b/meme_generator/memes/kirby_hammer/images/23.png differ diff --git a/meme_generator/memes/kirby_hammer/images/24.png b/meme_generator/memes/kirby_hammer/images/24.png index 4089727512d33349906ed55c0acfd06533825777..45498075182ffe8796d4fa94c31c75c4209a0093 100644 Binary files a/meme_generator/memes/kirby_hammer/images/24.png and b/meme_generator/memes/kirby_hammer/images/24.png differ diff --git a/meme_generator/memes/kirby_hammer/images/25.png b/meme_generator/memes/kirby_hammer/images/25.png index df665c5fa663e3873ad7fa6cf1e7f47effb5af72..367c123ce257d4f0040129b58cc5568e5f329e56 100644 Binary files a/meme_generator/memes/kirby_hammer/images/25.png and b/meme_generator/memes/kirby_hammer/images/25.png differ diff --git a/meme_generator/memes/kirby_hammer/images/26.png b/meme_generator/memes/kirby_hammer/images/26.png index bff77e464132acedf7d555ddb8b4f22390e7a1d1..7a3b8a05aa4b4e8234c87e9b1fa586a549dd715f 100644 Binary files a/meme_generator/memes/kirby_hammer/images/26.png and b/meme_generator/memes/kirby_hammer/images/26.png differ diff --git a/meme_generator/memes/kirby_hammer/images/27.png b/meme_generator/memes/kirby_hammer/images/27.png index fe3328cc5f865a8fb863c39d79d62afe3e34f559..29b04330bf0102fbaf305c0aaaba7a2a8cee633e 100644 Binary files a/meme_generator/memes/kirby_hammer/images/27.png and b/meme_generator/memes/kirby_hammer/images/27.png differ diff --git a/meme_generator/memes/kirby_hammer/images/28.png b/meme_generator/memes/kirby_hammer/images/28.png index 3674eb34709ce4ab83a7b41826277d742b2b6693..f69bcc4f68d895a0246c264343c3b33b445f2edc 100644 Binary files a/meme_generator/memes/kirby_hammer/images/28.png and b/meme_generator/memes/kirby_hammer/images/28.png differ diff --git a/meme_generator/memes/kirby_hammer/images/29.png b/meme_generator/memes/kirby_hammer/images/29.png index 4908e5986c85aeb768984b2164d4beb5921b0aef..7d7fbb8a0af8bbdce7c07b707db39a17f31424e8 100644 Binary files a/meme_generator/memes/kirby_hammer/images/29.png and b/meme_generator/memes/kirby_hammer/images/29.png differ diff --git a/meme_generator/memes/kirby_hammer/images/3.png b/meme_generator/memes/kirby_hammer/images/3.png index 3e706cc0593862ea38150fb890ecdbb3adb401f2..b0693f970f2bf20d1088e9395201f263e5436ef1 100644 Binary files a/meme_generator/memes/kirby_hammer/images/3.png and b/meme_generator/memes/kirby_hammer/images/3.png differ diff --git a/meme_generator/memes/kirby_hammer/images/30.png b/meme_generator/memes/kirby_hammer/images/30.png index 1a8f72e8e21eb3cac961367594695f37e7990066..e3f28dccb23d53857844e5f36956ec184d46beba 100644 Binary files a/meme_generator/memes/kirby_hammer/images/30.png and b/meme_generator/memes/kirby_hammer/images/30.png differ diff --git a/meme_generator/memes/kirby_hammer/images/31.png b/meme_generator/memes/kirby_hammer/images/31.png index 9885e204fa69cd0538faf3177cd7e103140a0cd0..6d47c67b9ecba7dfbb40456b36b174e4ddc21c88 100644 Binary files a/meme_generator/memes/kirby_hammer/images/31.png and b/meme_generator/memes/kirby_hammer/images/31.png differ diff --git a/meme_generator/memes/kirby_hammer/images/32.png b/meme_generator/memes/kirby_hammer/images/32.png index 2c9e957ee53e9832ab201d29357b0909bceec199..059e6bf6b90f5171ca21635779021dd587be3ed2 100644 Binary files a/meme_generator/memes/kirby_hammer/images/32.png and b/meme_generator/memes/kirby_hammer/images/32.png differ diff --git a/meme_generator/memes/kirby_hammer/images/33.png b/meme_generator/memes/kirby_hammer/images/33.png index 76c158d5d3c8bed56593344a9c5223872574931f..0412b9c05c12dac6bca3f41f40899af72cd3e5a6 100644 Binary files a/meme_generator/memes/kirby_hammer/images/33.png and b/meme_generator/memes/kirby_hammer/images/33.png differ diff --git a/meme_generator/memes/kirby_hammer/images/34.png b/meme_generator/memes/kirby_hammer/images/34.png index 855ffd955e28e6b0b0212c123617c45390db034e..4761fb3a959a9ef2481f884eb35d40257753a255 100644 Binary files a/meme_generator/memes/kirby_hammer/images/34.png and b/meme_generator/memes/kirby_hammer/images/34.png differ diff --git a/meme_generator/memes/kirby_hammer/images/35.png b/meme_generator/memes/kirby_hammer/images/35.png index 97fb03d54f0094a95bcf253f83aa528970c1d204..1d859e14646e1fc2c1cb76d8375dde88f16947de 100644 Binary files a/meme_generator/memes/kirby_hammer/images/35.png and b/meme_generator/memes/kirby_hammer/images/35.png differ diff --git a/meme_generator/memes/kirby_hammer/images/36.png b/meme_generator/memes/kirby_hammer/images/36.png index f57b3254553e3346373cc09c59dc30c54d83aec4..9b576739d25fbd1384a4309fbc91d115726f01a3 100644 Binary files a/meme_generator/memes/kirby_hammer/images/36.png and b/meme_generator/memes/kirby_hammer/images/36.png differ diff --git a/meme_generator/memes/kirby_hammer/images/37.png b/meme_generator/memes/kirby_hammer/images/37.png index d54e1a80ab681528c4f2d0e0a53d7f33c835b4e1..741514eb0a5433485f0ba6883cd4c04bc5765773 100644 Binary files a/meme_generator/memes/kirby_hammer/images/37.png and b/meme_generator/memes/kirby_hammer/images/37.png differ diff --git a/meme_generator/memes/kirby_hammer/images/38.png b/meme_generator/memes/kirby_hammer/images/38.png index c7ea05e198cb74bc5bc36bad77ac248bd3e551f7..382e4aab59ae4a1f333299ec3b80d61809db045d 100644 Binary files a/meme_generator/memes/kirby_hammer/images/38.png and b/meme_generator/memes/kirby_hammer/images/38.png differ diff --git a/meme_generator/memes/kirby_hammer/images/39.png b/meme_generator/memes/kirby_hammer/images/39.png index ec4cd17d6b8db48f5e453268b440bc969c6de3ad..74db844e88bb0b95b4c5ca44dba80143ce713c52 100644 Binary files a/meme_generator/memes/kirby_hammer/images/39.png and b/meme_generator/memes/kirby_hammer/images/39.png differ diff --git a/meme_generator/memes/kirby_hammer/images/4.png b/meme_generator/memes/kirby_hammer/images/4.png index d15a58fd3ab2e7e5497c83fff0b8ec7b5ed51c9f..1b7d1a5228577640568f7ea54506cafb31e3faad 100644 Binary files a/meme_generator/memes/kirby_hammer/images/4.png and b/meme_generator/memes/kirby_hammer/images/4.png differ diff --git a/meme_generator/memes/kirby_hammer/images/40.png b/meme_generator/memes/kirby_hammer/images/40.png index 2f3173facbe6ec77d723fa1715f1765070e46ab4..9ae22625e8b246b56c8ab0e2d9d3307d31876c66 100644 Binary files a/meme_generator/memes/kirby_hammer/images/40.png and b/meme_generator/memes/kirby_hammer/images/40.png differ diff --git a/meme_generator/memes/kirby_hammer/images/41.png b/meme_generator/memes/kirby_hammer/images/41.png index 4b5d071fd5b7251407ab22aa0d7adbea307fea8f..df4e46f60888eabba8e431e216227e718adc98ab 100644 Binary files a/meme_generator/memes/kirby_hammer/images/41.png and b/meme_generator/memes/kirby_hammer/images/41.png differ diff --git a/meme_generator/memes/kirby_hammer/images/42.png b/meme_generator/memes/kirby_hammer/images/42.png index f63ef0488d9010273707bdc2fd150f5fd0bf737e..4a5e1a9ae55852206d90cdee09724fbb01b98ca0 100644 Binary files a/meme_generator/memes/kirby_hammer/images/42.png and b/meme_generator/memes/kirby_hammer/images/42.png differ diff --git a/meme_generator/memes/kirby_hammer/images/43.png b/meme_generator/memes/kirby_hammer/images/43.png index 294624ca41b8c6565fd7cb84b2f035aeeaf44721..2cd981de0fdc3e821a777da48ae5c643f7029d30 100644 Binary files a/meme_generator/memes/kirby_hammer/images/43.png and b/meme_generator/memes/kirby_hammer/images/43.png differ diff --git a/meme_generator/memes/kirby_hammer/images/44.png b/meme_generator/memes/kirby_hammer/images/44.png index 8a82bb863b75c69dee12637f9457c969fee436e6..c717e057fd9d3e2c0df8d8f753f6f1db28411019 100644 Binary files a/meme_generator/memes/kirby_hammer/images/44.png and b/meme_generator/memes/kirby_hammer/images/44.png differ diff --git a/meme_generator/memes/kirby_hammer/images/45.png b/meme_generator/memes/kirby_hammer/images/45.png index 02e4c5002ddf414e8cafb9ee0212597a920bb6b9..84c286b43b9aef2def81f7e7666d0cf55de31335 100644 Binary files a/meme_generator/memes/kirby_hammer/images/45.png and b/meme_generator/memes/kirby_hammer/images/45.png differ diff --git a/meme_generator/memes/kirby_hammer/images/46.png b/meme_generator/memes/kirby_hammer/images/46.png index 24adae3831d9e5caedfec8ffb9fefb411488c93f..38444021839798c66fc90384c3139a80379c26dc 100644 Binary files a/meme_generator/memes/kirby_hammer/images/46.png and b/meme_generator/memes/kirby_hammer/images/46.png differ diff --git a/meme_generator/memes/kirby_hammer/images/47.png b/meme_generator/memes/kirby_hammer/images/47.png index 6a03c0732d91561158ce46c30ccee892e93de9ad..94ffe43bd3bc3cf8baf1120f47a0600700c74724 100644 Binary files a/meme_generator/memes/kirby_hammer/images/47.png and b/meme_generator/memes/kirby_hammer/images/47.png differ diff --git a/meme_generator/memes/kirby_hammer/images/48.png b/meme_generator/memes/kirby_hammer/images/48.png index f5e657212a133ddd4a7b55cc7f66585a03f6b5a3..f0043d615810dde29e4c933d7c1b3afc4b177dae 100644 Binary files a/meme_generator/memes/kirby_hammer/images/48.png and b/meme_generator/memes/kirby_hammer/images/48.png differ diff --git a/meme_generator/memes/kirby_hammer/images/49.png b/meme_generator/memes/kirby_hammer/images/49.png index 84ff9a24081b503530dc5430c84f818c3051df90..85ad394f2149922f454e78bad5a6823af62fe18c 100644 Binary files a/meme_generator/memes/kirby_hammer/images/49.png and b/meme_generator/memes/kirby_hammer/images/49.png differ diff --git a/meme_generator/memes/kirby_hammer/images/5.png b/meme_generator/memes/kirby_hammer/images/5.png index 6627785b956e7cf4a7f61c6141bec344fa6f34e9..44b651e73cb41358899f8de8b28c005dc0a74467 100644 Binary files a/meme_generator/memes/kirby_hammer/images/5.png and b/meme_generator/memes/kirby_hammer/images/5.png differ diff --git a/meme_generator/memes/kirby_hammer/images/50.png b/meme_generator/memes/kirby_hammer/images/50.png index b312b5d19734713405030f304403aa914e978441..028668db0dfbd6bad3c63c4cc9de8271dfac1fe1 100644 Binary files a/meme_generator/memes/kirby_hammer/images/50.png and b/meme_generator/memes/kirby_hammer/images/50.png differ diff --git a/meme_generator/memes/kirby_hammer/images/51.png b/meme_generator/memes/kirby_hammer/images/51.png index 67affe7fe25ea38b4734de74b0d0e50d0476e06a..61cb9c9a52dc168ec6bc1302d8e019a9930c52e5 100644 Binary files a/meme_generator/memes/kirby_hammer/images/51.png and b/meme_generator/memes/kirby_hammer/images/51.png differ diff --git a/meme_generator/memes/kirby_hammer/images/52.png b/meme_generator/memes/kirby_hammer/images/52.png index 9570ef3d957881e6501add876478472dbfacb061..94f60a91b72fe312bb39842a77185905d78fa9a8 100644 Binary files a/meme_generator/memes/kirby_hammer/images/52.png and b/meme_generator/memes/kirby_hammer/images/52.png differ diff --git a/meme_generator/memes/kirby_hammer/images/53.png b/meme_generator/memes/kirby_hammer/images/53.png index 9cb3971873649719dbad40b9d8df65d7ee209640..9c4e2f01720d21eec8444469ad0e5912ad79c821 100644 Binary files a/meme_generator/memes/kirby_hammer/images/53.png and b/meme_generator/memes/kirby_hammer/images/53.png differ diff --git a/meme_generator/memes/kirby_hammer/images/54.png b/meme_generator/memes/kirby_hammer/images/54.png index d30979190daa9b5e401df794254fb050cbe492be..9a64f9fffc7e61fefe6248c3b4b1515ed76630b1 100644 Binary files a/meme_generator/memes/kirby_hammer/images/54.png and b/meme_generator/memes/kirby_hammer/images/54.png differ diff --git a/meme_generator/memes/kirby_hammer/images/55.png b/meme_generator/memes/kirby_hammer/images/55.png index d6e6fa2f74947c4b02272f17629dede4bd8f1e58..5bde8bba4afdd332c5fecdbcf86df1fac7815bc9 100644 Binary files a/meme_generator/memes/kirby_hammer/images/55.png and b/meme_generator/memes/kirby_hammer/images/55.png differ diff --git a/meme_generator/memes/kirby_hammer/images/56.png b/meme_generator/memes/kirby_hammer/images/56.png index 4adf4076813f2cae420886f44a1a8b8b85758b4b..e3935bafcf6787f3a4f590752882cd215491d537 100644 Binary files a/meme_generator/memes/kirby_hammer/images/56.png and b/meme_generator/memes/kirby_hammer/images/56.png differ diff --git a/meme_generator/memes/kirby_hammer/images/57.png b/meme_generator/memes/kirby_hammer/images/57.png index fcf70b6703593819b5f588c2562967a4c895d68f..05c3a9e367ce76524314821d5373c1dc491d970f 100644 Binary files a/meme_generator/memes/kirby_hammer/images/57.png and b/meme_generator/memes/kirby_hammer/images/57.png differ diff --git a/meme_generator/memes/kirby_hammer/images/58.png b/meme_generator/memes/kirby_hammer/images/58.png index 1f1d36eb488f880fe86d1c37adc7a8a8920db03f..e758f5bb83df8224b75d2495e8ae2fd5b365fd16 100644 Binary files a/meme_generator/memes/kirby_hammer/images/58.png and b/meme_generator/memes/kirby_hammer/images/58.png differ diff --git a/meme_generator/memes/kirby_hammer/images/59.png b/meme_generator/memes/kirby_hammer/images/59.png index 26879789b3f1a34f6c66d9f8fc7c5f7116f510b9..057443f5813fe4c9a685bb0670e48aa6bf45783a 100644 Binary files a/meme_generator/memes/kirby_hammer/images/59.png and b/meme_generator/memes/kirby_hammer/images/59.png differ diff --git a/meme_generator/memes/kirby_hammer/images/6.png b/meme_generator/memes/kirby_hammer/images/6.png index bcb05fb1059d2bb0b5c6dda0977b3c64797bc20d..05439fcf235858bbf9766f9c00df3680c151c1d9 100644 Binary files a/meme_generator/memes/kirby_hammer/images/6.png and b/meme_generator/memes/kirby_hammer/images/6.png differ diff --git a/meme_generator/memes/kirby_hammer/images/60.png b/meme_generator/memes/kirby_hammer/images/60.png index 3abe4e061ff7ccaba742faad1a733c93bab6867a..f187f6623c54b6a3102247b7d5c8336ce78f5fb6 100644 Binary files a/meme_generator/memes/kirby_hammer/images/60.png and b/meme_generator/memes/kirby_hammer/images/60.png differ diff --git a/meme_generator/memes/kirby_hammer/images/61.png b/meme_generator/memes/kirby_hammer/images/61.png index 39ea9f46f488c11aaa37ea8c6b1750a8ad793bdc..7092fc22aeb8f28699a70068c3d0052ccd6968e8 100644 Binary files a/meme_generator/memes/kirby_hammer/images/61.png and b/meme_generator/memes/kirby_hammer/images/61.png differ diff --git a/meme_generator/memes/kirby_hammer/images/7.png b/meme_generator/memes/kirby_hammer/images/7.png index 16a395b58d41e9e8a663354535a8567a2839f1e1..cbe3fcc1f3f13e49683a7d75ceeaecc0bcf5fdb8 100644 Binary files a/meme_generator/memes/kirby_hammer/images/7.png and b/meme_generator/memes/kirby_hammer/images/7.png differ diff --git a/meme_generator/memes/kirby_hammer/images/8.png b/meme_generator/memes/kirby_hammer/images/8.png index 028c7fd17b0c624ece08fb8df6af3ba51bc294f9..fea1d02996539cf61a7f6f764c8d7d896851ac7f 100644 Binary files a/meme_generator/memes/kirby_hammer/images/8.png and b/meme_generator/memes/kirby_hammer/images/8.png differ diff --git a/meme_generator/memes/kirby_hammer/images/9.png b/meme_generator/memes/kirby_hammer/images/9.png index 8e5e596b0ce67173f062af05d87aa2ac1f7066bd..c799aabffa7c54b8ce08a3b9c40c57bc180f60c4 100644 Binary files a/meme_generator/memes/kirby_hammer/images/9.png and b/meme_generator/memes/kirby_hammer/images/9.png differ diff --git a/meme_generator/memes/kiss/images/0.png b/meme_generator/memes/kiss/images/0.png index 7d6e3c14e66859019844cce03d76a76521363d79..34efcc66a31381bef7501eb98d92559b97d062d1 100644 Binary files a/meme_generator/memes/kiss/images/0.png and b/meme_generator/memes/kiss/images/0.png differ diff --git a/meme_generator/memes/kiss/images/1.png b/meme_generator/memes/kiss/images/1.png index 11a00de22bf9f47fbfc33dc84b0dc3e5401715f3..d655ee52c17034fabf3fff922b2bbdd659435d93 100644 Binary files a/meme_generator/memes/kiss/images/1.png and b/meme_generator/memes/kiss/images/1.png differ diff --git a/meme_generator/memes/kiss/images/10.png b/meme_generator/memes/kiss/images/10.png index 35aad7016dc27aa57500df3eecc76ef7bb956037..4bcd455ad03e0497a19bceafad9dd1e93ad8eb5a 100644 Binary files a/meme_generator/memes/kiss/images/10.png and b/meme_generator/memes/kiss/images/10.png differ diff --git a/meme_generator/memes/kiss/images/11.png b/meme_generator/memes/kiss/images/11.png index 751afe37f7fc1252a5f573239e7559ec0f30aae8..81ccc96b41780603dda84060172a17e74df602f3 100644 Binary files a/meme_generator/memes/kiss/images/11.png and b/meme_generator/memes/kiss/images/11.png differ diff --git a/meme_generator/memes/kiss/images/12.png b/meme_generator/memes/kiss/images/12.png index a83295044ad1369a623b8e88d036213a40c64d53..055e799c845d3e2f8ac987d80fe019c4a29c7b55 100644 Binary files a/meme_generator/memes/kiss/images/12.png and b/meme_generator/memes/kiss/images/12.png differ diff --git a/meme_generator/memes/kiss/images/2.png b/meme_generator/memes/kiss/images/2.png index a1c42322cc4a8a963643da1c1cf8acf881e39f04..d25dceda1c7ee985c9b31857c9ae5c2611a0bce1 100644 Binary files a/meme_generator/memes/kiss/images/2.png and b/meme_generator/memes/kiss/images/2.png differ diff --git a/meme_generator/memes/kiss/images/3.png b/meme_generator/memes/kiss/images/3.png index aa53f0eb1215883bb858a5c8aa55220c6933154e..8f67838179e5cc455898c05762ffffd369920ace 100644 Binary files a/meme_generator/memes/kiss/images/3.png and b/meme_generator/memes/kiss/images/3.png differ diff --git a/meme_generator/memes/kiss/images/4.png b/meme_generator/memes/kiss/images/4.png index a1e73582b8a8e85a426e145bceeba72abf6b5b7c..a6decab018098de0d656b5584c0b9c91ff894014 100644 Binary files a/meme_generator/memes/kiss/images/4.png and b/meme_generator/memes/kiss/images/4.png differ diff --git a/meme_generator/memes/kiss/images/5.png b/meme_generator/memes/kiss/images/5.png index e9585db62f3e5132effe1da16a70117128c05b7b..d755ac1639837b31c0b80879e993ee6dc106d45b 100644 Binary files a/meme_generator/memes/kiss/images/5.png and b/meme_generator/memes/kiss/images/5.png differ diff --git a/meme_generator/memes/kiss/images/6.png b/meme_generator/memes/kiss/images/6.png index 789ae6593e76601b72d8a8ce310be9286e27a7dd..531f3f15f920335961144436f81a00e989dfdfe9 100644 Binary files a/meme_generator/memes/kiss/images/6.png and b/meme_generator/memes/kiss/images/6.png differ diff --git a/meme_generator/memes/kiss/images/7.png b/meme_generator/memes/kiss/images/7.png index f477d684597fa1a77747623dd20ba085475dfea8..fed494a1fd2630e982f32475cb94cb948b5534a4 100644 Binary files a/meme_generator/memes/kiss/images/7.png and b/meme_generator/memes/kiss/images/7.png differ diff --git a/meme_generator/memes/kiss/images/8.png b/meme_generator/memes/kiss/images/8.png index 231761e8f7cb41c35d26393715f947aab0fa7cf8..69c85df3435800ff682a4d123f6195719f90452b 100644 Binary files a/meme_generator/memes/kiss/images/8.png and b/meme_generator/memes/kiss/images/8.png differ diff --git a/meme_generator/memes/kiss/images/9.png b/meme_generator/memes/kiss/images/9.png index bcd2a7cc3517a95bb8ed2ac0b446b1b0e5d38bb3..5f5af3e2ce713bdbc3f766ab64674f4f4729e211 100644 Binary files a/meme_generator/memes/kiss/images/9.png and b/meme_generator/memes/kiss/images/9.png differ diff --git a/meme_generator/memes/klee_eat/images/0.png b/meme_generator/memes/klee_eat/images/0.png index f9b7f315c6df797d8d6fdba100a1d8263bc643d1..83c5677940b37ade8b09813a7a1ffee8a5c7d49a 100644 Binary files a/meme_generator/memes/klee_eat/images/0.png and b/meme_generator/memes/klee_eat/images/0.png differ diff --git a/meme_generator/memes/klee_eat/images/1.png b/meme_generator/memes/klee_eat/images/1.png index cd03c7a75ed2c1418ceb1452ff02bc2b994c66cf..48749888541f8a7e8a833d2bae35be1b89e9f47f 100644 Binary files a/meme_generator/memes/klee_eat/images/1.png and b/meme_generator/memes/klee_eat/images/1.png differ diff --git a/meme_generator/memes/klee_eat/images/10.png b/meme_generator/memes/klee_eat/images/10.png index a56d4eb7a94666a6d3c760fe893410bf0ec4a696..5c5bc3ea0a8926c24b103e91c6cb6757a52132a7 100644 Binary files a/meme_generator/memes/klee_eat/images/10.png and b/meme_generator/memes/klee_eat/images/10.png differ diff --git a/meme_generator/memes/klee_eat/images/11.png b/meme_generator/memes/klee_eat/images/11.png index 0709b5ac8bf6b7450f21956b8e2db990bc4049d3..4062e27553830e3322a1d4a9da0c2d23f8a62ba2 100644 Binary files a/meme_generator/memes/klee_eat/images/11.png and b/meme_generator/memes/klee_eat/images/11.png differ diff --git a/meme_generator/memes/klee_eat/images/12.png b/meme_generator/memes/klee_eat/images/12.png index 04ebe1764969e1ec50d6f6b26faa63e7a35bce90..3f694a565b3a91a8758a44ccc26603e7b4d864b6 100644 Binary files a/meme_generator/memes/klee_eat/images/12.png and b/meme_generator/memes/klee_eat/images/12.png differ diff --git a/meme_generator/memes/klee_eat/images/13.png b/meme_generator/memes/klee_eat/images/13.png index 60036d4a41ed2ee4674e2058e0d33e23982f5c6e..e9b343d0e05d5a94d28ac335f46667bd61bd6185 100644 Binary files a/meme_generator/memes/klee_eat/images/13.png and b/meme_generator/memes/klee_eat/images/13.png differ diff --git a/meme_generator/memes/klee_eat/images/14.png b/meme_generator/memes/klee_eat/images/14.png index a67cf81ab7e516c0c35e597d45b93396d3d9965a..fdc597088ccea67976158531cfd7ff7f067294c0 100644 Binary files a/meme_generator/memes/klee_eat/images/14.png and b/meme_generator/memes/klee_eat/images/14.png differ diff --git a/meme_generator/memes/klee_eat/images/15.png b/meme_generator/memes/klee_eat/images/15.png index a33c182e6c63892bcca978e0802be818b72e500d..4b63de95ac4046e4cd90b82f3a57c2abc671485d 100644 Binary files a/meme_generator/memes/klee_eat/images/15.png and b/meme_generator/memes/klee_eat/images/15.png differ diff --git a/meme_generator/memes/klee_eat/images/16.png b/meme_generator/memes/klee_eat/images/16.png index db94368defbbee78d8984da2a8ead2a2be8097b7..ba24fe62a067ee9cc41f3741010a641e789fe186 100644 Binary files a/meme_generator/memes/klee_eat/images/16.png and b/meme_generator/memes/klee_eat/images/16.png differ diff --git a/meme_generator/memes/klee_eat/images/17.png b/meme_generator/memes/klee_eat/images/17.png index 2c4dc73f1a6f8ef95a279d6f25c0ca24f81b4e01..bb623c781bb99447c126331a2e4b8c310fb0e56e 100644 Binary files a/meme_generator/memes/klee_eat/images/17.png and b/meme_generator/memes/klee_eat/images/17.png differ diff --git a/meme_generator/memes/klee_eat/images/18.png b/meme_generator/memes/klee_eat/images/18.png index b6f5eefb8a372aff049c9ef80676ab8f65816349..b6875a2fbe4339f2e7f61f0f1a9dca6f739681e5 100644 Binary files a/meme_generator/memes/klee_eat/images/18.png and b/meme_generator/memes/klee_eat/images/18.png differ diff --git a/meme_generator/memes/klee_eat/images/19.png b/meme_generator/memes/klee_eat/images/19.png index 581fa101436456ac94469a3fe400c6d10c452fc2..1efafa546e58425f267aad47f25cf1efad6de270 100644 Binary files a/meme_generator/memes/klee_eat/images/19.png and b/meme_generator/memes/klee_eat/images/19.png differ diff --git a/meme_generator/memes/klee_eat/images/2.png b/meme_generator/memes/klee_eat/images/2.png index 2f0e19ea2630566249c8821e877634e83cfbdca2..bbbe9a30cd5dce8d4dd728ef7eaa42692167577a 100644 Binary files a/meme_generator/memes/klee_eat/images/2.png and b/meme_generator/memes/klee_eat/images/2.png differ diff --git a/meme_generator/memes/klee_eat/images/20.png b/meme_generator/memes/klee_eat/images/20.png index edbad5959042dd99cdb4a973ed873cb2827849e0..eca0fea9b39824e373a90853f1c0dcc7c9f8b2b9 100644 Binary files a/meme_generator/memes/klee_eat/images/20.png and b/meme_generator/memes/klee_eat/images/20.png differ diff --git a/meme_generator/memes/klee_eat/images/21.png b/meme_generator/memes/klee_eat/images/21.png index 3f725afa78856bcc1ee722dae1380582b64f97ad..b46bdc2fec5be49a475c622bf069aab2dabdce27 100644 Binary files a/meme_generator/memes/klee_eat/images/21.png and b/meme_generator/memes/klee_eat/images/21.png differ diff --git a/meme_generator/memes/klee_eat/images/22.png b/meme_generator/memes/klee_eat/images/22.png index 08afa3c5f88a34fb74de7edcf5a12b30a3dd7067..ab0f6ad023f1a710e98e46a38cc3703c7fb2a309 100644 Binary files a/meme_generator/memes/klee_eat/images/22.png and b/meme_generator/memes/klee_eat/images/22.png differ diff --git a/meme_generator/memes/klee_eat/images/23.png b/meme_generator/memes/klee_eat/images/23.png index c248d3547098c900fb0e55197a8ae40ef2d500d7..342e5aeb8b9467c55ae1379369826f2742aefa11 100644 Binary files a/meme_generator/memes/klee_eat/images/23.png and b/meme_generator/memes/klee_eat/images/23.png differ diff --git a/meme_generator/memes/klee_eat/images/24.png b/meme_generator/memes/klee_eat/images/24.png index 0a9f0054e6af214e49176a1d85093b55d727c683..810e74422f3197e543420685d47d1d474357a8ff 100644 Binary files a/meme_generator/memes/klee_eat/images/24.png and b/meme_generator/memes/klee_eat/images/24.png differ diff --git a/meme_generator/memes/klee_eat/images/25.png b/meme_generator/memes/klee_eat/images/25.png index 78ab9d6b100fd87d451c30ea8056b080288261f9..a5fd58d99bdbc3fbb4d9c45d8f8a4af843c69ea4 100644 Binary files a/meme_generator/memes/klee_eat/images/25.png and b/meme_generator/memes/klee_eat/images/25.png differ diff --git a/meme_generator/memes/klee_eat/images/26.png b/meme_generator/memes/klee_eat/images/26.png index 77035e7bee5bd5ea80d0c8e74ef90cae37124b26..2f6b03917f3f0d567082cdab4f7d1f2836900333 100644 Binary files a/meme_generator/memes/klee_eat/images/26.png and b/meme_generator/memes/klee_eat/images/26.png differ diff --git a/meme_generator/memes/klee_eat/images/27.png b/meme_generator/memes/klee_eat/images/27.png index f80a0867c6c2c457bb457e65e90e5c49078e0f62..e06346fd8ca8c345a1749266f113f97c00e20e88 100644 Binary files a/meme_generator/memes/klee_eat/images/27.png and b/meme_generator/memes/klee_eat/images/27.png differ diff --git a/meme_generator/memes/klee_eat/images/28.png b/meme_generator/memes/klee_eat/images/28.png index 4b85e47f686e58ba71dbb139e79737d15ee08cc8..fa959c14c41128bc942826c985bbccdfcdadd3ef 100644 Binary files a/meme_generator/memes/klee_eat/images/28.png and b/meme_generator/memes/klee_eat/images/28.png differ diff --git a/meme_generator/memes/klee_eat/images/29.png b/meme_generator/memes/klee_eat/images/29.png index 8da3dfaab74d7378814e7ae300975b111a883f5e..b97678fd9cca6ae62dfecbd9af185ac4ddabb36e 100644 Binary files a/meme_generator/memes/klee_eat/images/29.png and b/meme_generator/memes/klee_eat/images/29.png differ diff --git a/meme_generator/memes/klee_eat/images/3.png b/meme_generator/memes/klee_eat/images/3.png index 703d7b4eb83fb60c54c1dff791e274efd727fe51..18f968ebf732d78f2a85fef640acbc34bfd96f7b 100644 Binary files a/meme_generator/memes/klee_eat/images/3.png and b/meme_generator/memes/klee_eat/images/3.png differ diff --git a/meme_generator/memes/klee_eat/images/30.png b/meme_generator/memes/klee_eat/images/30.png index 885361da1e0679a3b4942c1713a1b2602ed9b21e..b819dacdab481a4875248eb471f4c1ae2718fefe 100644 Binary files a/meme_generator/memes/klee_eat/images/30.png and b/meme_generator/memes/klee_eat/images/30.png differ diff --git a/meme_generator/memes/klee_eat/images/4.png b/meme_generator/memes/klee_eat/images/4.png index 69e0c90d2c02ace1bf7353b15b3d085bb91432fc..6112b307eb05d6e5fe99331421ef73c805866987 100644 Binary files a/meme_generator/memes/klee_eat/images/4.png and b/meme_generator/memes/klee_eat/images/4.png differ diff --git a/meme_generator/memes/klee_eat/images/5.png b/meme_generator/memes/klee_eat/images/5.png index 2588e040f38d2a6c573882b6cc1be0012edf5be6..295d3bf45e5e3dc704412dacf26515ef317d190c 100644 Binary files a/meme_generator/memes/klee_eat/images/5.png and b/meme_generator/memes/klee_eat/images/5.png differ diff --git a/meme_generator/memes/klee_eat/images/6.png b/meme_generator/memes/klee_eat/images/6.png index cc95f08b6e993687d891b5100e5977a023d3f6b0..2e8e2031255b465858c71eaa2b31f6a333a21053 100644 Binary files a/meme_generator/memes/klee_eat/images/6.png and b/meme_generator/memes/klee_eat/images/6.png differ diff --git a/meme_generator/memes/klee_eat/images/7.png b/meme_generator/memes/klee_eat/images/7.png index 49d13fac3a4d8b6007098cf7574449717cc4c735..d9f67b207f3d124608945b6f02f30755f84f3eb8 100644 Binary files a/meme_generator/memes/klee_eat/images/7.png and b/meme_generator/memes/klee_eat/images/7.png differ diff --git a/meme_generator/memes/klee_eat/images/8.png b/meme_generator/memes/klee_eat/images/8.png index 6df49fb2963d7e3683189d1a89ea10f9245afa59..e4abc1896aaa40b3b0e525241c03cfa0367935ff 100644 Binary files a/meme_generator/memes/klee_eat/images/8.png and b/meme_generator/memes/klee_eat/images/8.png differ diff --git a/meme_generator/memes/klee_eat/images/9.png b/meme_generator/memes/klee_eat/images/9.png index b5097fb54ed1edd7bab0b4f1d5a4182d6243c79f..bb60ad704a3df8b4a7d53fa531bf8ff5817ae1af 100644 Binary files a/meme_generator/memes/klee_eat/images/9.png and b/meme_generator/memes/klee_eat/images/9.png differ diff --git a/meme_generator/memes/knock/images/0.png b/meme_generator/memes/knock/images/0.png index 7ae425d116b454d532b25dece43e113fbb1a5a8c..35f4bf79eb20f59492d253e94b5a28a492e4179c 100644 Binary files a/meme_generator/memes/knock/images/0.png and b/meme_generator/memes/knock/images/0.png differ diff --git a/meme_generator/memes/knock/images/1.png b/meme_generator/memes/knock/images/1.png index aadfc693f3172a8f214c86d8fed188a6f93b5511..6b788b347c1cf2f87544f9e3fd88790fff7c23a7 100644 Binary files a/meme_generator/memes/knock/images/1.png and b/meme_generator/memes/knock/images/1.png differ diff --git a/meme_generator/memes/knock/images/2.png b/meme_generator/memes/knock/images/2.png index a6f31d07199a04e64cd7993bd088247ccf952b43..33e14f33b8849de96ca8a3214deda60177527c8b 100644 Binary files a/meme_generator/memes/knock/images/2.png and b/meme_generator/memes/knock/images/2.png differ diff --git a/meme_generator/memes/knock/images/3.png b/meme_generator/memes/knock/images/3.png index 372723ed028e25c9084a2214e937e9999ec84cff..f12c76f999f06eff454ba69938fc9716f083218e 100644 Binary files a/meme_generator/memes/knock/images/3.png and b/meme_generator/memes/knock/images/3.png differ diff --git a/meme_generator/memes/knock/images/4.png b/meme_generator/memes/knock/images/4.png index ab9639d01ffdcabd913792ed02db04e3dae585bb..4c0e787d30132a9e46efdedf0bc3fc64c4441184 100644 Binary files a/meme_generator/memes/knock/images/4.png and b/meme_generator/memes/knock/images/4.png differ diff --git a/meme_generator/memes/knock/images/5.png b/meme_generator/memes/knock/images/5.png index 9f39df622de911252b5909149548dc1f3e5da2f9..6d703501d76650c24c2b6cc2db4ade3841c8afbc 100644 Binary files a/meme_generator/memes/knock/images/5.png and b/meme_generator/memes/knock/images/5.png differ diff --git a/meme_generator/memes/knock/images/6.png b/meme_generator/memes/knock/images/6.png index acb69d557cc2a4cb292bee98372407b4638cf2c5..6121392ffd50ac9639dc3bb8bfc2217b1e4fb66d 100644 Binary files a/meme_generator/memes/knock/images/6.png and b/meme_generator/memes/knock/images/6.png differ diff --git a/meme_generator/memes/knock/images/7.png b/meme_generator/memes/knock/images/7.png index 4f576ca9005eb4dfab06987c7e54f54e142d85d2..7f097ae91738bbe45655408cc119512108176e1e 100644 Binary files a/meme_generator/memes/knock/images/7.png and b/meme_generator/memes/knock/images/7.png differ diff --git a/meme_generator/memes/learn/images/0.png b/meme_generator/memes/learn/images/0.png index ff8f8325eaa71cfa0abd90a45a8db9b16753fc96..0bb6110fdce5f23aed7afc20f032fe275675cb7f 100644 Binary files a/meme_generator/memes/learn/images/0.png and b/meme_generator/memes/learn/images/0.png differ diff --git a/meme_generator/memes/lim_x_0/images/0.png b/meme_generator/memes/lim_x_0/images/0.png index 335f99587cb17f2aff934c4bb75e9f903d07783d..51edec429f1222c5ad143cbcd36f0376b9b8e79e 100644 Binary files a/meme_generator/memes/lim_x_0/images/0.png and b/meme_generator/memes/lim_x_0/images/0.png differ diff --git a/meme_generator/memes/listen_music/images/0.png b/meme_generator/memes/listen_music/images/0.png index 8d894aba7d927a37f85e58d32e6ea8c445043288..e9bae0d5919609c7a90c43edb1adf48f7958076c 100644 Binary files a/meme_generator/memes/listen_music/images/0.png and b/meme_generator/memes/listen_music/images/0.png differ diff --git a/meme_generator/memes/loading/images/icon.png b/meme_generator/memes/loading/images/icon.png index 361beb548788a48483631570930563f79f7c4eb3..e38175cb307f6d9722ab0187082e6c6739c677c3 100644 Binary files a/meme_generator/memes/loading/images/icon.png and b/meme_generator/memes/loading/images/icon.png differ diff --git a/meme_generator/memes/look_this_icon/images/nmsl.png b/meme_generator/memes/look_this_icon/images/nmsl.png index 3bd8f344298dfadda62554d4857d0b2d16c6e2fd..d2f53099b7cad97d1f6257e67b4adb9fc5ff8038 100644 Binary files a/meme_generator/memes/look_this_icon/images/nmsl.png and b/meme_generator/memes/look_this_icon/images/nmsl.png differ diff --git a/meme_generator/memes/love_you/images/0.png b/meme_generator/memes/love_you/images/0.png index 2f37c51877c8be2785315aab5924d751ff0b2229..90408802f08babfe05158d9bcf198a2e8fd67178 100644 Binary files a/meme_generator/memes/love_you/images/0.png and b/meme_generator/memes/love_you/images/0.png differ diff --git a/meme_generator/memes/love_you/images/1.png b/meme_generator/memes/love_you/images/1.png index 5cf3764b9577adfce56828e7e5f020dc2b555e2b..0ee875e763e77e91b0c208df0f13c96c4600efbe 100644 Binary files a/meme_generator/memes/love_you/images/1.png and b/meme_generator/memes/love_you/images/1.png differ diff --git a/meme_generator/memes/maimai_awaken/images/0.png b/meme_generator/memes/maimai_awaken/images/0.png index 70f7e1711b62dff4a050a6b0e958663a97005633..23d7fa30f1e23c8719cd749f2ff207f02ef163ca 100644 Binary files a/meme_generator/memes/maimai_awaken/images/0.png and b/meme_generator/memes/maimai_awaken/images/0.png differ diff --git a/meme_generator/memes/maimai_join/images/0.png b/meme_generator/memes/maimai_join/images/0.png index 5556147567fc8a232f6ee0b9c4775f8611d6bde8..b31df552fc3d224ee540a77c31bce1514c5cf34c 100644 Binary files a/meme_generator/memes/maimai_join/images/0.png and b/meme_generator/memes/maimai_join/images/0.png differ diff --git a/meme_generator/memes/make_friend/images/0.png b/meme_generator/memes/make_friend/images/0.png index 80187c35e7c127a7526ecabca63624088547d788..5ee58dc488c3b45f7a2bc9ff057af5002165d16c 100644 Binary files a/meme_generator/memes/make_friend/images/0.png and b/meme_generator/memes/make_friend/images/0.png differ diff --git a/meme_generator/memes/marriage/images/0.png b/meme_generator/memes/marriage/images/0.png index a2537f03c3f6ce54eb0b2f005b0ff031356679ee..1edf249422012457594374655f5d30fbc4839d79 100644 Binary files a/meme_generator/memes/marriage/images/0.png and b/meme_generator/memes/marriage/images/0.png differ diff --git a/meme_generator/memes/marriage/images/1.png b/meme_generator/memes/marriage/images/1.png index 95c4c552ef7a0fd342bd52ba45622f80425222d0..695cc7e5d21075835d6a0dc64f38c83e607bc53b 100644 Binary files a/meme_generator/memes/marriage/images/1.png and b/meme_generator/memes/marriage/images/1.png differ diff --git a/meme_generator/memes/meteor/images/0.png b/meme_generator/memes/meteor/images/0.png index 154029a695f327b076feb274f563202c2c9a75df..d8360cd0770e79e65dea8e59a2d30b82221b892e 100644 Binary files a/meme_generator/memes/meteor/images/0.png and b/meme_generator/memes/meteor/images/0.png differ diff --git a/meme_generator/memes/mihoyo/images/logo.png b/meme_generator/memes/mihoyo/images/logo.png index 8d815eeb85b94753a46b6e871a36f302a4388956..8a33078eb720e9eceea2c5f23d33ea1fd388f56d 100644 Binary files a/meme_generator/memes/mihoyo/images/logo.png and b/meme_generator/memes/mihoyo/images/logo.png differ diff --git a/meme_generator/memes/my_friend/__init__.py b/meme_generator/memes/my_friend/__init__.py index 21b8aa44954389a72c029a2bf52ddd3a4b6b190a..000b5f015cc85e3ce6bcb2532bc3c04af22d9a9e 100644 --- a/meme_generator/memes/my_friend/__init__.py +++ b/meme_generator/memes/my_friend/__init__.py @@ -56,8 +56,8 @@ def my_friend(images: List[BuildImage], texts: List[str], args: Model): return dialog dialogs = [make_dialog(text) for text in texts] - frame_w = max((dialog.width for dialog in dialogs)) - frame_h = sum((dialog.height for dialog in dialogs)) + frame_w = max(dialog.width for dialog in dialogs) + frame_h = sum(dialog.height for dialog in dialogs) frame = BuildImage.new("RGBA", (frame_w, frame_h), "#eaedf4") current_h = 0 for dialog in dialogs: diff --git a/meme_generator/memes/my_friend/images/corner1.png b/meme_generator/memes/my_friend/images/corner1.png index 9e97f68449244dfa48865ebf79b29ac31036274c..2f7c62854ede93e609676fd43b6d653f955b8e94 100644 Binary files a/meme_generator/memes/my_friend/images/corner1.png and b/meme_generator/memes/my_friend/images/corner1.png differ diff --git a/meme_generator/memes/my_friend/images/corner2.png b/meme_generator/memes/my_friend/images/corner2.png index 876f88b3ac17631645a8351f6e33171bf8e449bb..ecc927addd600528edd205f21f24ee6297c7547d 100644 Binary files a/meme_generator/memes/my_friend/images/corner2.png and b/meme_generator/memes/my_friend/images/corner2.png differ diff --git a/meme_generator/memes/my_friend/images/corner3.png b/meme_generator/memes/my_friend/images/corner3.png index a7e183c7c6eb14d11082f28f4b74f47dc8b95066..442b8ce36b035e2d450864ea77c7094dafed8c7d 100644 Binary files a/meme_generator/memes/my_friend/images/corner3.png and b/meme_generator/memes/my_friend/images/corner3.png differ diff --git a/meme_generator/memes/my_friend/images/corner4.png b/meme_generator/memes/my_friend/images/corner4.png index 7f476643043713b67008d5c68499de40fcc35ad4..6a3f0353ffee2d59bb6c3baf153787f1726d8125 100644 Binary files a/meme_generator/memes/my_friend/images/corner4.png and b/meme_generator/memes/my_friend/images/corner4.png differ diff --git a/meme_generator/memes/my_friend/images/label.png b/meme_generator/memes/my_friend/images/label.png index b7d5c4bede4943d32cc1f211b73358854649591d..865dbb0a6b56e19c97f46ca5910d69ec20b8540c 100644 Binary files a/meme_generator/memes/my_friend/images/label.png and b/meme_generator/memes/my_friend/images/label.png differ diff --git a/meme_generator/memes/my_wife/images/0.png b/meme_generator/memes/my_wife/images/0.png index aa04e1455b629066e5a55b325eb68336e36b1d55..0691fbb6255d2e68006fd6ae02f8e1ffd77a7f66 100644 Binary files a/meme_generator/memes/my_wife/images/0.png and b/meme_generator/memes/my_wife/images/0.png differ diff --git a/meme_generator/memes/my_wife/images/1.png b/meme_generator/memes/my_wife/images/1.png index 44c96e3d9ce2276cd64855253ad6ca88e542b115..8b1f64fdd7fd85ed91f21be4de1fcd2410cc382e 100644 Binary files a/meme_generator/memes/my_wife/images/1.png and b/meme_generator/memes/my_wife/images/1.png differ diff --git a/meme_generator/memes/name_generator/__init__.py b/meme_generator/memes/name_generator/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3acf6322c445d302ac9197b11387e2cbf882876f --- /dev/null +++ b/meme_generator/memes/name_generator/__init__.py @@ -0,0 +1,46 @@ +import random +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def name_generator(images: List[BuildImage], texts, args): + colors = ["#0000ff", "#ff00f7", "#00cc66"] + # fmt: off + el1 = ["废墟", "深海", "反应堆", "学园", "腐烂", "东京", "三维", "四次元", "少管所", "流星", "闪光", "南极", "消极", "幽浮", "网路", "暗狱", "离子态", "液态", "黑色", "抱抱", "暴力", "垃圾", "社会", "残暴", "残酷", "工口", "戮尸", "原味", "毛茸茸", "香香", "霹雳", "午夜", "美工刀", "爆浆", "机关枪", "无响应", "手术台", "麻风病", "虚拟", "速冻", "智能", "2000", "甜味", "华丽", "反社会", "玛利亚", "无", "梦之", "蔷薇", "无政府", "酷酷", "西伯利亚", "人造", "法外", "追杀", "通缉", "女子", "微型", "男子", "超", "毁灭", "大型", "绝望", "阴间", "死亡", "坟场", "高科技", "奇妙", "魔法", "极限", "社会主义", "无聊"] + el2 = ["小丑", "仿生", "纳米", "原子", "丧", "电子", "十字架", "咩咩", "赛博", "野猪", "外星", "窒息", "变态", "触手", "小众", "悲情", "飞行", "绿色", "电动", "铁锈", "碎尸", "电音", "蠕动", "酸甜", "虚构", "乱码", "碳水", "内脏", "脑浆", "血管", "全裸", "绷带", "不合格", "光滑", "标本", "酸性", "碱性", "404", "变身", "反常", "樱桃", "碳基", "矫情", "病娇", "进化", "潮湿", "砂糖", "高潮", "变异", "复合盐", "伏特加", "抑郁", "暴躁", "不爱说话", "废物", "失败", "幻想型", "社恐", "苦涩", "粘液", "浓厚", "快乐", "强制", "中二病", "恶魔", "emo", "激光", "发射", "限量版", "迷因", "堕落", "放射性"] + el3 = ["天使", "精灵", "女孩", "男孩", "宝贝", "小妈咪", "虫", "菇", "公主", "少女", "少年", "1号机", "子", "恐龙", "蜈蚣", "蟑螂", "食人鱼", "小飞船", "舞女", "桃子", "团子", "精", "酱", "废料", "生物", "物质", "奶茶", "搅拌机", "液", "火锅", "祭司", "体", "实验品", "试验体", "小猫咪", "样本", "颗粒", "血块", "汽水", "蛙", "软体", "机器人", "人质", "小熊", "圣母", "胶囊", "乙女", "主义者", "屑", "垢", "污渍", "废人", "毛血旺", "怪人", "肉", "河豚", "豚", "藻类", "唾沫", "咒语", "建筑", "球", "小狗", "碳", "元素", "少先队员", "博士", "糖"] + # fmt: on + color = random.choice(colors) + name = random.choice(el1) + random.choice(el2) + random.choice(el3) + frame = BuildImage.new("RGB", (900, 900), (225, 225, 225)) + title = BuildImage.open(img_dir / "title.png").resize((700, 200)) + frame.paste(title, (100, 0), alpha=True) + img = images[0].convert("RGBA").resize((490, 490), keep_ratio=True) + frame.paste(img, (310, 235), alpha=True) + frame.draw_text( + (20, 450), "您的亚名是", fontsize=40, fill=(105, 105, 105), weight="bold" + ).draw_text( + (20, 620), + name, + fontsize=60, + fill=color, + weight="bold", + stroke_ratio=0.07, + stroke_fill="white", + ) + return frame.save_jpg() + + +add_meme( + "name_generator", + name_generator, + min_images=1, + max_images=1, + keywords=["亚文化取名机", "亚名"], +) diff --git a/meme_generator/memes/name_generator/images/title.png b/meme_generator/memes/name_generator/images/title.png new file mode 100644 index 0000000000000000000000000000000000000000..03e2d627798ae80dfd0148a339c2495f81f0a81f --- /dev/null +++ b/meme_generator/memes/name_generator/images/title.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c96334a60faf1baaffd5324b089548f28fedacdcc3e9915d9efb9cc9ae26f96b +size 176497 diff --git a/meme_generator/memes/need/__init__.py b/meme_generator/memes/need/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..eed34e86e2f4989bc9be8719646c4e9e7f5b7530 --- /dev/null +++ b/meme_generator/memes/need/__init__.py @@ -0,0 +1,22 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def need(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").square().resize((115, 115)) + return frame.copy().paste(img, (327, 232), below=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme("need", need, min_images=1, max_images=1, keywords=["需要", "你可能需要"]) diff --git a/meme_generator/memes/need/images/0.png b/meme_generator/memes/need/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..c395c9c2ffde2d6746e44224a80aa04da405d981 --- /dev/null +++ b/meme_generator/memes/need/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3ef4e1bd76a0fdeab35fd7ae343ae1ae88117c39c26f58301be6db02d912b81 +size 232714 diff --git a/meme_generator/memes/nekoha_holdsign/__init__.py b/meme_generator/memes/nekoha_holdsign/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1d43ce8774b267a38322b9cffba2e9baa1dd8b87 --- /dev/null +++ b/meme_generator/memes/nekoha_holdsign/__init__.py @@ -0,0 +1,38 @@ +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 nekoha_holdsign(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.jpg") + try: + frame.draw_text( + (210, 520, 570, 765), + text, + fill=(72, 110, 173), + allow_wrap=True, + fontname="FZShaoEr-M11S", + max_fontsize=65, + min_fontsize=25, + lines_align="center", + ) + except ValueError: + raise TextOverLength(text) + return frame.save_jpg() + + +add_meme( + "nekoha_holdsign", + nekoha_holdsign, + min_texts=1, + max_texts=1, + default_texts=["V我50"], + keywords=["猫羽雫举牌", "猫猫举牌"], +) diff --git a/meme_generator/memes/nekoha_holdsign/images/0.jpg b/meme_generator/memes/nekoha_holdsign/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62f063cbc9bd7c1923bdd05a51dbe33da60ba77b Binary files /dev/null and b/meme_generator/memes/nekoha_holdsign/images/0.jpg differ diff --git a/meme_generator/memes/nijika_holdsign/__init__.py b/meme_generator/memes/nijika_holdsign/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..98b1bdcaf292be7f627b9ebd7b99f1df045c580e --- /dev/null +++ b/meme_generator/memes/nijika_holdsign/__init__.py @@ -0,0 +1,38 @@ +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 nijika_holdsign(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.jpg") + try: + frame.draw_text( + (57, 279, 249, 405), + text, + fill=(111, 95, 95), + allow_wrap=True, + max_fontsize=60, + min_fontsize=25, + lines_align="center", + fontname="FZSJ-QINGCRJ", + ) + except ValueError: + raise TextOverLength(text) + return frame.save_jpg() + + +add_meme( + "nijika_holdsign", + nijika_holdsign, + min_texts=1, + max_texts=1, + default_texts=["你可少看点二次元吧"], + keywords=["伊地知虹夏举牌", "虹夏举牌"], +) diff --git a/meme_generator/memes/nijika_holdsign/images/0.jpg b/meme_generator/memes/nijika_holdsign/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..46b7df54c357dc5d03e08e26a5f3aafd9d6a7d86 Binary files /dev/null and b/meme_generator/memes/nijika_holdsign/images/0.jpg differ diff --git a/meme_generator/memes/no_response/__init__.py b/meme_generator/memes/no_response/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6797e7cd763fec3e4e57388df821a91f72d630fb --- /dev/null +++ b/meme_generator/memes/no_response/__init__.py @@ -0,0 +1,18 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def no_response(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((1050, 783), keep_ratio=True) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img, (0, 581), below=True) + return frame.save_jpg() + + +add_meme("no_response", no_response, min_images=1, max_images=1, keywords=["无响应"]) diff --git a/meme_generator/memes/no_response/images/0.png b/meme_generator/memes/no_response/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..53b3f9153efd4af47e4371a7ac71c2f7f9da1400 --- /dev/null +++ b/meme_generator/memes/no_response/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89ab053978146c3af0ed1d2c37bfcbf86fa465c2bc2ec01839bc11564a9f9dd8 +size 241074 diff --git a/meme_generator/memes/nokia/__init__.py b/meme_generator/memes/nokia/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..18c75df78761dcd9d84c50b533c3f1a263f13d25 --- /dev/null +++ b/meme_generator/memes/nokia/__init__.py @@ -0,0 +1,42 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage, Text2Image + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def nokia(images, texts: List[str], args): + text = texts[0][:900] + text_img = ( + Text2Image.from_text(text, 70, fontname="FZXS14", fill="black", spacing=30) + .wrap(700) + .to_image() + ) + text_img = ( + BuildImage(text_img) + .resize_canvas((700, 450), direction="northwest") + .rotate(-9.3, expand=True) + ) + + head_img = Text2Image.from_text( + f"{len(text)}/900", 70, fontname="FZXS14", fill=(129, 212, 250, 255) + ).to_image() + head_img = BuildImage(head_img).rotate(-9.3, expand=True) + + frame = BuildImage.open(img_dir / "0.jpg") + frame.paste(text_img, (205, 330), alpha=True) + frame.paste(head_img, (790, 320), alpha=True) + return frame.save_jpg() + + +add_meme( + "nokia", + nokia, + min_texts=1, + max_texts=1, + default_texts=["无内鬼,继续交易"], + keywords=["诺基亚", "有内鬼"], +) diff --git a/meme_generator/memes/nokia/images/0.jpg b/meme_generator/memes/nokia/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..33026f47e7c30055c8ab21d42f7d5cd930e1a8ca Binary files /dev/null and b/meme_generator/memes/nokia/images/0.jpg differ diff --git a/meme_generator/memes/not_call_me/__init__.py b/meme_generator/memes/not_call_me/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8cc1e9d0b6cc35f3addc9b8b137fcffa435ee1a8 --- /dev/null +++ b/meme_generator/memes/not_call_me/__init__.py @@ -0,0 +1,35 @@ +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 not_call_me(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.png") + try: + frame.draw_text( + (228, 11, 340, 164), + text, + allow_wrap=True, + max_fontsize=80, + min_fontsize=20, + ) + except ValueError: + raise TextOverLength(text) + return frame.save_png() + + +add_meme( + "not_call_me", + not_call_me, + min_texts=1, + max_texts=1, + default_texts=["开银趴不喊我是吧"], + keywords=["不喊我"], +) diff --git a/meme_generator/memes/not_call_me/images/0.png b/meme_generator/memes/not_call_me/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..831288f1e8cf15724521b5dfb1bb09031d04caed --- /dev/null +++ b/meme_generator/memes/not_call_me/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2975df9337fcf13f64209d64a25bdbebe2ef98d6b6038abaefda3f710243bc1 +size 126568 diff --git a/meme_generator/memes/note_for_leave/__init__.py b/meme_generator/memes/note_for_leave/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6e58f0083ad5120b8db26945ac139eeb9caa50e2 --- /dev/null +++ b/meme_generator/memes/note_for_leave/__init__.py @@ -0,0 +1,85 @@ +from datetime import datetime +from typing import List + +import dateparser +from pil_utils import BuildImage, Text2Image +from pydantic import Field + +from meme_generator import MemeArgsModel, MemeArgsParser, MemeArgsType, add_meme +from meme_generator.exception import TextOverLength + +parser = MemeArgsParser() +parser.add_argument("-t", "--time", type=str, default="", help="指定时间") +parser.add_argument("-n", "--name", type=str, default="", help="指定名字") + + +class Model(MemeArgsModel): + time: str = Field("", description="指定时间") + name: str = Field("", description="指定名字") + + +def note_for_leave(images: List[BuildImage], texts: List[str], args: Model): + time = datetime.now() + if args.time and (parsed_time := dateparser.parse(args.time)): + time = parsed_time + name = args.name or (args.user_infos[-1].name if args.user_infos else "") + text = texts[0] if texts else "想玩" + img = ( + images[0] + .convert("RGBA") + .resize((450, 400), keep_ratio=True, inside=True, bg_color="white") + ) + + frame = BuildImage.new("RGBA", (800, 950), "white") + frame.draw_text( + (40, 20, 760, 180), + text="请假条", + weight="bold", + max_fontsize=100, + min_fontsize=80, + ) + frame.draw_text((40, 200), "本人", fontsize=50) + name_width = Text2Image.from_text(name, fontsize=50).width + if (name_width) > 800: + raise TextOverLength(name) + name_width = min(450, max(150, name_width)) + 50 + frame.draw_text( + (150, 200, 150 + name_width, 265), text=name, max_fontsize=50, min_fontsize=20 + ) + frame.draw_line((150, 260, 150 + name_width, 260), fill="black", width=4) + frame.draw_text((160 + name_width, 200), "因", fontsize=50) + try: + frame.draw_text( + (40, 300, 285, 700), + text=text, + max_fontsize=90, + min_fontsize=40, + allow_wrap=True, + lines_align="center", + fill="red", + ) + except ValueError: + raise TextOverLength(text) + frame.paste(img, (300, 290)) + frame.draw_bbcode_text( + (40, 700, 760, 800), + text=f"于[u] {time.year} [/u]年[u] {time.month} [/u]月[u] {time.day} [/u]日请假一天,", + max_fontsize=50, + min_fontsize=30, + halign="left", + ) + frame.draw_text((40, 800), text="望领导批准!!!", fontsize=75, weight="bold") + return frame.save_jpg() + + +add_meme( + "note_for_leave", + note_for_leave, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + default_texts=["想玩"], + args_type=MemeArgsType(parser, Model), + keywords=["请假条"], +) diff --git a/meme_generator/memes/oshi_no_ko/__init__.py b/meme_generator/memes/oshi_no_ko/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..ec0bec1a451b4d3ce9d66afbf5a5221faa63f37c --- /dev/null +++ b/meme_generator/memes/oshi_no_ko/__init__.py @@ -0,0 +1,66 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage, Text2Image + +from meme_generator import add_meme +from meme_generator.exception import TextOverLength +from meme_generator.utils import make_png_or_gif + +img_dir = Path(__file__).parent / "images" + + +def oshi_no_ko(images: List[BuildImage], texts: List[str], args): + name = texts[0] if texts else "网友" + + text_frame1 = BuildImage.open(img_dir / "text1.png") + text_frame2 = BuildImage.open(img_dir / "text2.png") + + bias_y = 5 + text_frame3 = BuildImage( + Text2Image.from_text( + name, + fontname="HiraginoMin", + fontsize=150, + stroke_width=4, + stroke_fill="white", + ).to_image() + ).resize_height(text_frame1.height + bias_y) + if text_frame3.width > 800: + raise TextOverLength(name) + + text_frame = BuildImage.new( + "RGBA", + (text_frame1.width + text_frame2.width + text_frame3.width, text_frame2.height), + ) + text_frame.paste(text_frame1, (0, 0), alpha=True).paste( + text_frame3, (text_frame1.width, bias_y), alpha=True + ).paste(text_frame2, (text_frame1.width + text_frame3.width, 0), alpha=True) + text_frame = text_frame.resize_width(663) + + background = BuildImage.open(img_dir / "background.png") + foreground = BuildImage.open(img_dir / "foreground.png") + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize((681, 692), keep_ratio=True) + return ( + background.copy() + .paste(img, alpha=True) + .paste(text_frame, (9, 102 - text_frame.height // 2), alpha=True) + .paste(foreground, alpha=True) + ) + + return make_png_or_gif(images[0], make) + + +add_meme( + "oshi_no_ko", + oshi_no_ko, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + default_texts=["网友"], + keywords=["我推的网友"], + patterns=[r"我推的(\S+)"], +) diff --git a/meme_generator/memes/oshi_no_ko/images/background.png b/meme_generator/memes/oshi_no_ko/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..3146e6c3b2e8652efe4719fca3ab7e732916345a --- /dev/null +++ b/meme_generator/memes/oshi_no_ko/images/background.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c04fd7b8d1193f0f502db6984f68b25ff7af8a6ab496f312d99a6f262cdc463 +size 226954 diff --git a/meme_generator/memes/oshi_no_ko/images/foreground.png b/meme_generator/memes/oshi_no_ko/images/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..f5e6b323ba7ea825a562495c215d1596b5a2976a --- /dev/null +++ b/meme_generator/memes/oshi_no_ko/images/foreground.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6052bae7869ef430ff4d926721a601a0bcea1c832c6507f95a3b8f973474d53e +size 161501 diff --git a/meme_generator/memes/oshi_no_ko/images/text1.png b/meme_generator/memes/oshi_no_ko/images/text1.png new file mode 100644 index 0000000000000000000000000000000000000000..c0861791bbc31fe78c982d4ffdf260a3de3cf207 --- /dev/null +++ b/meme_generator/memes/oshi_no_ko/images/text1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:227870bc9ec61b47a55b9322575fd3efc77601f6b0099aedfb8438610cb26070 +size 30385 diff --git a/meme_generator/memes/oshi_no_ko/images/text2.png b/meme_generator/memes/oshi_no_ko/images/text2.png new file mode 100644 index 0000000000000000000000000000000000000000..c80c407eceeb19ffd07a6e85adeeaf7a9753232c --- /dev/null +++ b/meme_generator/memes/oshi_no_ko/images/text2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a45e80aedaefe4990454e6d01d369dabf4377a7424476eb5f6f802e1b6a710e +size 3210 diff --git a/meme_generator/memes/osu/__init__.py b/meme_generator/memes/osu/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..29cb45e26c0ba8b046e397b84054298dfbba5a8f --- /dev/null +++ b/meme_generator/memes/osu/__init__.py @@ -0,0 +1,40 @@ +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", + 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 0000000000000000000000000000000000000000..4be112e065c0c83f482c93a0249dc920f4c2fd48 --- /dev/null +++ b/meme_generator/memes/osu/images/osu.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1e7e9a0683b4520814ee62732db30f2164811c06821e0f373917141c73627af +size 39868 diff --git a/meme_generator/memes/overtime/__init__.py b/meme_generator/memes/overtime/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..067319abcea57336203bf8032d4f730675d9af89 --- /dev/null +++ b/meme_generator/memes/overtime/__init__.py @@ -0,0 +1,18 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def overtime(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + img = images[0].convert("RGBA").resize((250, 250), keep_ratio=True) + frame.paste(img.rotate(-25, expand=True), (165, 220), below=True) + return frame.save_jpg() + + +add_meme("overtime", overtime, min_images=1, max_images=1, keywords=["加班"]) diff --git a/meme_generator/memes/overtime/images/0.png b/meme_generator/memes/overtime/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..2da279fd70a3c9a25d58a89992d20b624a503809 --- /dev/null +++ b/meme_generator/memes/overtime/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b80011a380c07c7c26e4cfa02da13c776b4b784523132b24ecc00c8a2454cc47 +size 177193 diff --git a/meme_generator/memes/paint/__init__.py b/meme_generator/memes/paint/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..571758f7a7b9089fd6dd62acaa3eea38d67e7843 --- /dev/null +++ b/meme_generator/memes/paint/__init__.py @@ -0,0 +1,18 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def paint(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((117, 135), keep_ratio=True) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img.rotate(4, expand=True), (95, 107), below=True) + return frame.save_jpg() + + +add_meme("paint", paint, min_images=1, max_images=1, keywords=["这像画吗"]) diff --git a/meme_generator/memes/paint/images/0.png b/meme_generator/memes/paint/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..6fe370d4ceef66293608edc79b220b27f86af3ae --- /dev/null +++ b/meme_generator/memes/paint/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d74744b633a72c425422d2f7df21da554572a20502628908791d221002556db +size 71677 diff --git a/meme_generator/memes/painter/__init__.py b/meme_generator/memes/painter/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e7bded8a742444c56faeed21099514e1a0add92b --- /dev/null +++ b/meme_generator/memes/painter/__init__.py @@ -0,0 +1,20 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def painter(images: List[BuildImage], texts, args): + img = ( + images[0].convert("RGBA").resize((240, 345), keep_ratio=True, direction="north") + ) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img, (125, 91), below=True) + return frame.save_jpg() + + +add_meme("painter", painter, min_images=1, max_images=1, keywords=["小画家"]) diff --git a/meme_generator/memes/painter/images/0.png b/meme_generator/memes/painter/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..4da4f0f750a50778399ab7e0a3ae6f27728cd1a5 --- /dev/null +++ b/meme_generator/memes/painter/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:224caf71702106b90ada0fbf51b5c1a586ffc77df7c3b6ce1b716e5814ffe5f5 +size 320196 diff --git a/meme_generator/memes/pass_the_buck/__init__.py b/meme_generator/memes/pass_the_buck/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1711bb9a5f90b783aae12309a767b9a639d21f72 --- /dev/null +++ b/meme_generator/memes/pass_the_buck/__init__.py @@ -0,0 +1,42 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.exception import TextOverLength +from meme_generator.utils import save_gif + +img_dir = Path(__file__).parent / "images" + + +def pass_the_buck(images: List[BuildImage], texts: List[str], args): + img = images[0].convert("RGBA").square().resize((27, 27)) + frames: List[IMG] = [] + locs = [(2, 26), (10, 24), (15, 27), (17, 29), (10, 20), (2, 29), (3, 31), (1, 30)] + for i in range(8): + frame = BuildImage.open(img_dir / f"{i}.png") + if texts: + text = texts[0] + try: + frame.draw_text( + (0, 0, frame.width, 20), text, max_fontsize=20, min_fontsize=10 + ) + except ValueError: + raise TextOverLength(text) + frame.paste(img, locs[i], alpha=True) + frames.append(frame.image) + return save_gif(frames, 0.1) + + +add_meme( + "pass_the_buck", + pass_the_buck, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + default_texts=["你写!"], + keywords=["推锅", "甩锅"], +) diff --git a/meme_generator/memes/pass_the_buck/images/0.png b/meme_generator/memes/pass_the_buck/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..c8485f3c0d11b47040dc6f7c186bef90fd85adb0 --- /dev/null +++ b/meme_generator/memes/pass_the_buck/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38c06e59c8cfb55a90159ea8986ad42b66b55aa9f906116b940f21535dde6a55 +size 3280 diff --git a/meme_generator/memes/pass_the_buck/images/1.png b/meme_generator/memes/pass_the_buck/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..1bfcea907037196a67df6751b641af32ba929b3a --- /dev/null +++ b/meme_generator/memes/pass_the_buck/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1799527ff7efd6f3f717b71b3add08051a8445ad2ba9c26ec01584a6ddae775 +size 3556 diff --git a/meme_generator/memes/pass_the_buck/images/2.png b/meme_generator/memes/pass_the_buck/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..5536c97162e6925b6e87720c317ac1bb5ab8888f --- /dev/null +++ b/meme_generator/memes/pass_the_buck/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37b786fe2e8b23ca719736d419b9d790fe728b93738d10de8110f6038d98bea0 +size 3473 diff --git a/meme_generator/memes/pass_the_buck/images/3.png b/meme_generator/memes/pass_the_buck/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..a8b733318df74908eeb1233a00dd28e4fc1d0132 --- /dev/null +++ b/meme_generator/memes/pass_the_buck/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aacb7943024ec32e2aba7b9a624f47fdaf1d04b3e316f70a30a44467f53da416 +size 3573 diff --git a/meme_generator/memes/pass_the_buck/images/4.png b/meme_generator/memes/pass_the_buck/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..1730c74eaa975e7a5b2df1f50e48b55669c1168c --- /dev/null +++ b/meme_generator/memes/pass_the_buck/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07890b90f50ac1fe5b47fd6179496607cab02f83fb0fb27cd2a1f25592b353b7 +size 3697 diff --git a/meme_generator/memes/pass_the_buck/images/5.png b/meme_generator/memes/pass_the_buck/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..4c76ea46d44456186f6fcf371fcb6b3490a17d25 --- /dev/null +++ b/meme_generator/memes/pass_the_buck/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eca3bb0241712bad26f8a83a1eaf3d3020d2b61722dfa264a74ad89edc6bfe8d +size 3749 diff --git a/meme_generator/memes/pass_the_buck/images/6.png b/meme_generator/memes/pass_the_buck/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..edc0334ba8297dcd0b7b6501ef067d6c160c056e --- /dev/null +++ b/meme_generator/memes/pass_the_buck/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f25604458f2663e22f8a631668cb740b76bc371da8777159fb45930e962c685d +size 3633 diff --git a/meme_generator/memes/pass_the_buck/images/7.png b/meme_generator/memes/pass_the_buck/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..b1e09b361296d9e380b2c05882e89bdd4827ffc8 --- /dev/null +++ b/meme_generator/memes/pass_the_buck/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c0ffc9c6340ce38241af11498814faa2e53bf7f1524472d03600d25644276f8 +size 3322 diff --git a/meme_generator/memes/pat/__init__.py b/meme_generator/memes/pat/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..1d7e7f68f99173c4a8ac021a95e1d1b6c2d71570 --- /dev/null +++ b/meme_generator/memes/pat/__init__.py @@ -0,0 +1,29 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 pat(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square() + locs = [(11, 73, 106, 100), (8, 79, 112, 96)] + img_frames: List[IMG] = [] + for i in range(10): + frame = BuildImage.open(img_dir / f"{i}.png") + x, y, w, h = locs[1] if i == 2 else locs[0] + frame.paste(img.resize((w, h)), (x, y), below=True) + img_frames.append(frame.image) + # fmt: off + seq = [0, 1, 2, 3, 1, 2, 3, 0, 1, 2, 3, 0, 0, 1, 2, 3, 0, 0, 0, 0, 4, 5, 5, 5, 6, 7, 8, 9] + # fmt: on + frames = [img_frames[n] for n in seq] + return save_gif(frames, 0.085) + + +add_meme("pat", pat, min_images=1, max_images=1, keywords=["拍"]) diff --git a/meme_generator/memes/pat/images/0.png b/meme_generator/memes/pat/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..7beabe840438bd9d094be7d4e509e2d4586f0db5 --- /dev/null +++ b/meme_generator/memes/pat/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89c6250eadb867c00a833fee62a748227e8434b535abadd96ba84f5f01bceb14 +size 17933 diff --git a/meme_generator/memes/pat/images/1.png b/meme_generator/memes/pat/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..80fbf3fef247a3292054525070bb58ef69fd73d9 --- /dev/null +++ b/meme_generator/memes/pat/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c75653194d948f0004f52112795b87dc1582a68dce52e145dd784ce7cc39d912 +size 18164 diff --git a/meme_generator/memes/pat/images/2.png b/meme_generator/memes/pat/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..9a45a8bf5133558d3328b77e5cece3168bd54b59 --- /dev/null +++ b/meme_generator/memes/pat/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c867a64ea14c9940c88e9d3f3ae87b31e75537d98e2176a7956890fa0f59fbb +size 17664 diff --git a/meme_generator/memes/pat/images/3.png b/meme_generator/memes/pat/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..bb43668d77a4adc2eaccbf9d499136ffb2d258af --- /dev/null +++ b/meme_generator/memes/pat/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b58adf99d9a466e975d305fbf1598745b1389b917920542656e08e4d1f56335 +size 17437 diff --git a/meme_generator/memes/pat/images/4.png b/meme_generator/memes/pat/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..22387e4253a975efc06c3599b961181fce53c649 --- /dev/null +++ b/meme_generator/memes/pat/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:012780ce7a2a2a2b46d4faf9df79cecbfa78605b75a493655fc5fecdf15acd55 +size 17807 diff --git a/meme_generator/memes/pat/images/5.png b/meme_generator/memes/pat/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..edc5eed80c47e2111fd68c77fcb93804370cfca8 --- /dev/null +++ b/meme_generator/memes/pat/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c0b210e195c5c2044678d07ec78172ff94467de32e93b84657c81a1036234e9 +size 17773 diff --git a/meme_generator/memes/pat/images/6.png b/meme_generator/memes/pat/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6233422d25187031b799c165534790b1476874 --- /dev/null +++ b/meme_generator/memes/pat/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:058a2fb75d6f1ac809399eeb51530cf4f6cc47a52cd4da432d90a86d9d9406ad +size 18319 diff --git a/meme_generator/memes/pat/images/7.png b/meme_generator/memes/pat/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..60c7cbe8b1190e6ddfe62fd6520de87fa5696704 --- /dev/null +++ b/meme_generator/memes/pat/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:984657ec7fba9c5c6e5672782c71a7e81a12f4a9c39ab07f5332a2fd5754af45 +size 18250 diff --git a/meme_generator/memes/pat/images/8.png b/meme_generator/memes/pat/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..20e75768f8c96115d74733589c4e560c4baa6063 --- /dev/null +++ b/meme_generator/memes/pat/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdbf834f009e8db8a8f20ad3487545fd5df3798052c83b04c05764a86a09398e +size 18164 diff --git a/meme_generator/memes/pat/images/9.png b/meme_generator/memes/pat/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc50ddc56e93349d978a1e3216bdf38354dc709 --- /dev/null +++ b/meme_generator/memes/pat/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffcb6567fbf2b10217e98d6b2f584b2e9a2f42b3aadb2193fa1d15e8b24bfed9 +size 18249 diff --git a/meme_generator/memes/perfect/__init__.py b/meme_generator/memes/perfect/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..c942cbb51a214f2dc688108254be51d777168408 --- /dev/null +++ b/meme_generator/memes/perfect/__init__.py @@ -0,0 +1,18 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def perfect(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + img = images[0].convert("RGBA").resize((310, 460), keep_ratio=True, inside=True) + frame.paste(img, (313, 64), alpha=True) + return frame.save_jpg() + + +add_meme("perfect", perfect, min_images=1, max_images=1, keywords=["完美"]) diff --git a/meme_generator/memes/perfect/images/0.png b/meme_generator/memes/perfect/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..ccfdfa4f5f8ad38f146aec7c2018df35e9c28957 --- /dev/null +++ b/meme_generator/memes/perfect/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b61a5fbe5ff389eb158dd959e728cc8093d101416540598f41e858082ba18d26 +size 113734 diff --git a/meme_generator/memes/petpet/__init__.py b/meme_generator/memes/petpet/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f14c7d1e72581bee7b292a5103073019f6b012a0 --- /dev/null +++ b/meme_generator/memes/petpet/__init__.py @@ -0,0 +1,53 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +from pil_utils import BuildImage +from pydantic import Field + +from meme_generator import MemeArgsModel, MemeArgsParser, MemeArgsType, add_meme +from meme_generator.utils import save_gif + +img_dir = Path(__file__).parent / "images" + +help = "是否将图片变为圆形" + +parser = MemeArgsParser(prefix_chars="-/") +parser.add_argument("--circle", "/圆", action="store_true", help=help) + + +class Model(MemeArgsModel): + circle: bool = Field(False, description=help) + + +def petpet(images: List[BuildImage], texts, args: Model): + img = images[0].convert("RGBA").square() + if args.circle: + img = img.circle() + + frames: List[IMG] = [] + locs = [ + (14, 20, 98, 98), + (12, 33, 101, 85), + (8, 40, 110, 76), + (10, 33, 102, 84), + (12, 20, 98, 98), + ] + for i in range(5): + hand = BuildImage.open(img_dir / f"{i}.png") + frame = BuildImage.new("RGBA", hand.size, (255, 255, 255, 0)) + x, y, w, h = locs[i] + frame.paste(img.resize((w, h)), (x, y), alpha=True) + frame.paste(hand, alpha=True) + frames.append(frame.image) + return save_gif(frames, 0.06) + + +add_meme( + "petpet", + petpet, + min_images=1, + max_images=1, + args_type=MemeArgsType(parser, Model, [Model(circle=False), Model(circle=True)]), + keywords=["摸", "摸摸", "摸头", "rua"], +) diff --git a/meme_generator/memes/petpet/images/0.png b/meme_generator/memes/petpet/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..8c010fd53c3bb931939f662e5285b2b9e3469f7f --- /dev/null +++ b/meme_generator/memes/petpet/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69da867cbb64df16fb2eaf43b1e312a33600963fb2e2079c074e55ef4cfa5986 +size 6049 diff --git a/meme_generator/memes/petpet/images/1.png b/meme_generator/memes/petpet/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca29c90234db2f9c4df28208b4e8fe206b6ae47 --- /dev/null +++ b/meme_generator/memes/petpet/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d0dced26c6f6ff6d30b0c9cfd1eabf9bfc897e6fe8ecb28a1cc148d208aae68 +size 6115 diff --git a/meme_generator/memes/petpet/images/2.png b/meme_generator/memes/petpet/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..8730afc89cee300dac4afbeec8e730e867705a12 --- /dev/null +++ b/meme_generator/memes/petpet/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30707317d526660c41b4d666a404fcd56eebb4a50b8609b70eb2f6aba54e50a1 +size 6482 diff --git a/meme_generator/memes/petpet/images/3.png b/meme_generator/memes/petpet/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..dce7274bf9fcccc21d5d56624a508821b0bc227b --- /dev/null +++ b/meme_generator/memes/petpet/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f3964243f86324185ddb4505a8a41b9395d27a7fd7982cc48a095e3b6b5d428 +size 6197 diff --git a/meme_generator/memes/petpet/images/4.png b/meme_generator/memes/petpet/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..9db3dfd934d7be46e141d8ab8ab03da304132f1f --- /dev/null +++ b/meme_generator/memes/petpet/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:502464be19528bc68872198cd63982edfc1fcaf2501d9ad0e5b7ddc79c578cf6 +size 5652 diff --git a/meme_generator/memes/pinch/__init__.py b/meme_generator/memes/pinch/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..ee0a3b1473213d81fbe7efb80ba0211544d0c956 --- /dev/null +++ b/meme_generator/memes/pinch/__init__.py @@ -0,0 +1,25 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def pinch(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + return frame.paste( + img.convert("RGBA").resize((1800, 1440), keep_ratio=True), + (1080, 0), + below=True, + ) + + return make_jpg_or_gif(images[0], make) + + +add_meme("pinch", pinch, min_images=1, max_images=1, keywords=["捏", "捏脸"]) diff --git a/meme_generator/memes/pinch/images/0.png b/meme_generator/memes/pinch/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc5ec210e32404b699029d6d4609946e69d22fa --- /dev/null +++ b/meme_generator/memes/pinch/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d44dd823f7056c15c4cf3b05a16731871d372e55d6bb9ba3098d33a69b509812 +size 1963875 diff --git a/meme_generator/memes/play/__init__.py b/meme_generator/memes/play/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0a2395fbd9ae2b489af5891c78d8b04d77ae82f0 --- /dev/null +++ b/meme_generator/memes/play/__init__.py @@ -0,0 +1,44 @@ +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 play(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square() + # fmt: off + locs = [ + (180, 60, 100, 100), (184, 75, 100, 100), (183, 98, 100, 100), + (179, 118, 110, 100), (156, 194, 150, 48), (178, 136, 122, 69), + (175, 66, 122, 85), (170, 42, 130, 96), (175, 34, 118, 95), + (179, 35, 110, 93), (180, 54, 102, 93), (183, 58, 97, 92), + (174, 35, 120, 94), (179, 35, 109, 93), (181, 54, 101, 92), + (182, 59, 98, 92), (183, 71, 90, 96), (180, 131, 92, 101) + ] + # fmt: on + raw_frames: List[BuildImage] = [ + BuildImage.open(img_dir / f"{i}.png") for i in range(38) + ] + img_frames: List[BuildImage] = [] + for i in range(len(locs)): + frame = raw_frames[i] + x, y, w, h = locs[i] + frame.paste(img.resize((w, h)), (x, y), below=True) + img_frames.append(frame) + frames = ( + img_frames[0:12] + + img_frames[0:12] + + img_frames[0:8] + + img_frames[12:18] + + raw_frames[18:38] + ) + frames = [frame.image for frame in frames] + return save_gif(frames, 0.06) + + +add_meme("play", play, min_images=1, max_images=1, keywords=["顶", "玩"]) diff --git a/meme_generator/memes/play/images/0.png b/meme_generator/memes/play/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..54f7fe8f34d38bf2395270867388429365f23e66 --- /dev/null +++ b/meme_generator/memes/play/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5865b098734b70243224d9b906e4e919c7af09f9cf970821db553da178a052d7 +size 16947 diff --git a/meme_generator/memes/play/images/1.png b/meme_generator/memes/play/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..f8079a02a0bd28cedf91da469b072b76d7db3be2 --- /dev/null +++ b/meme_generator/memes/play/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7dbb8a89644cfdc5025e50c3f92d9a4b0b7230a746f42b8bb0c4dd892b6ac35 +size 16968 diff --git a/meme_generator/memes/play/images/10.png b/meme_generator/memes/play/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b2fdbf8a40569fb7612483a44320d1e8af59cc --- /dev/null +++ b/meme_generator/memes/play/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac0a7fec95ce16ccfeed49acacfb80d2d0d2050e091b6e7415d8a46e46de3349 +size 17395 diff --git a/meme_generator/memes/play/images/11.png b/meme_generator/memes/play/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..650bf4a62ae76f32d62eef373de4015d0c9b9d45 --- /dev/null +++ b/meme_generator/memes/play/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d33b0d36516d33cb51def5d292684cb0427aef0660c3f79ea849696d6bae0b56 +size 16721 diff --git a/meme_generator/memes/play/images/12.png b/meme_generator/memes/play/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..98f0e066c5e9730753a569663d372acc42920d26 --- /dev/null +++ b/meme_generator/memes/play/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:519609f0dde8df1c89fe1bb2db599af5ff216dfa86fabace96d1b43002d7ef45 +size 18871 diff --git a/meme_generator/memes/play/images/13.png b/meme_generator/memes/play/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..31299f2c71684b63b2eca838a07dfea5aac119a3 --- /dev/null +++ b/meme_generator/memes/play/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c9cb99387ddcaf936c11a7fe5ac572079d683a0f24b1dc4c3388a47dba9b80d +size 18093 diff --git a/meme_generator/memes/play/images/14.png b/meme_generator/memes/play/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..503ab69dc9bec2f32f00e40904f4ded149dc8e96 --- /dev/null +++ b/meme_generator/memes/play/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ad51ca510d6a4e136d4d0719ac306d4ac9732fddb0aefe6701a1d09f70f3a89 +size 18118 diff --git a/meme_generator/memes/play/images/15.png b/meme_generator/memes/play/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..3223bdb0a3395f48cea0eebc25b90255d60b2990 --- /dev/null +++ b/meme_generator/memes/play/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:254f76cca600225c4d9bfe9ae35956defa380d52b545af9c787dea4c6b18e6ef +size 18658 diff --git a/meme_generator/memes/play/images/16.png b/meme_generator/memes/play/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..0c15833ab6a998756fc695aa6e9da115870e8601 --- /dev/null +++ b/meme_generator/memes/play/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a2922f5107b5f9b9a7ddbf288db02849b16c2de409571c0eb051380c1c19bdc +size 17501 diff --git a/meme_generator/memes/play/images/17.png b/meme_generator/memes/play/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..d3508cfbf78a305cdc0e573149ce585272c2ce7a --- /dev/null +++ b/meme_generator/memes/play/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:935f6176aa8743e39e6e12ae97d1904c302f768853225295dc02c609c2690c04 +size 17741 diff --git a/meme_generator/memes/play/images/18.png b/meme_generator/memes/play/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..5105bfa9c611d77afd3996a72def86ad125c49c1 --- /dev/null +++ b/meme_generator/memes/play/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21bd5caa031ace6985382469f6b20cd3fb85ac9d0a2a270ee5c3df436e6d8f66 +size 12857 diff --git a/meme_generator/memes/play/images/19.png b/meme_generator/memes/play/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..5c006baf35be5bfcd2714b43b97f6a4342478fe4 --- /dev/null +++ b/meme_generator/memes/play/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:542c536056040b78f8d1c36f5357153ca94e9e6ce88a793d5add1377c515da3c +size 11891 diff --git a/meme_generator/memes/play/images/2.png b/meme_generator/memes/play/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c8f7024a30292c785d886ca3e627e44d854a97 --- /dev/null +++ b/meme_generator/memes/play/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07685ccf37d6d11436400cdc86f482a0c72bbbc91960832acbe09c510d883627 +size 16816 diff --git a/meme_generator/memes/play/images/20.png b/meme_generator/memes/play/images/20.png new file mode 100644 index 0000000000000000000000000000000000000000..95b7a1875cf1b9ef815f4aacc91f99a374092f34 --- /dev/null +++ b/meme_generator/memes/play/images/20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73c5ee67c395cccca0d1db8dcd9738af30dcb3144aaf12cafed21053aa87ee19 +size 12827 diff --git a/meme_generator/memes/play/images/21.png b/meme_generator/memes/play/images/21.png new file mode 100644 index 0000000000000000000000000000000000000000..947e7226122e8c34a62c134e66bba341d8b6cd15 --- /dev/null +++ b/meme_generator/memes/play/images/21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a1df26c1dfe97b3c166209d1180256fe11610737d530489993c5bf9b92f117f +size 12424 diff --git a/meme_generator/memes/play/images/22.png b/meme_generator/memes/play/images/22.png new file mode 100644 index 0000000000000000000000000000000000000000..d23ff8a63040555a413fcec6d7aef89ad381843e --- /dev/null +++ b/meme_generator/memes/play/images/22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46cfc467ea4a477358b5331568119500d966a6a89ec2170b9407fa0132fbe605 +size 13902 diff --git a/meme_generator/memes/play/images/23.png b/meme_generator/memes/play/images/23.png new file mode 100644 index 0000000000000000000000000000000000000000..b15eb0c1f91e8efacc62384f2eb3a87c02d9fe7c --- /dev/null +++ b/meme_generator/memes/play/images/23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:feb5fe10848ca00a405bd7b4b72403920295549157d78ce1018831e6d1a9687b +size 32768 diff --git a/meme_generator/memes/play/images/24.png b/meme_generator/memes/play/images/24.png new file mode 100644 index 0000000000000000000000000000000000000000..9d65c25e98ff29a6a16702e1d52cd81a2d4fa3b7 --- /dev/null +++ b/meme_generator/memes/play/images/24.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39b13610e89b3286d37aaf4bcab8ed7be6f4f78ef98fbc809fbefb69d13b42c8 +size 34816 diff --git a/meme_generator/memes/play/images/25.png b/meme_generator/memes/play/images/25.png new file mode 100644 index 0000000000000000000000000000000000000000..de4bf66eef4df64d17efe0ba84fa8370fa0d3022 --- /dev/null +++ b/meme_generator/memes/play/images/25.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18944c2bfba97fb347450c3836c677ff09cdc18b679133cde05b4abfaadb0596 +size 34816 diff --git a/meme_generator/memes/play/images/26.png b/meme_generator/memes/play/images/26.png new file mode 100644 index 0000000000000000000000000000000000000000..e5501aa17fcbe96028ce02761c4e8e3185c68e04 --- /dev/null +++ b/meme_generator/memes/play/images/26.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5743f7c644caeb81c53789616e08635322c790d0ec7a9b9b92f864b0c2e58c0 +size 38912 diff --git a/meme_generator/memes/play/images/27.png b/meme_generator/memes/play/images/27.png new file mode 100644 index 0000000000000000000000000000000000000000..9d65c25e98ff29a6a16702e1d52cd81a2d4fa3b7 --- /dev/null +++ b/meme_generator/memes/play/images/27.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39b13610e89b3286d37aaf4bcab8ed7be6f4f78ef98fbc809fbefb69d13b42c8 +size 34816 diff --git a/meme_generator/memes/play/images/28.png b/meme_generator/memes/play/images/28.png new file mode 100644 index 0000000000000000000000000000000000000000..ebf88d25fdbe2c3239dd91cf4ff6e65159a7d168 --- /dev/null +++ b/meme_generator/memes/play/images/28.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0170ffc4dd0086e3f8dc1782082197231f7e1dfdfb99bc1c88272785dce56cf9 +size 49152 diff --git a/meme_generator/memes/play/images/29.png b/meme_generator/memes/play/images/29.png new file mode 100644 index 0000000000000000000000000000000000000000..b15eb0c1f91e8efacc62384f2eb3a87c02d9fe7c --- /dev/null +++ b/meme_generator/memes/play/images/29.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:feb5fe10848ca00a405bd7b4b72403920295549157d78ce1018831e6d1a9687b +size 32768 diff --git a/meme_generator/memes/play/images/3.png b/meme_generator/memes/play/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..693a807ac3e7c109a4fa84002d9a79eec7052d62 --- /dev/null +++ b/meme_generator/memes/play/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2cf0bfb3cdfa5b4b93d8a51b875997ccc232522bee5ece0126ad3634d5f4e55 +size 16322 diff --git a/meme_generator/memes/play/images/30.png b/meme_generator/memes/play/images/30.png new file mode 100644 index 0000000000000000000000000000000000000000..de4bf66eef4df64d17efe0ba84fa8370fa0d3022 --- /dev/null +++ b/meme_generator/memes/play/images/30.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18944c2bfba97fb347450c3836c677ff09cdc18b679133cde05b4abfaadb0596 +size 34816 diff --git a/meme_generator/memes/play/images/31.png b/meme_generator/memes/play/images/31.png new file mode 100644 index 0000000000000000000000000000000000000000..e5501aa17fcbe96028ce02761c4e8e3185c68e04 --- /dev/null +++ b/meme_generator/memes/play/images/31.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5743f7c644caeb81c53789616e08635322c790d0ec7a9b9b92f864b0c2e58c0 +size 38912 diff --git a/meme_generator/memes/play/images/32.png b/meme_generator/memes/play/images/32.png new file mode 100644 index 0000000000000000000000000000000000000000..ebf88d25fdbe2c3239dd91cf4ff6e65159a7d168 --- /dev/null +++ b/meme_generator/memes/play/images/32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0170ffc4dd0086e3f8dc1782082197231f7e1dfdfb99bc1c88272785dce56cf9 +size 49152 diff --git a/meme_generator/memes/play/images/33.png b/meme_generator/memes/play/images/33.png new file mode 100644 index 0000000000000000000000000000000000000000..b15eb0c1f91e8efacc62384f2eb3a87c02d9fe7c --- /dev/null +++ b/meme_generator/memes/play/images/33.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:feb5fe10848ca00a405bd7b4b72403920295549157d78ce1018831e6d1a9687b +size 32768 diff --git a/meme_generator/memes/play/images/34.png b/meme_generator/memes/play/images/34.png new file mode 100644 index 0000000000000000000000000000000000000000..de4bf66eef4df64d17efe0ba84fa8370fa0d3022 --- /dev/null +++ b/meme_generator/memes/play/images/34.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18944c2bfba97fb347450c3836c677ff09cdc18b679133cde05b4abfaadb0596 +size 34816 diff --git a/meme_generator/memes/play/images/35.png b/meme_generator/memes/play/images/35.png new file mode 100644 index 0000000000000000000000000000000000000000..e5501aa17fcbe96028ce02761c4e8e3185c68e04 --- /dev/null +++ b/meme_generator/memes/play/images/35.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5743f7c644caeb81c53789616e08635322c790d0ec7a9b9b92f864b0c2e58c0 +size 38912 diff --git a/meme_generator/memes/play/images/36.png b/meme_generator/memes/play/images/36.png new file mode 100644 index 0000000000000000000000000000000000000000..58217c724b629ad31f9598c4d0c40b30dccc2fa2 --- /dev/null +++ b/meme_generator/memes/play/images/36.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12d55902997f7bf7d1dbea0dae926b83c6c7bdbef6ecdae49ef619139f8497a0 +size 49152 diff --git a/meme_generator/memes/play/images/37.png b/meme_generator/memes/play/images/37.png new file mode 100644 index 0000000000000000000000000000000000000000..9d65c25e98ff29a6a16702e1d52cd81a2d4fa3b7 --- /dev/null +++ b/meme_generator/memes/play/images/37.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39b13610e89b3286d37aaf4bcab8ed7be6f4f78ef98fbc809fbefb69d13b42c8 +size 34816 diff --git a/meme_generator/memes/play/images/4.png b/meme_generator/memes/play/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..a62c15d47094494395329af72ead069678a15aaa --- /dev/null +++ b/meme_generator/memes/play/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0a4242e9921b4ac5ca57cd9c1ff1fe8efd8a4e096945301f40eb88456bd3697 +size 14657 diff --git a/meme_generator/memes/play/images/5.png b/meme_generator/memes/play/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..918db4fd7ee912a3e876e818406f155759bf4f72 --- /dev/null +++ b/meme_generator/memes/play/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56f5debf05081de34b51b8041ab2c520686ca310aeb79339943dfff6db958dc3 +size 15655 diff --git a/meme_generator/memes/play/images/6.png b/meme_generator/memes/play/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..31e4307120519837dfab58ff332084625cea1ee5 --- /dev/null +++ b/meme_generator/memes/play/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b538ccbfc85998a821ea7657c803cc469c157cee34e82e9275b225e97006589e +size 17269 diff --git a/meme_generator/memes/play/images/7.png b/meme_generator/memes/play/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6a6c3268104ed445b2012817be629adf615998 --- /dev/null +++ b/meme_generator/memes/play/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32fd1468cd041a47c09bdc54a606bf0631d7557227b4816dee350ea116fdf314 +size 17834 diff --git a/meme_generator/memes/play/images/8.png b/meme_generator/memes/play/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..6a731e3bb64d178a8a0dd846bd8a6f1a8444a9ea --- /dev/null +++ b/meme_generator/memes/play/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fa42616a41dd59d1ab7de75ade93d39cba8c78d3aab9522023c53fc2e2135b0 +size 17875 diff --git a/meme_generator/memes/play/images/9.png b/meme_generator/memes/play/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..af412acd63767f96a585c8113798e9ac8dcead6c --- /dev/null +++ b/meme_generator/memes/play/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef63b59f1e33796a0957876e380caba83cb7eb8754dc418797b7b4c4f76010fd +size 16911 diff --git a/meme_generator/memes/play_game/__init__.py b/meme_generator/memes/play_game/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a6b1c2dff5245faefdaf23e75cc9d1b2411d38c8 --- /dev/null +++ b/meme_generator/memes/play_game/__init__.py @@ -0,0 +1,47 @@ +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 +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def play_game(images: List[BuildImage], texts: List[str], args): + text = texts[0] if texts else "来玩休闲游戏啊" + frame = BuildImage.open(img_dir / "0.png") + try: + frame.draw_text( + (20, frame.height - 70, frame.width - 20, frame.height), + text, + max_fontsize=40, + min_fontsize=25, + stroke_fill="white", + stroke_ratio=0.06, + ) + except ValueError: + raise TextOverLength(text) + + def make(img: BuildImage) -> BuildImage: + points = ((0, 5), (227, 0), (216, 150), (0, 165)) + screen = ( + img.convert("RGBA").resize((220, 160), keep_ratio=True).perspective(points) + ) + return frame.copy().paste(screen.rotate(9, expand=True), (161, 117), below=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme( + "play_game", + play_game, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + default_texts=["来玩休闲游戏啊"], + keywords=["玩游戏"], +) diff --git a/meme_generator/memes/play_game/images/0.png b/meme_generator/memes/play_game/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..815d8411975210861ecd79b9f0e4982e3d6692a5 --- /dev/null +++ b/meme_generator/memes/play_game/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2d9737b48bd52ac0b30be56684df9fd36aaeda995d8d3b9d97c98fd19df18f1 +size 300196 diff --git a/meme_generator/memes/police/__init__.py b/meme_generator/memes/police/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..bffda044bc6484cdc09abd2f22241a6f1ddbd97e --- /dev/null +++ b/meme_generator/memes/police/__init__.py @@ -0,0 +1,31 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def police(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square().resize((245, 245)) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img, (224, 46), below=True) + return frame.save_jpg() + + +def police1(images: List[BuildImage], texts, args): + img = ( + images[0] + .convert("RGBA") + .resize((60, 75), keep_ratio=True) + .rotate(16, expand=True) + ) + frame = BuildImage.open(img_dir / "1.png") + frame.paste(img, (37, 291), below=True) + return frame.save_jpg() + + +add_meme("police", police, min_images=1, max_images=1, keywords=["出警"]) +add_meme("police1", police1, min_images=1, max_images=1, keywords=["警察"]) diff --git a/meme_generator/memes/police/images/0.png b/meme_generator/memes/police/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..24390f4764c16fd8f9f20f783597df53c041ef67 --- /dev/null +++ b/meme_generator/memes/police/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:297adf500f49a23a84105eefe4e36e748f7ee3bf100999bb72d76dfb47600e85 +size 180763 diff --git a/meme_generator/memes/police/images/1.png b/meme_generator/memes/police/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5bf737213cdeb5431626810ef317180043e1f2 --- /dev/null +++ b/meme_generator/memes/police/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fa435605ae95dbc06dba8009999bfe27f74c9a953770c0b79a2b494d2c08dd8 +size 191785 diff --git a/meme_generator/memes/pornhub/__init__.py b/meme_generator/memes/pornhub/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..82f4245aeb2b68a15f1ceeda6993f5225f89240a --- /dev/null +++ b/meme_generator/memes/pornhub/__init__.py @@ -0,0 +1,39 @@ +from typing import List + +from pil_utils import BuildImage, Text2Image + +from meme_generator import add_meme + + +def pornhub(images, texts: List[str], args): + left_img = Text2Image.from_text(texts[0], fontsize=200, fill="white").to_image( + bg_color="black", padding=(20, 10) + ) + + right_img = Text2Image.from_text( + texts[1], fontsize=200, fill="black", weight="bold" + ).to_image(bg_color=(247, 152, 23), padding=(20, 10)) + right_img = BuildImage(right_img).circle_corner(20) + + frame = BuildImage.new( + "RGBA", + (left_img.width + right_img.width, max(left_img.height, right_img.height)), + "black", + ) + frame.paste(left_img, (0, frame.height - left_img.height)).paste( + right_img, (left_img.width, frame.height - right_img.height), alpha=True + ) + frame = frame.resize_canvas( + (frame.width + 100, frame.height + 100), bg_color="black" + ) + return frame.save_jpg() + + +add_meme( + "pornhub", + pornhub, + min_texts=2, + max_texts=2, + default_texts=["You", "Tube"], + keywords=["ph", "pornhub"], +) diff --git a/meme_generator/memes/potato/__init__.py b/meme_generator/memes/potato/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4128c98ef8c702004fc6b23d1195154d3083aafb --- /dev/null +++ b/meme_generator/memes/potato/__init__.py @@ -0,0 +1,18 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def potato(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + img = images[0].convert("RGBA").square().resize((458, 458)) + frame.paste(img.rotate(-5), (531, 15), below=True) + return frame.save_jpg() + + +add_meme("potato", potato, min_images=1, max_images=1, keywords=["土豆"]) diff --git a/meme_generator/memes/potato/images/0.png b/meme_generator/memes/potato/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..ee4ec85f0eb22e2e8f43d7d66cffefae4ade4aa9 --- /dev/null +++ b/meme_generator/memes/potato/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4b9d1785b05c094bf1ffb054f2b37cc1a88c860db939cd3adb04f852791bba8 +size 366643 diff --git a/meme_generator/memes/pound/__init__.py b/meme_generator/memes/pound/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e58fccb369953bc4365fbc4f9e193b61a4a11b44 --- /dev/null +++ b/meme_generator/memes/pound/__init__.py @@ -0,0 +1,30 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 pound(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square() + # fmt: off + locs = [ + (135, 240, 138, 47), (135, 240, 138, 47), (150, 190, 105, 95), (150, 190, 105, 95), + (148, 188, 106, 98), (146, 196, 110, 88), (145, 223, 112, 61), (145, 223, 112, 61) + ] + # fmt: on + frames: List[IMG] = [] + for i in range(8): + frame = BuildImage.open(img_dir / f"{i}.png") + x, y, w, h = locs[i] + frame.paste(img.resize((w, h)), (x, y), below=True) + frames.append(frame.image) + return save_gif(frames, 0.05) + + +add_meme("pound", pound, min_images=1, max_images=1, keywords=["捣"]) diff --git a/meme_generator/memes/pound/images/0.png b/meme_generator/memes/pound/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..b01b3e173f567b9fbc68085c104c3d6485ac1014 --- /dev/null +++ b/meme_generator/memes/pound/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62dde8a3d551e94c7a44b09d8a43d1e61858afea4edbc86471d57cf73847c9fd +size 14972 diff --git a/meme_generator/memes/pound/images/1.png b/meme_generator/memes/pound/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f04de187d174104e6c4cf99761f49d66ddf33c --- /dev/null +++ b/meme_generator/memes/pound/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25a716ebc01544f45a8586710681a79036b5b7ae9a3ff376e70b2fe27fa935e7 +size 12057 diff --git a/meme_generator/memes/pound/images/2.png b/meme_generator/memes/pound/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..707657eb4475efa09c265a07b54a519053e603a5 --- /dev/null +++ b/meme_generator/memes/pound/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c062b38d594686d65fc5b5ad35e9ca818f211dc96b766c33d252a56d0cce8065 +size 12920 diff --git a/meme_generator/memes/pound/images/3.png b/meme_generator/memes/pound/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..4f5cc37d0877d131aab940909e29dd26585d6ecb --- /dev/null +++ b/meme_generator/memes/pound/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea35a7d0023076286d9f0a6877027b28abfead8c139b8a51d1f2b8ff88a4e38e +size 13853 diff --git a/meme_generator/memes/pound/images/4.png b/meme_generator/memes/pound/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..1e95220ab1eb8c81ad4f6f66cde4755b9bd59638 --- /dev/null +++ b/meme_generator/memes/pound/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2ed182cfa2b7c753d4ae79275bc219f7061496b84dbee5f2e70df780617710c +size 12679 diff --git a/meme_generator/memes/pound/images/5.png b/meme_generator/memes/pound/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..43a099e4b0c7786051932bf8c1f2f904044905fc --- /dev/null +++ b/meme_generator/memes/pound/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa1e7cb22a0464e38947ba1ffa2088a81aa0ea7d33e189883c45a7918b8e514a +size 14555 diff --git a/meme_generator/memes/pound/images/6.png b/meme_generator/memes/pound/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..9076bc86f8e8d8b58cd0fa33751712f92794d08e --- /dev/null +++ b/meme_generator/memes/pound/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d490347ac2e5442ba7e790c60b9f33c16812ebb4feb0cf75a79830c60baafeb6 +size 13951 diff --git a/meme_generator/memes/pound/images/7.png b/meme_generator/memes/pound/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..a1938bc5e5c205260e758fcff1c144b3b266144a --- /dev/null +++ b/meme_generator/memes/pound/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71ef6f723f3691fe4540155f568d902708ee0ad8d166b28075b4572ee775c1f1 +size 14325 diff --git a/meme_generator/memes/printing/__init__.py b/meme_generator/memes/printing/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..99e79ae78745b417d55fc266449687653b715d81 --- /dev/null +++ b/meme_generator/memes/printing/__init__.py @@ -0,0 +1,31 @@ +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 printing(images: List[BuildImage], texts, args): + img = ( + images[0] + .convert("RGBA") + .resize( + (304, 174), + keep_ratio=True, + inside=True, + bg_color="white", + direction="south", + ) + ) + frames = [BuildImage.open(img_dir / f"{i}.png") for i in range(115)] + for i in range(50, 115): + frames[i].paste(img, (146, 164), below=True) + frames = [frame.image for frame in frames] + return save_gif(frames, 0.05) + + +add_meme("printing", printing, min_images=1, max_images=1, keywords=["打印"]) diff --git a/meme_generator/memes/printing/images/0.png b/meme_generator/memes/printing/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..2824c800eb95a4a8dc8fc867511c7e74762b1537 --- /dev/null +++ b/meme_generator/memes/printing/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8770fe4899947ab716a132495952df07d9d4de6985f6f5086655ebcac87be4fb +size 8679 diff --git a/meme_generator/memes/printing/images/1.png b/meme_generator/memes/printing/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..dbd1807579e3c0a92da57b4d6e92bb7fca7bd51b --- /dev/null +++ b/meme_generator/memes/printing/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1075fec9c5c4150ec99752a722db4057cb4797be7423448b3c001f1493c498ee +size 8721 diff --git a/meme_generator/memes/printing/images/10.png b/meme_generator/memes/printing/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..5ecaee1e8f053075e3995401b1a38d585973ae64 --- /dev/null +++ b/meme_generator/memes/printing/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9aab7f7f38b13869235445c622716a11cfcc398643c5b133e142970c920985e4 +size 8646 diff --git a/meme_generator/memes/printing/images/100.png b/meme_generator/memes/printing/images/100.png new file mode 100644 index 0000000000000000000000000000000000000000..5d0f849b127755a2ecbe2f3706cd4a1e51f5f394 --- /dev/null +++ b/meme_generator/memes/printing/images/100.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e1e31a5c2c55d3d08980dd43db114e9ec5d73ab1e191875786e0a3e963fb2f4 +size 8569 diff --git a/meme_generator/memes/printing/images/101.png b/meme_generator/memes/printing/images/101.png new file mode 100644 index 0000000000000000000000000000000000000000..7e1febd617d54b217802ffa906340bc4b14b1603 --- /dev/null +++ b/meme_generator/memes/printing/images/101.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a90770429b56b36ede66a4033f1c191a4379ebb10e5ccc46578b3e84730140b +size 8619 diff --git a/meme_generator/memes/printing/images/102.png b/meme_generator/memes/printing/images/102.png new file mode 100644 index 0000000000000000000000000000000000000000..124e86cf98403bb01a551e765b755279b03a9de7 --- /dev/null +++ b/meme_generator/memes/printing/images/102.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bde44bbfb8244dcfcea1aa81eb28cd2acbcaa7e0f9ecc861da5dea86dd9851d1 +size 8635 diff --git a/meme_generator/memes/printing/images/103.png b/meme_generator/memes/printing/images/103.png new file mode 100644 index 0000000000000000000000000000000000000000..1e727449401d55943128eeca6ff93f273fe39790 --- /dev/null +++ b/meme_generator/memes/printing/images/103.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:186141308c9108b09d4bc683c510c2dc6fdec9234df80ca00e522caba04028b7 +size 8623 diff --git a/meme_generator/memes/printing/images/104.png b/meme_generator/memes/printing/images/104.png new file mode 100644 index 0000000000000000000000000000000000000000..b6bd729c829f9e8429893ad4533df89f2e6ccf12 --- /dev/null +++ b/meme_generator/memes/printing/images/104.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8da49d87805e822411f1d9732dbee0563bb60800c240bd52a6a6926a3e9d5973 +size 8644 diff --git a/meme_generator/memes/printing/images/105.png b/meme_generator/memes/printing/images/105.png new file mode 100644 index 0000000000000000000000000000000000000000..4a506df183f0eee39fc97d0f4b9f8459bc55c8c1 --- /dev/null +++ b/meme_generator/memes/printing/images/105.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44c68f63b036771992716d03966b1ebd57b506617f9ff01355a66f94ab5474ca +size 8660 diff --git a/meme_generator/memes/printing/images/106.png b/meme_generator/memes/printing/images/106.png new file mode 100644 index 0000000000000000000000000000000000000000..3201880ceffaa45765de138bb2a7fa545ef2e285 --- /dev/null +++ b/meme_generator/memes/printing/images/106.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53942db55f4a196ba034f1239e4c1f9f57930721e87ff7eb8ed31b3e5ae5dd24 +size 8661 diff --git a/meme_generator/memes/printing/images/107.png b/meme_generator/memes/printing/images/107.png new file mode 100644 index 0000000000000000000000000000000000000000..eda1435afba2ac555ce63d1a378d733458c4441e --- /dev/null +++ b/meme_generator/memes/printing/images/107.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2df426a69c20193ce4ec5a13f54d1eeaca46e0dbf7da10874ffd54af80c73b7b +size 8633 diff --git a/meme_generator/memes/printing/images/108.png b/meme_generator/memes/printing/images/108.png new file mode 100644 index 0000000000000000000000000000000000000000..19470b7b0df46341306bc6fff593badf799d435f --- /dev/null +++ b/meme_generator/memes/printing/images/108.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d07b7a7b5409730f5f57c520d88a8f595d39e81b43d3040486eee15d1219b80 +size 8654 diff --git a/meme_generator/memes/printing/images/109.png b/meme_generator/memes/printing/images/109.png new file mode 100644 index 0000000000000000000000000000000000000000..9e3593d8cb3bbfc3c8fa064063af8fae2b0e3b5b --- /dev/null +++ b/meme_generator/memes/printing/images/109.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d2fb87a31cc7da4a761e49ea1817ffe2f60c5ea87d4548440aac7dab1136cd1 +size 8640 diff --git a/meme_generator/memes/printing/images/11.png b/meme_generator/memes/printing/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..6b39e0edc4678da079536a83570816ff05f957f4 --- /dev/null +++ b/meme_generator/memes/printing/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d250c6dfe31989d6025fcbf1e3cd9235bd18055652234c58b1200fa20199261 +size 8651 diff --git a/meme_generator/memes/printing/images/110.png b/meme_generator/memes/printing/images/110.png new file mode 100644 index 0000000000000000000000000000000000000000..e06b0f360997f5c219a1b9735f1f04bb2c455793 --- /dev/null +++ b/meme_generator/memes/printing/images/110.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c1381be6c91ecd279eb8d8920860430647f1540dba2aa41fa32c94887d1d9c7 +size 8605 diff --git a/meme_generator/memes/printing/images/111.png b/meme_generator/memes/printing/images/111.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8e94ab807c91af9c4b4fcdb23f72fc94d9d1aa --- /dev/null +++ b/meme_generator/memes/printing/images/111.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c066a411a284928e55469840cca7d4d6df7194f2e8aa058d96dcec244069a3e6 +size 8602 diff --git a/meme_generator/memes/printing/images/112.png b/meme_generator/memes/printing/images/112.png new file mode 100644 index 0000000000000000000000000000000000000000..b88d0cc3c102c620aa13da6100460df14de8a205 --- /dev/null +++ b/meme_generator/memes/printing/images/112.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58706efea4fd1831ebff6561237a42fbfa82075ef9b51b1528b15b8750eaf0f5 +size 8594 diff --git a/meme_generator/memes/printing/images/113.png b/meme_generator/memes/printing/images/113.png new file mode 100644 index 0000000000000000000000000000000000000000..4e614b239a0cfd2b1d718943d985825765673e4a --- /dev/null +++ b/meme_generator/memes/printing/images/113.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65aaed39e4a329c458b915990af560ba54b9beb1e4e250814042da9c53d4574b +size 8604 diff --git a/meme_generator/memes/printing/images/114.png b/meme_generator/memes/printing/images/114.png new file mode 100644 index 0000000000000000000000000000000000000000..5adedf1509981711af253ebffc21a992ad19636a --- /dev/null +++ b/meme_generator/memes/printing/images/114.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96581003d43c61dfb723edb88a61062746a7143e10b1115fff2be59c205f9886 +size 8586 diff --git a/meme_generator/memes/printing/images/12.png b/meme_generator/memes/printing/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..f26320937617899b03051a8a56a0219b441e87f6 --- /dev/null +++ b/meme_generator/memes/printing/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d3ce90600fb0a0448eb2d56faff384c1a007360273420ffdd4ba6a10e3cd7d1 +size 8647 diff --git a/meme_generator/memes/printing/images/13.png b/meme_generator/memes/printing/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..5797faaa9e7d0b0fd9d0baa211fd50de78fae6e2 --- /dev/null +++ b/meme_generator/memes/printing/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd0a421615c23cc53b8b9aa023d41694014523fa8e53ddc44f1da03667c3075b +size 8660 diff --git a/meme_generator/memes/printing/images/14.png b/meme_generator/memes/printing/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..602d984d222a972d1652268683abc19e2de1c17c --- /dev/null +++ b/meme_generator/memes/printing/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d564d865bc65884994f0def760c9f42661832461fdad7b130ac295470d65a2bd +size 8689 diff --git a/meme_generator/memes/printing/images/15.png b/meme_generator/memes/printing/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..208d34aedd151c924ae904885bf1b80bfb1e344f --- /dev/null +++ b/meme_generator/memes/printing/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:332941eb4f335a84a265e1459bd72cde4b359c7d167d6947f7a45d9ff2fef755 +size 8666 diff --git a/meme_generator/memes/printing/images/16.png b/meme_generator/memes/printing/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..d6568d5a8a3f55422cb2b58d8dd970a5b71ed3a0 --- /dev/null +++ b/meme_generator/memes/printing/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52112f65ef664f963af7f6ded5d6c3b71b315a0f5f06ba2879dedde4e4f99742 +size 8599 diff --git a/meme_generator/memes/printing/images/17.png b/meme_generator/memes/printing/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..b807919188901f4a0fa80da62b6c6fc1826fb877 --- /dev/null +++ b/meme_generator/memes/printing/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18058e5f39521a4e9199caa009ea26a183bb8174d2720160f53b7815dd2da254 +size 8733 diff --git a/meme_generator/memes/printing/images/18.png b/meme_generator/memes/printing/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..05ff0b7de1ead9103513ff7fc6460dcb6b139634 --- /dev/null +++ b/meme_generator/memes/printing/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:018999e969469daf225a6e42c198217f84e3904077ffd7708405d50202330e56 +size 8726 diff --git a/meme_generator/memes/printing/images/19.png b/meme_generator/memes/printing/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..19a812ec63d9734dd3eb4616cd919792522fef4f --- /dev/null +++ b/meme_generator/memes/printing/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51430b14d6768d2c0acfdd776a921049ea0e815d4a87c317ec760ab12fc0a0ae +size 8623 diff --git a/meme_generator/memes/printing/images/2.png b/meme_generator/memes/printing/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..194e61cb9b01f2510f7336e66c42f6ca9e138315 --- /dev/null +++ b/meme_generator/memes/printing/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:592f386a6c52dad7973ce1a1b4ad009c4062a6c1bfb43c9f1d39ae104b85ec61 +size 8583 diff --git a/meme_generator/memes/printing/images/20.png b/meme_generator/memes/printing/images/20.png new file mode 100644 index 0000000000000000000000000000000000000000..3d85d4090190ee68bedbc9b6d7b4b5c53e98e3fd --- /dev/null +++ b/meme_generator/memes/printing/images/20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96e2920ed6862632400052740bfd3c22835016cd07d78eda00bcde7caa77cf08 +size 8596 diff --git a/meme_generator/memes/printing/images/21.png b/meme_generator/memes/printing/images/21.png new file mode 100644 index 0000000000000000000000000000000000000000..2258dad5b1456f1233638b5ba2f413028f5a4582 --- /dev/null +++ b/meme_generator/memes/printing/images/21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cbbd33a8a5cc54f27fdedbc1754906c943dfcf7b083289a2138df4c167115db +size 8642 diff --git a/meme_generator/memes/printing/images/22.png b/meme_generator/memes/printing/images/22.png new file mode 100644 index 0000000000000000000000000000000000000000..ef7966f1ac0d1cf63552e3aa65fd35f1992e4dbb --- /dev/null +++ b/meme_generator/memes/printing/images/22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c869828c6df117199c5425ecd7f9191615ebd7282f5ac8da3de4ea6c2ea5174 +size 8714 diff --git a/meme_generator/memes/printing/images/23.png b/meme_generator/memes/printing/images/23.png new file mode 100644 index 0000000000000000000000000000000000000000..658114880fc5676464d18274b87a8332a7b6ec33 --- /dev/null +++ b/meme_generator/memes/printing/images/23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:259fe7fc0ef2d088ac90a5525683d809f1f26dfe56acf78e0b19fc9d3ac77364 +size 8647 diff --git a/meme_generator/memes/printing/images/24.png b/meme_generator/memes/printing/images/24.png new file mode 100644 index 0000000000000000000000000000000000000000..263ca080dafa5658392085c096fc8c4e24a184a4 --- /dev/null +++ b/meme_generator/memes/printing/images/24.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc8ff23b78f2799d77dc05954982c6a12829c5f5795dd3258801042491c07e79 +size 8631 diff --git a/meme_generator/memes/printing/images/25.png b/meme_generator/memes/printing/images/25.png new file mode 100644 index 0000000000000000000000000000000000000000..63f623877543d6a450f652ee5a4e8c7a715b3a12 --- /dev/null +++ b/meme_generator/memes/printing/images/25.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7faf5f364d70c6fb82dce3c1869c4c606f82edbf4ea0ca7006222631750eb7d1 +size 8652 diff --git a/meme_generator/memes/printing/images/26.png b/meme_generator/memes/printing/images/26.png new file mode 100644 index 0000000000000000000000000000000000000000..11bd3b9ba90d7861a09f86d745316bf8527a03bf --- /dev/null +++ b/meme_generator/memes/printing/images/26.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d257703df928ac219283e535b983bb088e99ff5afc218add434f85cac8fd3b00 +size 8640 diff --git a/meme_generator/memes/printing/images/27.png b/meme_generator/memes/printing/images/27.png new file mode 100644 index 0000000000000000000000000000000000000000..4786cce6d1e6d461d256a9393ffe67ddd2cf7252 --- /dev/null +++ b/meme_generator/memes/printing/images/27.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba005774e80a93a03616d382ceaf807626a8e5cb44c466e65f53de23617a645b +size 8557 diff --git a/meme_generator/memes/printing/images/28.png b/meme_generator/memes/printing/images/28.png new file mode 100644 index 0000000000000000000000000000000000000000..2e14c01e69eab869809a20f83cbe5fb123a64e99 --- /dev/null +++ b/meme_generator/memes/printing/images/28.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfe768c947623427b99382c14a2dc689ad39795fd2f74e368467e37a448db78d +size 8603 diff --git a/meme_generator/memes/printing/images/29.png b/meme_generator/memes/printing/images/29.png new file mode 100644 index 0000000000000000000000000000000000000000..122ef56c52e567114d5d6ac318cf62ece5a7cf9b --- /dev/null +++ b/meme_generator/memes/printing/images/29.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c38530212f3f6cea636bcd2854848a4c755dc6319362cc6b3a3930140a118ba6 +size 8611 diff --git a/meme_generator/memes/printing/images/3.png b/meme_generator/memes/printing/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..abaecf5be37674e31d2093e75c9c988f5f44ff27 --- /dev/null +++ b/meme_generator/memes/printing/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70575adc5893fd955ebb260e0be2296d1be54d95b61e2b1087ab471175b2b79e +size 8607 diff --git a/meme_generator/memes/printing/images/30.png b/meme_generator/memes/printing/images/30.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ad9a34e07c8635f12bed1748d7e9dafdf83a5c --- /dev/null +++ b/meme_generator/memes/printing/images/30.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17ce3b6054f5e31119fa5b4f1f559f6d3e81b5b95ad5250b98e767e956479065 +size 8626 diff --git a/meme_generator/memes/printing/images/31.png b/meme_generator/memes/printing/images/31.png new file mode 100644 index 0000000000000000000000000000000000000000..66e4ef3c65cdb8e8572116e0c30383a50ca62d49 --- /dev/null +++ b/meme_generator/memes/printing/images/31.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:688d43d2e6a2f4e5ff0a261528f524e8201c36323a9034b975110c5e906c8c51 +size 8608 diff --git a/meme_generator/memes/printing/images/32.png b/meme_generator/memes/printing/images/32.png new file mode 100644 index 0000000000000000000000000000000000000000..208698440ecb75e36c09a3515d4a0445ad95f904 --- /dev/null +++ b/meme_generator/memes/printing/images/32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5d505002711943dcaea8d799392f40900f427f77b7751ff180b51091e81b788 +size 8533 diff --git a/meme_generator/memes/printing/images/33.png b/meme_generator/memes/printing/images/33.png new file mode 100644 index 0000000000000000000000000000000000000000..b668310680319762d3f183dcab62f2aff7fa4c5d --- /dev/null +++ b/meme_generator/memes/printing/images/33.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a0165d7bb73609e44740f6e8dca3a7070f706266418b2a66cdf956548060d55 +size 8621 diff --git a/meme_generator/memes/printing/images/34.png b/meme_generator/memes/printing/images/34.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb2e879fde3f4967412b6815e1c00d577ab1be8 --- /dev/null +++ b/meme_generator/memes/printing/images/34.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86d01ed1ccfc332c2f31b555632de78258613a0c5959f298859b1c9dac35b360 +size 8547 diff --git a/meme_generator/memes/printing/images/35.png b/meme_generator/memes/printing/images/35.png new file mode 100644 index 0000000000000000000000000000000000000000..bf486536e450c96fe589d4b93e7abd15cb207476 --- /dev/null +++ b/meme_generator/memes/printing/images/35.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d03f2a5dacc6e6ce3a0c982880aea5c4a327b6a0254d26c7d4361d224bde06f1 +size 8609 diff --git a/meme_generator/memes/printing/images/36.png b/meme_generator/memes/printing/images/36.png new file mode 100644 index 0000000000000000000000000000000000000000..41f38714adba1f4714bbdfb634cbecadc44e9823 --- /dev/null +++ b/meme_generator/memes/printing/images/36.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a66820cf331b00792ddd9bb51aeeec181846fe6843c798ba50dd92f231a796ff +size 8637 diff --git a/meme_generator/memes/printing/images/37.png b/meme_generator/memes/printing/images/37.png new file mode 100644 index 0000000000000000000000000000000000000000..cfff4610742a94d53482840e40fc7147c7edcf15 --- /dev/null +++ b/meme_generator/memes/printing/images/37.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a16911feddd489b965dad8f55c88826bf29c43c0fdde37a30b4f230edc7517f0 +size 8638 diff --git a/meme_generator/memes/printing/images/38.png b/meme_generator/memes/printing/images/38.png new file mode 100644 index 0000000000000000000000000000000000000000..02a2e821b195fb17193eae20b83a9394f6587ba9 --- /dev/null +++ b/meme_generator/memes/printing/images/38.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:282581bc0edaff73b5ab1a19e90d99b97cd6782bf1e410ecb30da5b6daadaa99 +size 8651 diff --git a/meme_generator/memes/printing/images/39.png b/meme_generator/memes/printing/images/39.png new file mode 100644 index 0000000000000000000000000000000000000000..2fdeb17cf73018443ca6adf8a21bce3df8ad7f69 --- /dev/null +++ b/meme_generator/memes/printing/images/39.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72fd4a240d503ef93ddd44046daec75f8f5d778369a3c629a9ad30826f64a58c +size 8640 diff --git a/meme_generator/memes/printing/images/4.png b/meme_generator/memes/printing/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..d19d21995549dc11ed6c3c7a882c1db3affc5dfd --- /dev/null +++ b/meme_generator/memes/printing/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b65808f8567aefa9f3396f9ef3469c4a7145e87ea15201148d66a40deac595d +size 8658 diff --git a/meme_generator/memes/printing/images/40.png b/meme_generator/memes/printing/images/40.png new file mode 100644 index 0000000000000000000000000000000000000000..0a036b1e820da7f64161bb753d7c7cc3683866ee --- /dev/null +++ b/meme_generator/memes/printing/images/40.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5862e71c4c8e084920008e3dd9a48ee53a06626e4be6276e8a9d9a92e900cb5a +size 8613 diff --git a/meme_generator/memes/printing/images/41.png b/meme_generator/memes/printing/images/41.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8b70d32b6de1bd6045890af6167b88ebded879 --- /dev/null +++ b/meme_generator/memes/printing/images/41.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bccb9784b06c1fa76a68dadbddc62942f316bb6168b426b5d100b741b0be5857 +size 8601 diff --git a/meme_generator/memes/printing/images/42.png b/meme_generator/memes/printing/images/42.png new file mode 100644 index 0000000000000000000000000000000000000000..ab97bdc3e08303ebf4d8470ac062808f4a1b7f7a --- /dev/null +++ b/meme_generator/memes/printing/images/42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cd32926b19b3a0e56261efa0d53a85c2eb179886fb6b1f6787ffa548d6a2971 +size 8566 diff --git a/meme_generator/memes/printing/images/43.png b/meme_generator/memes/printing/images/43.png new file mode 100644 index 0000000000000000000000000000000000000000..5b02c09dfe8152d7973c435bd4529c8a3110c2b7 --- /dev/null +++ b/meme_generator/memes/printing/images/43.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ab36a40869f8053008d99288fe01fa00c1099197dafd896e1fb40c94d9ad8f5 +size 8533 diff --git a/meme_generator/memes/printing/images/44.png b/meme_generator/memes/printing/images/44.png new file mode 100644 index 0000000000000000000000000000000000000000..80d8ba1dfbd745ddc5766b974001ffd8c9ae2ac7 --- /dev/null +++ b/meme_generator/memes/printing/images/44.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36235e64297ea6dc62ee0dd9a5e179f31eb7a6a0c7208adf0f00d4081c5f4d1a +size 8277 diff --git a/meme_generator/memes/printing/images/45.png b/meme_generator/memes/printing/images/45.png new file mode 100644 index 0000000000000000000000000000000000000000..570b3442b1aadeb522dcf3832ff756c517d2836d --- /dev/null +++ b/meme_generator/memes/printing/images/45.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bb9e15b9cb2f20de872b8904cfc2e78aaedb7864c54135ca10e55c86516bd82 +size 8513 diff --git a/meme_generator/memes/printing/images/46.png b/meme_generator/memes/printing/images/46.png new file mode 100644 index 0000000000000000000000000000000000000000..62cd5db7f7fdd347526e9c1377810dc33168d96e --- /dev/null +++ b/meme_generator/memes/printing/images/46.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a71bf3448077222f4b29021fad19f325af23a7450659f29e8cb35051ce8ff4a +size 8483 diff --git a/meme_generator/memes/printing/images/47.png b/meme_generator/memes/printing/images/47.png new file mode 100644 index 0000000000000000000000000000000000000000..b6ebc7c355b6f3535508d4bd010b3777e2cf4560 --- /dev/null +++ b/meme_generator/memes/printing/images/47.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bba090e923e26f942c1a3e57c9ec2875c4386ce1f54740ef49125a9dcffb1651 +size 8505 diff --git a/meme_generator/memes/printing/images/48.png b/meme_generator/memes/printing/images/48.png new file mode 100644 index 0000000000000000000000000000000000000000..112d0be5b293cd673e218e8d00e56e2f319fd287 --- /dev/null +++ b/meme_generator/memes/printing/images/48.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b94a2f0f0af67b88a4aee2fd9dcd65d287950060ed6e7679e5ce570343f96a8b +size 8580 diff --git a/meme_generator/memes/printing/images/49.png b/meme_generator/memes/printing/images/49.png new file mode 100644 index 0000000000000000000000000000000000000000..a2d366abcd6049dde71ce8ce9d9706d0266587a5 --- /dev/null +++ b/meme_generator/memes/printing/images/49.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:013814d285dc19e39077ed3939699c7aee08470bcde4b7d1f13a36ea5a5a1f7e +size 8616 diff --git a/meme_generator/memes/printing/images/5.png b/meme_generator/memes/printing/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..34dfd7d4c5c823f7740f260926b3f232e864a376 --- /dev/null +++ b/meme_generator/memes/printing/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9484c42db92e067928113c354c45f33de77ad5dca646f0577b82ab4e9fe776e2 +size 8644 diff --git a/meme_generator/memes/printing/images/50.png b/meme_generator/memes/printing/images/50.png new file mode 100644 index 0000000000000000000000000000000000000000..de7648589f10d4849127c93ee7a8a9a8659546c3 --- /dev/null +++ b/meme_generator/memes/printing/images/50.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8a78a9b555d7c1d4b6152a39204509d0e445fd43d18c8c6cc817716395cc06a +size 8606 diff --git a/meme_generator/memes/printing/images/51.png b/meme_generator/memes/printing/images/51.png new file mode 100644 index 0000000000000000000000000000000000000000..7ba9e62d73e34c6c10d6ea4a06a91b1b9bec5316 --- /dev/null +++ b/meme_generator/memes/printing/images/51.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b76da3dc85e1cf5293b0bfe62123d328e0dbba3e853791477e570106edb7547d +size 8640 diff --git a/meme_generator/memes/printing/images/52.png b/meme_generator/memes/printing/images/52.png new file mode 100644 index 0000000000000000000000000000000000000000..ac25415d27b099336d647c482bd7091c7c38b113 --- /dev/null +++ b/meme_generator/memes/printing/images/52.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:633dfbcdcc9457a77aaa8ea5d6aadbcf1274a33bc7353aa6af7ce554d9d70970 +size 8641 diff --git a/meme_generator/memes/printing/images/53.png b/meme_generator/memes/printing/images/53.png new file mode 100644 index 0000000000000000000000000000000000000000..316d7e6292f24b16ab2d8ca553208f56af8ddfaf --- /dev/null +++ b/meme_generator/memes/printing/images/53.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa6d5a78465d833ff3a318c5f10c861aa8fa9fcf74ad8709c4d6c97db2aa048e +size 8702 diff --git a/meme_generator/memes/printing/images/54.png b/meme_generator/memes/printing/images/54.png new file mode 100644 index 0000000000000000000000000000000000000000..ef382988a51aa89605b73760ae294b931048c030 --- /dev/null +++ b/meme_generator/memes/printing/images/54.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ef31f5c08c1b383d9962d73f843ffdc101ac4f09b3a439226396e6175e90e64 +size 8663 diff --git a/meme_generator/memes/printing/images/55.png b/meme_generator/memes/printing/images/55.png new file mode 100644 index 0000000000000000000000000000000000000000..6d312659aba607544f0e593171cec48ac90b5465 --- /dev/null +++ b/meme_generator/memes/printing/images/55.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34fabd98dd6746bf4754fe841cf270b25232db2d9910a38337281c101b98fb92 +size 8626 diff --git a/meme_generator/memes/printing/images/56.png b/meme_generator/memes/printing/images/56.png new file mode 100644 index 0000000000000000000000000000000000000000..e71f6d7130a5e41dc2d01d49a61e07c4a7e60390 --- /dev/null +++ b/meme_generator/memes/printing/images/56.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5132a9ba46409d6ab7e68ca3904dd72590fc082c2f6dfed95559e7080286863 +size 8540 diff --git a/meme_generator/memes/printing/images/57.png b/meme_generator/memes/printing/images/57.png new file mode 100644 index 0000000000000000000000000000000000000000..ab2477da8e2cdb00786c3a83810d0d6540631a63 --- /dev/null +++ b/meme_generator/memes/printing/images/57.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b12f5a5427d75acc3d5d442574f3b98e2e16515fd3d38653d66346ef72def617 +size 8527 diff --git a/meme_generator/memes/printing/images/58.png b/meme_generator/memes/printing/images/58.png new file mode 100644 index 0000000000000000000000000000000000000000..eeab1462f54de837dfcd928c71269071ce99b5bd --- /dev/null +++ b/meme_generator/memes/printing/images/58.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2683f7c17d5f2b671e6c6536c18cb4bf44b2cbe74d4052d7a3d68e929fb061da +size 8218 diff --git a/meme_generator/memes/printing/images/59.png b/meme_generator/memes/printing/images/59.png new file mode 100644 index 0000000000000000000000000000000000000000..17aa92ad6f4e843ab0c12dea41644b01067965b9 --- /dev/null +++ b/meme_generator/memes/printing/images/59.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6a7d759d8c1947213279af9448863885fdb315cdc0c362674ce37160d20e2d9 +size 8508 diff --git a/meme_generator/memes/printing/images/6.png b/meme_generator/memes/printing/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..982b9e46eb1f2753a7aaa35b4ad799dfe25b73cd --- /dev/null +++ b/meme_generator/memes/printing/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:886cab6403d11f33db5afd4de9b7554d35a9d8223bea224747daadfd590fc9d4 +size 8686 diff --git a/meme_generator/memes/printing/images/60.png b/meme_generator/memes/printing/images/60.png new file mode 100644 index 0000000000000000000000000000000000000000..7314c2dc044944730b47855c73c5d005d1506880 --- /dev/null +++ b/meme_generator/memes/printing/images/60.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7986c42c8992d6748b200013068ded15af189ebbe7bec83c03a55ee3b1ca63ad +size 8530 diff --git a/meme_generator/memes/printing/images/61.png b/meme_generator/memes/printing/images/61.png new file mode 100644 index 0000000000000000000000000000000000000000..66e232fd4256b8f9904bc3378f5404dd98564542 --- /dev/null +++ b/meme_generator/memes/printing/images/61.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8527f3147e15d1b97c246c49fa88f1943d1ca9e57b2aa1271daa21e4a3db859 +size 8654 diff --git a/meme_generator/memes/printing/images/62.png b/meme_generator/memes/printing/images/62.png new file mode 100644 index 0000000000000000000000000000000000000000..92917815fe0edee1e66cf5018308ee0215a9b218 --- /dev/null +++ b/meme_generator/memes/printing/images/62.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94b9cb7cb63d58a8f7e8f8de2b18138ff083acb836262136dff3d2f7a2fb58a7 +size 8695 diff --git a/meme_generator/memes/printing/images/63.png b/meme_generator/memes/printing/images/63.png new file mode 100644 index 0000000000000000000000000000000000000000..3e221fd822b71c4a7d9f2b51a6bb55e0889f53e4 --- /dev/null +++ b/meme_generator/memes/printing/images/63.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:584e67966bc04dce1be68e2b1628d8e33e461f0f6503d116b38dcfd99f07d593 +size 8697 diff --git a/meme_generator/memes/printing/images/64.png b/meme_generator/memes/printing/images/64.png new file mode 100644 index 0000000000000000000000000000000000000000..4a10a899ca1c08d378ad545303d26ae974f4a85d --- /dev/null +++ b/meme_generator/memes/printing/images/64.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e99fc94ba5484fb54aa3456b3bd4031037ce6ab5ef1a419fdadcb3dd08501313 +size 8691 diff --git a/meme_generator/memes/printing/images/65.png b/meme_generator/memes/printing/images/65.png new file mode 100644 index 0000000000000000000000000000000000000000..e0a289de8b0b6bd1e2b9cbd49687a5a4632e8cfd --- /dev/null +++ b/meme_generator/memes/printing/images/65.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:234792a1279384b1f7a27548441e215de69b1f8e2c3bbf1111771ee70511bc12 +size 8630 diff --git a/meme_generator/memes/printing/images/66.png b/meme_generator/memes/printing/images/66.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f34ba980f6bcf35dc58d4af22e3384af117402 --- /dev/null +++ b/meme_generator/memes/printing/images/66.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26f3e7df7572a48a90b8d4cd7d399cb92f808a0919a576ef13fe2c03ed1d798a +size 8648 diff --git a/meme_generator/memes/printing/images/67.png b/meme_generator/memes/printing/images/67.png new file mode 100644 index 0000000000000000000000000000000000000000..7643876cdd1c09e4200e137de1c786ece1247d36 --- /dev/null +++ b/meme_generator/memes/printing/images/67.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7dea4df9daaf1d5e528ca3be9f4a370c0061734a8e9095862b91038e29d0440 +size 8629 diff --git a/meme_generator/memes/printing/images/68.png b/meme_generator/memes/printing/images/68.png new file mode 100644 index 0000000000000000000000000000000000000000..f85e5b3954079bc7821c5a5652be697cd4e1cadc --- /dev/null +++ b/meme_generator/memes/printing/images/68.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:639961a1a2845257be8036266c5e86d797b6a06d529193f92ab108dcbee006db +size 8676 diff --git a/meme_generator/memes/printing/images/69.png b/meme_generator/memes/printing/images/69.png new file mode 100644 index 0000000000000000000000000000000000000000..e18353faf26ad18436b51d8be59f878c451038d6 --- /dev/null +++ b/meme_generator/memes/printing/images/69.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cd2ac32b32c1aef62e9ef32f768fde978e1a0a3d112bb8b749de999985fe21a +size 8607 diff --git a/meme_generator/memes/printing/images/7.png b/meme_generator/memes/printing/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..b3645a6ee946105362e4c7a6a7c12afd080d9f97 --- /dev/null +++ b/meme_generator/memes/printing/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3dfea95c69ac4669906765f5136d9933bc8926049778ad55395d3c5e8d82bdd +size 8631 diff --git a/meme_generator/memes/printing/images/70.png b/meme_generator/memes/printing/images/70.png new file mode 100644 index 0000000000000000000000000000000000000000..9482cbbb2e4bbb62b652745ff7dac50c3e9face8 --- /dev/null +++ b/meme_generator/memes/printing/images/70.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:849f26a1dc988857129ed15d7af1197d0e5bf6873560ebfdb891e1a0ae94b8d8 +size 8559 diff --git a/meme_generator/memes/printing/images/71.png b/meme_generator/memes/printing/images/71.png new file mode 100644 index 0000000000000000000000000000000000000000..f520badc043f744147d6512a7ea7fd12ac8d9f90 --- /dev/null +++ b/meme_generator/memes/printing/images/71.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fc541d38adfede9553ef7946124dacb9a35c573bf98c9acc7bb6a9f0820b772 +size 8243 diff --git a/meme_generator/memes/printing/images/72.png b/meme_generator/memes/printing/images/72.png new file mode 100644 index 0000000000000000000000000000000000000000..b6bcd3e3226331f2c5877653733f0bee2745580d --- /dev/null +++ b/meme_generator/memes/printing/images/72.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b7e1ae855f57ca39955b8d8cce469ce1e2e3f028e960ee22e67d7d04c1baa7d +size 8522 diff --git a/meme_generator/memes/printing/images/73.png b/meme_generator/memes/printing/images/73.png new file mode 100644 index 0000000000000000000000000000000000000000..a1c8cb4ecb32e92836d7cb422ce6356a9d39205f --- /dev/null +++ b/meme_generator/memes/printing/images/73.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95561bdc6fe72d845317af18d1f362ebcab233ce5b8d851b4f9df2e00385ede2 +size 8554 diff --git a/meme_generator/memes/printing/images/74.png b/meme_generator/memes/printing/images/74.png new file mode 100644 index 0000000000000000000000000000000000000000..efa45ed3841cdea6581fb63aa02e49dc7746cbe2 --- /dev/null +++ b/meme_generator/memes/printing/images/74.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35726df666d1826dcaab73a63399af05801945425a7ec97ab02764bf4fe9265e +size 8540 diff --git a/meme_generator/memes/printing/images/75.png b/meme_generator/memes/printing/images/75.png new file mode 100644 index 0000000000000000000000000000000000000000..488e7887cdb3d16adf9098e6d93cb5c9b2a583e6 --- /dev/null +++ b/meme_generator/memes/printing/images/75.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc6a0528ab8f77ce8d0418f03397d90069025fd51b1d8e9d9fdc42ef30e64ee7 +size 8593 diff --git a/meme_generator/memes/printing/images/76.png b/meme_generator/memes/printing/images/76.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ee40715856eb2045a55c7f88d3ed71ac91f212 --- /dev/null +++ b/meme_generator/memes/printing/images/76.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78280b2ab0450783cee08ed5494259d2efdbd5ad76a8812871b1714deb202b0b +size 8665 diff --git a/meme_generator/memes/printing/images/77.png b/meme_generator/memes/printing/images/77.png new file mode 100644 index 0000000000000000000000000000000000000000..37ef940786cd0338f60274e57e149f6674d17b71 --- /dev/null +++ b/meme_generator/memes/printing/images/77.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07cd05bb6d6f3b50ab164a72b63837e1dac6c5faa739dbfc445317088c2a4389 +size 8742 diff --git a/meme_generator/memes/printing/images/78.png b/meme_generator/memes/printing/images/78.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc6dda913ba655cb008e3fd176b5f16c8ba6aaf --- /dev/null +++ b/meme_generator/memes/printing/images/78.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d541d3e0fa1d9055fc45e2daee6348a461341c9c8eb24584780a0f18d3094e3 +size 8720 diff --git a/meme_generator/memes/printing/images/79.png b/meme_generator/memes/printing/images/79.png new file mode 100644 index 0000000000000000000000000000000000000000..39123f119c31c80b651d51780486ddac481d428f --- /dev/null +++ b/meme_generator/memes/printing/images/79.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d85699d8ebcc7bb784d2b13061c07c2b2d7986cefa70bb616f4847e5f222d3c6 +size 8675 diff --git a/meme_generator/memes/printing/images/8.png b/meme_generator/memes/printing/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..672dff655d2062f6adb3fd237da41baa2f96e385 --- /dev/null +++ b/meme_generator/memes/printing/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a825873b96571054d888599bcbb01192c22999c8e10b94c25662cdcde3e0958f +size 8690 diff --git a/meme_generator/memes/printing/images/80.png b/meme_generator/memes/printing/images/80.png new file mode 100644 index 0000000000000000000000000000000000000000..13215f9ecff784cacb905274d0056031648deb6d --- /dev/null +++ b/meme_generator/memes/printing/images/80.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f39f8ec8cf1518b5e49ea4e1e0e17ee6b58266c5ca580d6deefb450d4e44fa5f +size 8631 diff --git a/meme_generator/memes/printing/images/81.png b/meme_generator/memes/printing/images/81.png new file mode 100644 index 0000000000000000000000000000000000000000..32dd93ff25dd791e4628e8476e80bb83c953d8a9 --- /dev/null +++ b/meme_generator/memes/printing/images/81.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1afcc10978f9ebaf79ab4c3c45b326c601e351b42125e790cd66435566fd9ec +size 8607 diff --git a/meme_generator/memes/printing/images/82.png b/meme_generator/memes/printing/images/82.png new file mode 100644 index 0000000000000000000000000000000000000000..83316db7e4df6ac7fdf3a0190eff7e25d67a29c0 --- /dev/null +++ b/meme_generator/memes/printing/images/82.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbf02f11eca4a20f4f34178cedc86a2fcd50c1e1a12f7c6aecfdc14865249f94 +size 8533 diff --git a/meme_generator/memes/printing/images/83.png b/meme_generator/memes/printing/images/83.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef14e72d7ae106ad2bcb31a0a0789a1158cc522 --- /dev/null +++ b/meme_generator/memes/printing/images/83.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51d64d72d79dc08aa966f111c8fa49185d1f27d656f12cb15dfc279f6d818fc5 +size 8559 diff --git a/meme_generator/memes/printing/images/84.png b/meme_generator/memes/printing/images/84.png new file mode 100644 index 0000000000000000000000000000000000000000..90d1980f5b61bc43b542c10c8bb75e7ecc94922e --- /dev/null +++ b/meme_generator/memes/printing/images/84.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be3a954d005e457dd4b325f260eb649b9e1ce06367083ec66d2485a5a93cb08f +size 8292 diff --git a/meme_generator/memes/printing/images/85.png b/meme_generator/memes/printing/images/85.png new file mode 100644 index 0000000000000000000000000000000000000000..31bd0386b182766b667b5ef0b5f2d6f7c2bcc10c --- /dev/null +++ b/meme_generator/memes/printing/images/85.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3837d20947f5617a79eaa82bdc081c5b410db826efe729a954abec0c7b35dd50 +size 8559 diff --git a/meme_generator/memes/printing/images/86.png b/meme_generator/memes/printing/images/86.png new file mode 100644 index 0000000000000000000000000000000000000000..cf085b4a7cd1a592e9c5b53c2709c2794d744404 --- /dev/null +++ b/meme_generator/memes/printing/images/86.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:299aecd140485501e4dc8a44a96ec19612cd7183c05025396a5c439eac38f21c +size 8562 diff --git a/meme_generator/memes/printing/images/87.png b/meme_generator/memes/printing/images/87.png new file mode 100644 index 0000000000000000000000000000000000000000..50990c5f49a946dd75c9b803771449d68325e633 --- /dev/null +++ b/meme_generator/memes/printing/images/87.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c75e45185c49585313b08c309a1195964a2916cf041125343885c93c9cd72f8b +size 8555 diff --git a/meme_generator/memes/printing/images/88.png b/meme_generator/memes/printing/images/88.png new file mode 100644 index 0000000000000000000000000000000000000000..537a6e78422cb6e821f259d0ba7ffa0ae49b41d9 --- /dev/null +++ b/meme_generator/memes/printing/images/88.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c394505883109ae1b7257a84a0467a89e4a4faab4bab61e8ea974be4765819e +size 8594 diff --git a/meme_generator/memes/printing/images/89.png b/meme_generator/memes/printing/images/89.png new file mode 100644 index 0000000000000000000000000000000000000000..007e9691c26786cb3f3d5dd3762e52facffafeae --- /dev/null +++ b/meme_generator/memes/printing/images/89.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6881382ca6903012d5c4a3384b71107e9a3d709f047b1c16da5f865bde5cda60 +size 8605 diff --git a/meme_generator/memes/printing/images/9.png b/meme_generator/memes/printing/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..8428f07e93bf11432952a13b080c633ad9220734 --- /dev/null +++ b/meme_generator/memes/printing/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:124f57a21cf3f7447ea4be729e385e63d92c6eb0a64c6291076e51a9af7dc107 +size 8713 diff --git a/meme_generator/memes/printing/images/90.png b/meme_generator/memes/printing/images/90.png new file mode 100644 index 0000000000000000000000000000000000000000..090a40de8b1095d03bfb766ff84e31f6ce8b8aa0 --- /dev/null +++ b/meme_generator/memes/printing/images/90.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74e773b569dce7a27eaf67024001e46127fe7000e1d7dbfa3614e142d0c05c85 +size 8629 diff --git a/meme_generator/memes/printing/images/91.png b/meme_generator/memes/printing/images/91.png new file mode 100644 index 0000000000000000000000000000000000000000..dc5e2f1fddcec6902a64fee25f4c0cdcb07845d5 --- /dev/null +++ b/meme_generator/memes/printing/images/91.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b76fb8291bb2f6a4e47ea49ce648cf649e0ae898643751e6134bf1c677c141b +size 8643 diff --git a/meme_generator/memes/printing/images/92.png b/meme_generator/memes/printing/images/92.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee1f8a5d6e830a3e1b41988f4246cfa036d1b7a --- /dev/null +++ b/meme_generator/memes/printing/images/92.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f16f06d822b315e38bd96d05efdf90300a828fb585458a3ade96b23e05edaaf +size 8725 diff --git a/meme_generator/memes/printing/images/93.png b/meme_generator/memes/printing/images/93.png new file mode 100644 index 0000000000000000000000000000000000000000..301c81edbb2cd1e6b6882e93d849c0250f36d333 --- /dev/null +++ b/meme_generator/memes/printing/images/93.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e0dc8fe809c6b8cb64b2f7756a7d0fa5006721a764675065c1de992ae1c6d30 +size 8672 diff --git a/meme_generator/memes/printing/images/94.png b/meme_generator/memes/printing/images/94.png new file mode 100644 index 0000000000000000000000000000000000000000..5bd02a601a7421eb43959bc5ff7f8565ce68cbd4 --- /dev/null +++ b/meme_generator/memes/printing/images/94.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9047fdb4b67666332ce34f006c1958edeacdf6aca92bca0442b2556bf1602a49 +size 8627 diff --git a/meme_generator/memes/printing/images/95.png b/meme_generator/memes/printing/images/95.png new file mode 100644 index 0000000000000000000000000000000000000000..e17cc1453445dc301e7d13caa50a7fee3931024e --- /dev/null +++ b/meme_generator/memes/printing/images/95.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:642113163155eaa3cfe1af8ace24a8b49ce47a2fcfde310a4666188783256a38 +size 8540 diff --git a/meme_generator/memes/printing/images/96.png b/meme_generator/memes/printing/images/96.png new file mode 100644 index 0000000000000000000000000000000000000000..d661a8a4b2d150b957ca7c76bfd5a24c49e4c3d4 --- /dev/null +++ b/meme_generator/memes/printing/images/96.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:325a8f3f876ad98ed4ed94188178d936b469e1ab63c5dd5b326e84c1c0eb4fa2 +size 8545 diff --git a/meme_generator/memes/printing/images/97.png b/meme_generator/memes/printing/images/97.png new file mode 100644 index 0000000000000000000000000000000000000000..306125e29f61826fcab28f500037f0372b154c56 --- /dev/null +++ b/meme_generator/memes/printing/images/97.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1a35602b2281466b2a2c79c19518f800303b751d60d931ed6f76d7ff4662458 +size 8623 diff --git a/meme_generator/memes/printing/images/98.png b/meme_generator/memes/printing/images/98.png new file mode 100644 index 0000000000000000000000000000000000000000..67856f701d604202ccf3c82b9fab4628bbab699a --- /dev/null +++ b/meme_generator/memes/printing/images/98.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c76bd2cbe148d10d8b2e86a0caf1b2a08947bbc5ce874a33010e4d48550be4e +size 8619 diff --git a/meme_generator/memes/printing/images/99.png b/meme_generator/memes/printing/images/99.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc434414a336dc6816e8bf291f61c2328d2365a --- /dev/null +++ b/meme_generator/memes/printing/images/99.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ca5bab9a641a2641c649d82eec486cc75c16d36c9e8058c2c308f6a5a7ff673 +size 8619 diff --git a/meme_generator/memes/prpr/__init__.py b/meme_generator/memes/prpr/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..345ac9c946c59199b1c78fa5cc28e09d83bff387 --- /dev/null +++ b/meme_generator/memes/prpr/__init__.py @@ -0,0 +1,25 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def prpr(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + points = ((0, 19), (236, 0), (287, 264), (66, 351)) + screen = ( + img.convert("RGBA").resize((330, 330), keep_ratio=True).perspective(points) + ) + return frame.copy().paste(screen, (56, 284), below=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme("prpr", prpr, min_images=1, max_images=1, keywords=["舔", "舔屏", "prpr"]) diff --git a/meme_generator/memes/prpr/images/0.png b/meme_generator/memes/prpr/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..2cdce855ce908dd5414342f18636d5c9dc46f3f2 --- /dev/null +++ b/meme_generator/memes/prpr/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37682024a2b558fe7a18fd9e4cdd4224cdfb1b5fb5c6edc7a929d08fbf550d0d +size 401746 diff --git a/meme_generator/memes/psyduck/__init__.py b/meme_generator/memes/psyduck/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..19692421cb56372bf2f4a391cd88acf110a1f5d1 --- /dev/null +++ b/meme_generator/memes/psyduck/__init__.py @@ -0,0 +1,76 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.exception import TextOverLength +from meme_generator.utils import save_gif + +img_dir = Path(__file__).parent / "images" + + +def psyduck(images, texts: List[str], args): + left_img = BuildImage.new("RGBA", (155, 100)) + right_img = BuildImage.new("RGBA", (155, 100)) + + def draw(frame: BuildImage, text: str): + try: + frame.draw_text( + (5, 5, 150, 95), + text, + max_fontsize=80, + min_fontsize=30, + allow_wrap=True, + fontname="FZSJ-QINGCRJ", + ) + except ValueError: + raise TextOverLength(text) + + draw(left_img, texts[0]) + draw(right_img, texts[1]) + + params = [ + ("left", ((0, 11), (154, 0), (161, 89), (20, 104)), (18, 42)), + ("left", ((0, 9), (153, 0), (159, 89), (20, 101)), (15, 38)), + ("left", ((0, 7), (148, 0), (156, 89), (21, 97)), (14, 23)), + None, + ("right", ((10, 0), (143, 17), (124, 104), (0, 84)), (298, 18)), + ("right", ((13, 0), (143, 27), (125, 113), (0, 83)), (298, 30)), + ("right", ((13, 0), (143, 27), (125, 113), (0, 83)), (298, 26)), + ("right", ((13, 0), (143, 27), (125, 113), (0, 83)), (298, 30)), + ("right", ((13, 0), (143, 27), (125, 113), (0, 83)), (302, 20)), + ("right", ((13, 0), (141, 23), (120, 102), (0, 82)), (300, 24)), + ("right", ((13, 0), (140, 22), (118, 100), (0, 82)), (299, 22)), + ("right", ((9, 0), (128, 16), (109, 89), (0, 80)), (303, 23)), + None, + ("left", ((0, 13), (152, 0), (158, 89), (17, 109)), (35, 36)), + ("left", ((0, 13), (152, 0), (158, 89), (17, 109)), (31, 29)), + ("left", ((0, 17), (149, 0), (155, 90), (17, 120)), (45, 33)), + ("left", ((0, 14), (152, 0), (156, 91), (17, 115)), (40, 27)), + ("left", ((0, 12), (154, 0), (158, 90), (17, 109)), (35, 28)), + ] + + frames: List[IMG] = [] + for i in range(18): + frame = BuildImage.open(img_dir / f"{i}.jpg") + param = params[i] + if param: + side, points, pos = param + if side == "left": + frame.paste(left_img.perspective(points), pos, alpha=True) + elif side == "right": + frame.paste(right_img.perspective(points), pos, alpha=True) + frames.append(frame.image) + return save_gif(frames, 0.2) + + +add_meme( + "psyduck", + psyduck, + min_texts=2, + max_texts=2, + default_texts=["来份", "涩图"], + keywords=["可达鸭"], +) diff --git a/meme_generator/memes/psyduck/images/0.jpg b/meme_generator/memes/psyduck/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..867e61bc493a331f142a1ddb8e764538f03203ca Binary files /dev/null and b/meme_generator/memes/psyduck/images/0.jpg differ diff --git a/meme_generator/memes/psyduck/images/1.jpg b/meme_generator/memes/psyduck/images/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e4518b2e2b0cad2169b42e0247745ade7fd8da9 Binary files /dev/null and b/meme_generator/memes/psyduck/images/1.jpg differ diff --git a/meme_generator/memes/psyduck/images/10.jpg b/meme_generator/memes/psyduck/images/10.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4947b262017700fa419a3013c520deb063c6926d Binary files /dev/null and b/meme_generator/memes/psyduck/images/10.jpg differ diff --git a/meme_generator/memes/psyduck/images/11.jpg b/meme_generator/memes/psyduck/images/11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..20e77bcb74a64514da1a36f6c1606a7f1536e52a Binary files /dev/null and b/meme_generator/memes/psyduck/images/11.jpg differ diff --git a/meme_generator/memes/psyduck/images/12.jpg b/meme_generator/memes/psyduck/images/12.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7340f1be9c080de5117ccbdd2cad37d5833bad90 Binary files /dev/null and b/meme_generator/memes/psyduck/images/12.jpg differ diff --git a/meme_generator/memes/psyduck/images/13.jpg b/meme_generator/memes/psyduck/images/13.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2db236c0e1f12c7e14374a39aab8d7949728ac89 Binary files /dev/null and b/meme_generator/memes/psyduck/images/13.jpg differ diff --git a/meme_generator/memes/psyduck/images/14.jpg b/meme_generator/memes/psyduck/images/14.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3015a62b54bade5248a582320494f74e5f03447b Binary files /dev/null and b/meme_generator/memes/psyduck/images/14.jpg differ diff --git a/meme_generator/memes/psyduck/images/15.jpg b/meme_generator/memes/psyduck/images/15.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25de16ac0209501877d66cc60ee079cabeec27c8 Binary files /dev/null and b/meme_generator/memes/psyduck/images/15.jpg differ diff --git a/meme_generator/memes/psyduck/images/16.jpg b/meme_generator/memes/psyduck/images/16.jpg new file mode 100644 index 0000000000000000000000000000000000000000..13dd5b762ce331d8e0f7fd1e0c96d61cc549d086 Binary files /dev/null and b/meme_generator/memes/psyduck/images/16.jpg differ diff --git a/meme_generator/memes/psyduck/images/17.jpg b/meme_generator/memes/psyduck/images/17.jpg new file mode 100644 index 0000000000000000000000000000000000000000..588055cc97860e2fd7d99029e07558b875e8ffe9 Binary files /dev/null and b/meme_generator/memes/psyduck/images/17.jpg differ diff --git a/meme_generator/memes/psyduck/images/2.jpg b/meme_generator/memes/psyduck/images/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3d8547252fd160fc12a4ea9e1602ebbcbc62de89 Binary files /dev/null and b/meme_generator/memes/psyduck/images/2.jpg differ diff --git a/meme_generator/memes/psyduck/images/3.jpg b/meme_generator/memes/psyduck/images/3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..480f928faa19d476b78cd48a227c6dd257f2c697 Binary files /dev/null and b/meme_generator/memes/psyduck/images/3.jpg differ diff --git a/meme_generator/memes/psyduck/images/4.jpg b/meme_generator/memes/psyduck/images/4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6165477faa8b5ce641b7c809db3c6af1c0fd6b37 Binary files /dev/null and b/meme_generator/memes/psyduck/images/4.jpg differ diff --git a/meme_generator/memes/psyduck/images/5.jpg b/meme_generator/memes/psyduck/images/5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b922c5ddce9e0aa7f15c2317bb4a42433d2e43e1 Binary files /dev/null and b/meme_generator/memes/psyduck/images/5.jpg differ diff --git a/meme_generator/memes/psyduck/images/6.jpg b/meme_generator/memes/psyduck/images/6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..996548d33a056ccb19efc6075a56b7d095b34654 Binary files /dev/null and b/meme_generator/memes/psyduck/images/6.jpg differ diff --git a/meme_generator/memes/psyduck/images/7.jpg b/meme_generator/memes/psyduck/images/7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed001e1e6f95182fb20cf7e7f33f69a5bfc25e31 Binary files /dev/null and b/meme_generator/memes/psyduck/images/7.jpg differ diff --git a/meme_generator/memes/psyduck/images/8.jpg b/meme_generator/memes/psyduck/images/8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a0f77c70f71ddc5acf456d83b51794a6be587218 Binary files /dev/null and b/meme_generator/memes/psyduck/images/8.jpg differ diff --git a/meme_generator/memes/psyduck/images/9.jpg b/meme_generator/memes/psyduck/images/9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6785d0ea386bedb8c87430113be97a36f9f9e9c0 Binary files /dev/null and b/meme_generator/memes/psyduck/images/9.jpg differ diff --git a/meme_generator/memes/punch/__init__.py b/meme_generator/memes/punch/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..441df7f31cd30735c01ba5e2edb3e2bb3fbdc108 --- /dev/null +++ b/meme_generator/memes/punch/__init__.py @@ -0,0 +1,31 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 punch(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square().resize((260, 260)) + frames: List[IMG] = [] + # fmt: off + locs = [ + (-50, 20), (-40, 10), (-30, 0), (-20, -10), (-10, -10), (0, 0), + (10, 10), (20, 20), (10, 10), (0, 0), (-10, -10), (10, 0), (-30, 10) + ] + # fmt: on + for i in range(13): + fist = BuildImage.open(img_dir / f"{i}.png") + frame = BuildImage.new("RGBA", fist.size, "white") + x, y = locs[i] + frame.paste(img, (x, y - 15), alpha=True).paste(fist, alpha=True) + frames.append(frame.image) + return save_gif(frames, 0.03) + + +add_meme("punch", punch, min_images=1, max_images=1, keywords=["打拳"]) diff --git a/meme_generator/memes/punch/images/0.png b/meme_generator/memes/punch/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..d021ec2f7e7748d59a207f9fcfa121518f569aad --- /dev/null +++ b/meme_generator/memes/punch/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9209fa7069fbc40576a5aa7366014d2ab7bfca851c9c2c4d92b1f55e273fd98 +size 10694 diff --git a/meme_generator/memes/punch/images/1.png b/meme_generator/memes/punch/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..5ab329a644c6188e50972f298530d7301f702e59 --- /dev/null +++ b/meme_generator/memes/punch/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6b470c3b6221644582ac212351bab461df556dca00fa03389eb9086317c658f +size 15760 diff --git a/meme_generator/memes/punch/images/10.png b/meme_generator/memes/punch/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..ee321aac4222acf66d134c6c8869ff062f7b6f5c --- /dev/null +++ b/meme_generator/memes/punch/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6068431216b887f715a3a945ac2cb80a3c5f9ee124c5d77ac4f086eb7322b0ce +size 23121 diff --git a/meme_generator/memes/punch/images/11.png b/meme_generator/memes/punch/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ad34a1f892c136955d96234a3d25759122f980 --- /dev/null +++ b/meme_generator/memes/punch/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5c85db5a1fdd04e747b1448645c2bbd6c48de959de0d8fd135a60b8c60fab55 +size 17484 diff --git a/meme_generator/memes/punch/images/12.png b/meme_generator/memes/punch/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..eb620331b7dcdac25f79c5d03a288128af129226 --- /dev/null +++ b/meme_generator/memes/punch/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c1e30410f3a211e35cc4e93c91ae28bd4d61fcc1f0a0bc850c651546711bcdb +size 14519 diff --git a/meme_generator/memes/punch/images/2.png b/meme_generator/memes/punch/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..993ba2589ae85f82f030da3c9c7eccd89a212b34 --- /dev/null +++ b/meme_generator/memes/punch/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04fdbac124ebfbc65fef5cd245ea84c62787d195f31dcef4f94c1b8dc794c548 +size 20116 diff --git a/meme_generator/memes/punch/images/3.png b/meme_generator/memes/punch/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..1aee65939834e027e9f66cf94040ae298476445a --- /dev/null +++ b/meme_generator/memes/punch/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3942d9b3a30c84ea6405873f57682bd7f86747658168f334613f13e150f3f67 +size 18316 diff --git a/meme_generator/memes/punch/images/4.png b/meme_generator/memes/punch/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..0f5b4355cb7de453b3ecf22f1e6f3e5987348f24 --- /dev/null +++ b/meme_generator/memes/punch/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b3b8599d41f97399f87be7ebde39a2b6193025abf6c0a71ee4dd1b1e8192cc0 +size 20396 diff --git a/meme_generator/memes/punch/images/5.png b/meme_generator/memes/punch/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..bdfad20e6537eaa67ed494f5fa4a6b524024bbc9 --- /dev/null +++ b/meme_generator/memes/punch/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af40e89f2a7399096cbcdc09c7ca4308cea3767c085d9b0170b4a37c4e6b32db +size 17619 diff --git a/meme_generator/memes/punch/images/6.png b/meme_generator/memes/punch/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..c3675e70ca2602c746583df1933cb88498c88bb3 --- /dev/null +++ b/meme_generator/memes/punch/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c4d0b39033daa835bc32d3c3f014f4dd6bfc18fbe64282f3e2624f31b4e433f +size 15189 diff --git a/meme_generator/memes/punch/images/7.png b/meme_generator/memes/punch/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..1770cf4d36a63788218f6817509b4826e852ba29 --- /dev/null +++ b/meme_generator/memes/punch/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:123e2ac6bb8a6a3e26390a4eb32296dc63a8cd11a8ad603843e58fa270074e4e +size 8948 diff --git a/meme_generator/memes/punch/images/8.png b/meme_generator/memes/punch/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd68efc5fe92445d647d5fe251388b73f3e3136 --- /dev/null +++ b/meme_generator/memes/punch/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cc88ca64db62a6ce03738c8379c0eb866b0991cb20377f929d6b50255bca234 +size 16197 diff --git a/meme_generator/memes/punch/images/9.png b/meme_generator/memes/punch/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..f74e465ced5881c5ae72f2af5d68be5c29339847 --- /dev/null +++ b/meme_generator/memes/punch/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14b68929e9919cea738bbc217722b4e29f80c2274df08b45f0095c2c80dcb34b +size 20926 diff --git a/meme_generator/memes/raise_image/__init__.py b/meme_generator/memes/raise_image/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..84094fd691206c2d7f64cc4d9857918b88089995 --- /dev/null +++ b/meme_generator/memes/raise_image/__init__.py @@ -0,0 +1,36 @@ +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.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def raise_image(images: List[BuildImage], texts, args) -> BytesIO: + inner_size = (599, 386) + paste_pos = (134, 91) + + bg = BuildImage.open(img_dir / "raise_image.png") + + def make_frame(img: BuildImage) -> BuildImage: + inner_frame = BuildImage.new("RGBA", inner_size, "white") + inner_frame = inner_frame.paste( + img.convert("RGBA").resize(inner_size, keep_ratio=True), + alpha=True, + ) + return bg.copy().paste(inner_frame, paste_pos, alpha=True, below=True) + + return make_jpg_or_gif(images[0], make_frame, keep_transparency=True) + + +add_meme( + "raise_image", + raise_image, + min_images=1, + max_images=1, + keywords=["举"], +) diff --git a/meme_generator/memes/raise_image/images/raise_image.png b/meme_generator/memes/raise_image/images/raise_image.png new file mode 100644 index 0000000000000000000000000000000000000000..f2cda385fe3756fa264d84aab745b0dec0dea14a --- /dev/null +++ b/meme_generator/memes/raise_image/images/raise_image.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55b39e09a962b78fba41bd402827ec3cd94b6faf195602cf04c24c0794a526df +size 139141 diff --git a/meme_generator/memes/raise_sign/__init__.py b/meme_generator/memes/raise_sign/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..215077e17b30de1e8f44e47b72d2d102251cf73a --- /dev/null +++ b/meme_generator/memes/raise_sign/__init__.py @@ -0,0 +1,42 @@ +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 raise_sign(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.jpg") + text_img = BuildImage.new("RGBA", (360, 260)) + try: + text_img.draw_text( + (10, 10, 350, 250), + text, + max_fontsize=80, + min_fontsize=30, + allow_wrap=True, + lines_align="center", + spacing=10, + fontname="FZShaoEr-M11S", + fill="#51201b", + ) + except ValueError: + raise TextOverLength(text) + text_img = text_img.perspective(((33, 0), (375, 120), (333, 387), (0, 258))) + frame.paste(text_img, (285, 24), alpha=True) + return frame.save_jpg() + + +add_meme( + "raise_sign", + raise_sign, + min_texts=1, + max_texts=1, + default_texts=["大佬带带我"], + keywords=["举牌"], +) diff --git a/meme_generator/memes/raise_sign/images/0.jpg b/meme_generator/memes/raise_sign/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..913ad2e55f420e2396302ae6bce723a79b9026b1 Binary files /dev/null and b/meme_generator/memes/raise_sign/images/0.jpg differ diff --git a/meme_generator/memes/read_book/__init__.py b/meme_generator/memes/read_book/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..44037fb29cc0ccc862b1446c568fa9a34665d2c0 --- /dev/null +++ b/meme_generator/memes/read_book/__init__.py @@ -0,0 +1,65 @@ +import re +from pathlib import Path +from typing import List + +from pil_utils import BuildImage, Text2Image + +from meme_generator import add_meme +from meme_generator.exception import TextOverLength + +img_dir = Path(__file__).parent / "images" + + +def read_book(images: List[BuildImage], texts: List[str], args): + frame = BuildImage.open(img_dir / "0.png") + points = ((0, 108), (1092, 0), (1023, 1134), (29, 1134)) + img = ( + images[0] + .convert("RGBA") + .resize((1000, 1100), keep_ratio=True, direction="north") + ) + cover = img.perspective(points) + frame.paste(cover, (1138, 1172), below=True) + + text = texts[0] if texts else "エロ本" + + chars = list(" ".join(text.splitlines())) + pieces: List[BuildImage] = [] + for char in chars: + piece = BuildImage( + Text2Image.from_text(char, 150, fill="white", weight="bold").to_image() + ) + if re.fullmatch(r"[a-zA-Z0-9\s]", char): + piece = piece.rotate(-90, expand=True) + else: + piece = piece.resize_canvas((piece.width, piece.height - 40), "south") + pieces.append(piece) + w = max(piece.width for piece in pieces) + h = sum(piece.height for piece in pieces) + if w > 265 or h > 3000: + raise TextOverLength(text) + + text_img = BuildImage.new("RGBA", (w, h)) + h = 0 + for piece in pieces: + text_img.paste(piece, ((w - piece.width) // 2, h), alpha=True) + h += piece.height + if h > 780: + ratio = 780 / h + text_img = text_img.resize((int(w * ratio), int(h * ratio))) + text_img = text_img.rotate(3, expand=True) + w, h = text_img.size + frame.paste(text_img, (870 + (240 - w) // 2, 1500 + (780 - h) // 2), alpha=True) + + return frame.save_jpg() + + +add_meme( + "read_book", + read_book, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + keywords=["看书"], +) diff --git a/meme_generator/memes/read_book/images/0.png b/meme_generator/memes/read_book/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..05add431d7726b91da91c5753d9e151b6395dae7 --- /dev/null +++ b/meme_generator/memes/read_book/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0b1a01cd164dbb27430fecce6f4f7042bf5e8ffd83e8f9b3e66c6ad6a608cc0 +size 2418563 diff --git a/meme_generator/memes/repeat/__init__.py b/meme_generator/memes/repeat/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e400c69fb1cf1532287c66deefc7689dfb2b9108 --- /dev/null +++ b/meme_generator/memes/repeat/__init__.py @@ -0,0 +1,69 @@ +from datetime import datetime +from pathlib import Path +from typing import List, Tuple + +from PIL.Image import Image as IMG +from pil_utils import BuildImage, Text2Image + +from meme_generator import MemeArgsModel, add_meme +from meme_generator.exception import TextOverLength +from meme_generator.utils import random_text, save_gif + +img_dir = Path(__file__).parent / "images" + + +def repeat(images: List[BuildImage], texts: List[str], args: MemeArgsModel): + def single_msg(img: BuildImage, name: str) -> BuildImage: + user_img = img.convert("RGBA").circle().resize((100, 100)) + user_name_img = Text2Image.from_text(f"{name}", 40).to_image() + time = datetime.now().strftime("%H:%M") + time_img = Text2Image.from_text(time, 40, fill="gray").to_image() + bg = BuildImage.new("RGB", (1079, 200), (248, 249, 251, 255)) + bg.paste(user_img, (50, 50), alpha=True) + bg.paste(user_name_img, (175, 45), alpha=True) + bg.paste(time_img, (200 + user_name_img.width, 50), alpha=True) + bg.paste(text_img, (175, 100), alpha=True) + return bg + + text = texts[0] + text_img = Text2Image.from_text(text, 50).to_image() + if text_img.width > 900: + raise TextOverLength(text) + + users: List[Tuple[BuildImage, str]] = [] + user_infos = args.user_infos + for i, image in enumerate(images): + name = user_infos[i].name if len(user_infos) > i else random_text() + users.append((image, name)) + + msg_img = BuildImage.new("RGB", (1079, 1000)) + for i in range(5): + index = i % len(users) + msg_img.paste(single_msg(*users[index]), (0, 200 * i)) + msg_img_twice = BuildImage.new("RGB", (msg_img.width, msg_img.height * 2)) + msg_img_twice.paste(msg_img).paste(msg_img, (0, msg_img.height)) + + input_img = BuildImage.open(img_dir / "0.jpg") + self_img = images[0].convert("RGBA").circle().resize((75, 75)) + input_img.paste(self_img, (15, 40), alpha=True) + + frames: List[IMG] = [] + for i in range(50): + frame = BuildImage.new("RGB", (1079, 1192), "white") + frame.paste(msg_img_twice, (0, -20 * i)) + frame.paste(input_img, (0, 1000)) + frames.append(frame.image) + + return save_gif(frames, 0.08) + + +add_meme( + "repeat", + repeat, + min_images=1, + max_images=5, + min_texts=1, + max_texts=1, + default_texts=["救命啊"], + keywords=["复读"], +) diff --git a/meme_generator/memes/repeat/images/0.jpg b/meme_generator/memes/repeat/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb0965cc5d4e1df784be7bfee18976a715a783bb Binary files /dev/null and b/meme_generator/memes/repeat/images/0.jpg differ diff --git a/meme_generator/memes/rip/__init__.py b/meme_generator/memes/rip/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..5bb7c30d0e2974ecff118a97ca54a9f492b5b96f --- /dev/null +++ b/meme_generator/memes/rip/__init__.py @@ -0,0 +1,30 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def rip(images: List[BuildImage], texts, args): + if len(images) >= 2: + frame = BuildImage.open(img_dir / "1.png") + self_img = images[0] + user_img = images[1] + else: + frame = BuildImage.open(img_dir / "0.png") + self_img = None + user_img = images[0] + + user_img = user_img.convert("RGBA").square().resize((385, 385)) + if self_img: + self_img = self_img.convert("RGBA").square().resize((230, 230)) + frame.paste(self_img, (408, 418), below=True) + frame.paste(user_img.rotate(24, expand=True), (-5, 355), below=True) + frame.paste(user_img.rotate(-11, expand=True), (649, 310), below=True) + return frame.save_jpg() + + +add_meme("rip", rip, min_images=1, max_images=2, keywords=["撕"]) diff --git a/meme_generator/memes/rip/images/0.png b/meme_generator/memes/rip/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..2fd2d90be068ccb0d66b9bcfc4417442b18fb5fc --- /dev/null +++ b/meme_generator/memes/rip/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96cf95492db0623d6e7600e622bc7379cab04a864e19c62bafe1b8691b760b87 +size 540079 diff --git a/meme_generator/memes/rip/images/1.png b/meme_generator/memes/rip/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..d6508c0ecc30e30ad129d9ba07dd00100b384ad1 --- /dev/null +++ b/meme_generator/memes/rip/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02d64e18ba35b70793cb8fb7d4f144837f28cc901c5cd8551269c59f8be39e8c +size 505897 diff --git a/meme_generator/memes/rip_angrily/__init__.py b/meme_generator/memes/rip_angrily/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3b567f0e62d60a4c5493e8309dad4b6a2fa230ee --- /dev/null +++ b/meme_generator/memes/rip_angrily/__init__.py @@ -0,0 +1,19 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def rip_angrily(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square().resize((105, 105)) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img.rotate(-24, expand=True), (18, 170), below=True) + frame.paste(img.rotate(24, expand=True), (163, 65), below=True) + return frame.save_jpg() + + +add_meme("rip_angrily", rip_angrily, min_images=1, max_images=1, keywords=["怒撕"]) diff --git a/meme_generator/memes/rip_angrily/images/0.png b/meme_generator/memes/rip_angrily/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5ca370baccc572f101b56ea3517cd575585e2c --- /dev/null +++ b/meme_generator/memes/rip_angrily/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f30458e9603c3be0ad53acb2b469c5573ff99f4c13c0ef993541ee72be2c58c9 +size 45632 diff --git a/meme_generator/memes/rise_dead/__init__.py b/meme_generator/memes/rise_dead/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..469d23a4863cf54c8efd30659b1f7bda7010c5e2 --- /dev/null +++ b/meme_generator/memes/rise_dead/__init__.py @@ -0,0 +1,36 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 rise_dead(images: List[BuildImage], texts, args): + locs = [ + ((81, 55), ((0, 2), (101, 0), (103, 105), (1, 105))), + ((74, 49), ((0, 3), (104, 0), (106, 108), (1, 108))), + ((-66, 36), ((0, 0), (182, 5), (184, 194), (1, 185))), + ((-231, 55), ((0, 0), (259, 4), (276, 281), (13, 278))), + ] + img = images[0].convert("RGBA").square().resize((150, 150)) + imgs = [img.perspective(points) for _, points in locs] + frames: List[IMG] = [] + for i in range(34): + frame = BuildImage.open(img_dir / f"{i}.png") + if i <= 28: + idx = 0 if i <= 25 else i - 25 + x, y = locs[idx][0] + if i % 2 == 1: + x += 1 + y -= 1 + frame.paste(imgs[idx], (x, y), below=True) + frames.append(frame.image) + return save_gif(frames, 0.15) + + +add_meme("rise_dead", rise_dead, min_images=1, max_images=1, keywords=["诈尸", "秽土转生"]) diff --git a/meme_generator/memes/rise_dead/images/0.png b/meme_generator/memes/rise_dead/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..7484915bf30749fa3b3842d156120e5f77182a59 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25762275ed55c28654b6d5b2e5a06816feacc4cb6c77c7fe9038c24d184d6b54 +size 40104 diff --git a/meme_generator/memes/rise_dead/images/1.png b/meme_generator/memes/rise_dead/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..f0053c68c9f8807d7fbde202bae1cc628b6b1ffc --- /dev/null +++ b/meme_generator/memes/rise_dead/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2d6fa42f986ec73c4d66bcb1e2e7b09b43ae047803f6c622eece51fca728072 +size 38941 diff --git a/meme_generator/memes/rise_dead/images/10.png b/meme_generator/memes/rise_dead/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..756039c3986279bac9f89dc9d9d815416134b0a6 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1320ce3ac7f22e6794eb928ca9a85cf6701dafeefe84313592ddcf0779c7e9a7 +size 39209 diff --git a/meme_generator/memes/rise_dead/images/11.png b/meme_generator/memes/rise_dead/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..089b9ec1620c15e956092c9564d2483b2ba4aea8 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34760806a8c937efcafa95158192f8d42dd47e24198e6261ffb2c58dbb1c0a13 +size 38360 diff --git a/meme_generator/memes/rise_dead/images/12.png b/meme_generator/memes/rise_dead/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..2166dc03e21305d1ace7d50663dbc5629b26704e --- /dev/null +++ b/meme_generator/memes/rise_dead/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6cb3eb175e6500d55dbfe54223f696690fbd94702f6a54637719b3794253aa5 +size 40299 diff --git a/meme_generator/memes/rise_dead/images/13.png b/meme_generator/memes/rise_dead/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..4c16d40205363e11c78b1c84773eca6429c3b769 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f85471ec4ba39ea44a6c767cd128061397805569b58b4dadb6a028ebe837c13 +size 39389 diff --git a/meme_generator/memes/rise_dead/images/14.png b/meme_generator/memes/rise_dead/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..0221cdadfd8c04b2795d258a60aea19e00e813ad --- /dev/null +++ b/meme_generator/memes/rise_dead/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c35991c75186b7f621109145f7c00b0fef70352f2d9e2a6417412a524909904e +size 40799 diff --git a/meme_generator/memes/rise_dead/images/15.png b/meme_generator/memes/rise_dead/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb0abb6814f1b17b34be3d2cb7e517563404be9 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35d992ee64e94e69aced2d123b61dc246a845e14dc18a8f301ebb2832a38ac5f +size 40732 diff --git a/meme_generator/memes/rise_dead/images/16.png b/meme_generator/memes/rise_dead/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..d831b975930e378da74da0d1c89015ad6bb587d5 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8722579514110920369a44136cbbf92734cbe98a9ac4abf9917b6d46ebd09783 +size 41352 diff --git a/meme_generator/memes/rise_dead/images/17.png b/meme_generator/memes/rise_dead/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..5c39599da6947ad4b8a6b5af62d6cd8d025227b7 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de08ef95e1fb64da3dc020eb1396a1440a740f9eaddd6aef7f8f46a0bed2d518 +size 41278 diff --git a/meme_generator/memes/rise_dead/images/18.png b/meme_generator/memes/rise_dead/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..8de13b8683119ec5f9d209a517f469a6890f70c3 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bf766ceba9222e4fd66447a073bc2afdd5266ccc4c5f9b6c7d4c467eb341e72 +size 44725 diff --git a/meme_generator/memes/rise_dead/images/19.png b/meme_generator/memes/rise_dead/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..34398bec2b625740f1a2039a3feebd0ff5977975 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4223e17cfecb6b7adfe026d43886ddd8a736b8476d9b69d3021498a68a89d2f3 +size 43586 diff --git a/meme_generator/memes/rise_dead/images/2.png b/meme_generator/memes/rise_dead/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0fb769be8eba7bfd7f7268e15b1d9ae53e6852 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28d2641594f4e9d98d52aca323d8e4e33340a20f734a975fef4cfc4175886bfb +size 39763 diff --git a/meme_generator/memes/rise_dead/images/20.png b/meme_generator/memes/rise_dead/images/20.png new file mode 100644 index 0000000000000000000000000000000000000000..9292c4f49a4190ba83b000f69bdf972156ed1175 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76b0fdc080604fff913f7d65207e1aae05a99eb1244b4fc696d5183d09ba0598 +size 43860 diff --git a/meme_generator/memes/rise_dead/images/21.png b/meme_generator/memes/rise_dead/images/21.png new file mode 100644 index 0000000000000000000000000000000000000000..a6413d4db465886d6da7e03c18f973caf1516aaa --- /dev/null +++ b/meme_generator/memes/rise_dead/images/21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:029652aea8b2a493d8dcba59b6208f28bc179070efdc059050eafc569a6253d3 +size 44088 diff --git a/meme_generator/memes/rise_dead/images/22.png b/meme_generator/memes/rise_dead/images/22.png new file mode 100644 index 0000000000000000000000000000000000000000..0b3af86353bb8d95bedc8176b2ccdd88156c99a2 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2b01b55b59c97838610d628620ac51680b9c8df2f324fea42eb55ca8f8cd033 +size 45299 diff --git a/meme_generator/memes/rise_dead/images/23.png b/meme_generator/memes/rise_dead/images/23.png new file mode 100644 index 0000000000000000000000000000000000000000..862fa2284b745b7112fed8781c856bf79836a1c7 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41dabb5e624c67cb793b7269eafeaef0feecd3b8577bae59ae3666f99f6dadc6 +size 45834 diff --git a/meme_generator/memes/rise_dead/images/24.png b/meme_generator/memes/rise_dead/images/24.png new file mode 100644 index 0000000000000000000000000000000000000000..a230ad6d4baefff418598964c238ad49dc4b433e --- /dev/null +++ b/meme_generator/memes/rise_dead/images/24.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d72d745ddead6fe962005f76fdfc91cd1a2c043660067f1454a72c8b423befd +size 46183 diff --git a/meme_generator/memes/rise_dead/images/25.png b/meme_generator/memes/rise_dead/images/25.png new file mode 100644 index 0000000000000000000000000000000000000000..84f9b1c406f9c28ad7fec535e9396d3339eb7bad --- /dev/null +++ b/meme_generator/memes/rise_dead/images/25.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:410c4229d2ee4b03be0ee0b814bba6443369fd797d4076cfdbd6d4f929bcbcc1 +size 45885 diff --git a/meme_generator/memes/rise_dead/images/26.png b/meme_generator/memes/rise_dead/images/26.png new file mode 100644 index 0000000000000000000000000000000000000000..361ff2e3b9d5bc39d2d546e86e3d83b3c8219cb9 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/26.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c007996b6e78fb4547efc9425942008aae73432b003112311a91c55e9aacfdb +size 49354 diff --git a/meme_generator/memes/rise_dead/images/27.png b/meme_generator/memes/rise_dead/images/27.png new file mode 100644 index 0000000000000000000000000000000000000000..043ca3b288900d33cc8be64856a47c7fe58055b7 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/27.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78115acf08ceb5d2ac8b34b50de91d4dfd854db460162560667c4675651ea859 +size 33268 diff --git a/meme_generator/memes/rise_dead/images/28.png b/meme_generator/memes/rise_dead/images/28.png new file mode 100644 index 0000000000000000000000000000000000000000..0f7d336fd179b7fa55fc1968615c9bde095bd718 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/28.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:372a6dd036bcb4c6aa3ab88f5de76c88655b89b0f96f7d8add15a53e59102508 +size 33305 diff --git a/meme_generator/memes/rise_dead/images/29.png b/meme_generator/memes/rise_dead/images/29.png new file mode 100644 index 0000000000000000000000000000000000000000..b58d4c72ec2ff6e0e7c16c714b9136cf6cdea062 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/29.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0511821541b23ffbd3e36c0c5ed09e30cf1471d7a2a6d8a2b278989201c8987c +size 27804 diff --git a/meme_generator/memes/rise_dead/images/3.png b/meme_generator/memes/rise_dead/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe24c4c4daf0a820a8da77ad3f1a55b8bc74d1e --- /dev/null +++ b/meme_generator/memes/rise_dead/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e03f11926bfb5d9ed2f7d0fd7d83198f27f443be294641330a93e57b7f10eb3 +size 37999 diff --git a/meme_generator/memes/rise_dead/images/30.png b/meme_generator/memes/rise_dead/images/30.png new file mode 100644 index 0000000000000000000000000000000000000000..d49c1defa7fda75d9ea7219d4d45842bf646a265 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/30.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52829efb382ddaef5b0bf94d5d094413c539f357ea248a67e59c271659e4b229 +size 27721 diff --git a/meme_generator/memes/rise_dead/images/31.png b/meme_generator/memes/rise_dead/images/31.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0596e48e8096fed5d3c021ff4ed6d6be3ec918 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/31.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b0c356c073b679475e47a1982de95805996b0e1a763b1a921b13b59889b4e42 +size 27501 diff --git a/meme_generator/memes/rise_dead/images/32.png b/meme_generator/memes/rise_dead/images/32.png new file mode 100644 index 0000000000000000000000000000000000000000..8c96b0c649eebe58cd4cbbf09ad63f0d2a154974 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c0728bff57c046b983120894c638c2a62abd992480078d6e3f4ac7742e9d620 +size 26506 diff --git a/meme_generator/memes/rise_dead/images/33.png b/meme_generator/memes/rise_dead/images/33.png new file mode 100644 index 0000000000000000000000000000000000000000..5c37edcb7c99c954f8df5e454c5250e585e2578f --- /dev/null +++ b/meme_generator/memes/rise_dead/images/33.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df7f19a7623abc3f0b7a9b5a5d822236cd9caca16826f421d383cc37e65f8ca8 +size 26528 diff --git a/meme_generator/memes/rise_dead/images/4.png b/meme_generator/memes/rise_dead/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..26146b217888ba06be28dcfe623e0e57e9c3c32e --- /dev/null +++ b/meme_generator/memes/rise_dead/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cc18c7d2eb889107c9ea1f77b39f7d67b30c844faddac16f452b2f891d7ea08 +size 38311 diff --git a/meme_generator/memes/rise_dead/images/5.png b/meme_generator/memes/rise_dead/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..37bef0b0fc96f210ec98b4616f180a2d7b72886a --- /dev/null +++ b/meme_generator/memes/rise_dead/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3609882eaa36bc041c394e0f4cf681ee0512f512463edf0c9282ba82622f5f32 +size 36584 diff --git a/meme_generator/memes/rise_dead/images/6.png b/meme_generator/memes/rise_dead/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..dddcb1d6f9acfed74dd77fde1439af98d93d98bd --- /dev/null +++ b/meme_generator/memes/rise_dead/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07cf7582a820afb6892ef77d27d20e446ebde8845992452e9e169b76658b1784 +size 38545 diff --git a/meme_generator/memes/rise_dead/images/7.png b/meme_generator/memes/rise_dead/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..47365fd6608b4d698176d9d433a7ad05368232f0 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eda13dc68212a81efe20051bb7f77e001ef04de5867aef83546cfb3701f98ce3 +size 36830 diff --git a/meme_generator/memes/rise_dead/images/8.png b/meme_generator/memes/rise_dead/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..095f25631370cf3262e767df6ac1169ba0efae6b --- /dev/null +++ b/meme_generator/memes/rise_dead/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13a0d75116a4e0f6847f6dd2eb6abecc45b3e51d90954f0516de46c7d50f21a3 +size 38834 diff --git a/meme_generator/memes/rise_dead/images/9.png b/meme_generator/memes/rise_dead/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..cd238568e7c9fcac6d9ea328e4f8ab4dea025a16 --- /dev/null +++ b/meme_generator/memes/rise_dead/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02fedb74722a207afba9a8cf75b6b1ddbc0ce921218a16059292be07f16a1f15 +size 37385 diff --git a/meme_generator/memes/roll/__init__.py b/meme_generator/memes/roll/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..05c5c0a56787c8ef969d218ad0d9aac138593fc7 --- /dev/null +++ b/meme_generator/memes/roll/__init__.py @@ -0,0 +1,30 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 roll(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square().resize((210, 210)) + # fmt: off + locs = [ + (87, 77, 0), (96, 85, -45), (92, 79, -90), (92, 78, -135), + (92, 75, -180), (92, 75, -225), (93, 76, -270), (90, 80, -315) + ] + # fmt: on + frames: List[IMG] = [] + for i in range(8): + frame = BuildImage.open(img_dir / f"{i}.png") + x, y, a = locs[i] + frame.paste(img.rotate(a), (x, y), below=True) + frames.append(frame.image) + return save_gif(frames, 0.1) + + +add_meme("roll", roll, min_images=1, max_images=1, keywords=["滚"]) diff --git a/meme_generator/memes/roll/images/0.png b/meme_generator/memes/roll/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6ab68ed0f25cb96060d1874062465fdce2596a --- /dev/null +++ b/meme_generator/memes/roll/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77d02fe92e83d016ed7c4e961d3a2720364962bd60e25e13b74f9821647a4d7d +size 42695 diff --git a/meme_generator/memes/roll/images/1.png b/meme_generator/memes/roll/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..e66791afe4703c6f20e98629b89f9054ad9cd3b5 --- /dev/null +++ b/meme_generator/memes/roll/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4ea4dfba90a3530d21a20878472a54a4e5c213f4bf12a4504d4f05025976355 +size 40211 diff --git a/meme_generator/memes/roll/images/2.png b/meme_generator/memes/roll/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad688e46fd2c05798f055a9014a0e6d6572a271 --- /dev/null +++ b/meme_generator/memes/roll/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d71b01cded6dc9985cb1bc5a78c206f817eaa1ceb91773e545671f961245a3c +size 39498 diff --git a/meme_generator/memes/roll/images/3.png b/meme_generator/memes/roll/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..d5856f19b07398a3596769da92272c9cc8344cdb --- /dev/null +++ b/meme_generator/memes/roll/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e12747487132ee52b4c15159ba864bf8bd3c655ae03ff7527611fb0447f8b063 +size 37374 diff --git a/meme_generator/memes/roll/images/4.png b/meme_generator/memes/roll/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..984400cf0f1ae9c5a2fec67cae873f0642951795 --- /dev/null +++ b/meme_generator/memes/roll/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32e4b93a72c083e933e555cce33f6f4c223bacb6b07daafa50c21ee67ff05e8d +size 39807 diff --git a/meme_generator/memes/roll/images/5.png b/meme_generator/memes/roll/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..febf4783be94fa5c3946a08038e622f7817543d6 --- /dev/null +++ b/meme_generator/memes/roll/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abac817e8939a2cb953ab645011880d01de3f1cda20deb3d76fe77d60724aaf0 +size 39913 diff --git a/meme_generator/memes/roll/images/6.png b/meme_generator/memes/roll/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..be626f8d773f564654dee4bc17dceb65063ae4a3 --- /dev/null +++ b/meme_generator/memes/roll/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9664300ea936cfb28ee2a66d66ada127fc9f649bee220683d7d27aa5f7824674 +size 39672 diff --git a/meme_generator/memes/roll/images/7.png b/meme_generator/memes/roll/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..790a993380b9c834acd4e38f1b1462112dda60b6 --- /dev/null +++ b/meme_generator/memes/roll/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2524c2df145002b6f9a8f2dc9c5d895feae3f433825f9d85f70370e0dccdca72 +size 40161 diff --git a/meme_generator/memes/rub/__init__.py b/meme_generator/memes/rub/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..b92e454e9e1849c6b5f46bbc9ed9378d30a81d54 --- /dev/null +++ b/meme_generator/memes/rub/__init__.py @@ -0,0 +1,39 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 rub(images: List[BuildImage], texts, args): + self_head = images[0].convert("RGBA").circle() + user_head = images[1].convert("RGBA").circle() + # fmt: off + user_locs = [ + (39, 91, 75, 75), (49, 101, 75, 75), (67, 98, 75, 75), + (55, 86, 75, 75), (61, 109, 75, 75), (65, 101, 75, 75) + ] + self_locs = [ + (102, 95, 70, 80, 0), (108, 60, 50, 100, 0), (97, 18, 65, 95, 0), + (65, 5, 75, 75, -20), (95, 57, 100, 55, -70), (109, 107, 65, 75, 0) + ] + # fmt: on + frames: List[IMG] = [] + for i in range(6): + frame = BuildImage.open(img_dir / f"{i}.png") + x, y, w, h = user_locs[i] + frame.paste(user_head.resize((w, h)), (x, y), alpha=True) + x, y, w, h, angle = self_locs[i] + frame.paste( + self_head.resize((w, h)).rotate(angle, expand=True), (x, y), alpha=True + ) + frames.append(frame.image) + return save_gif(frames, 0.05) + + +add_meme("rub", rub, min_images=2, max_images=2, keywords=["贴", "贴贴", "蹭", "蹭蹭"]) diff --git a/meme_generator/memes/rub/images/0.png b/meme_generator/memes/rub/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..b8f9ba91c9905b7eb6cdfcfb2d73fa99d333475c --- /dev/null +++ b/meme_generator/memes/rub/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc7c0c3dbf24d9a4c53ef92129db7548bb2849a92918b2b1799806638d6946ed +size 13044 diff --git a/meme_generator/memes/rub/images/1.png b/meme_generator/memes/rub/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..d515b5c1763af24709264c00bb3c2298870b2ef1 --- /dev/null +++ b/meme_generator/memes/rub/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7bcd08bbb8cf288e081ce82f93cd319253b8a32c378a754e4dd8830c1961d80 +size 12589 diff --git a/meme_generator/memes/rub/images/2.png b/meme_generator/memes/rub/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..874e2d298dbe90847aa6f300751686afa9baf2d7 --- /dev/null +++ b/meme_generator/memes/rub/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:143b0904c696fa07030427c2626ceb17182163d4106b06d847a18bd0f0128146 +size 13387 diff --git a/meme_generator/memes/rub/images/3.png b/meme_generator/memes/rub/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..4a101cf86dfff7c393d8ed308308e30b56e768a4 --- /dev/null +++ b/meme_generator/memes/rub/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a6306557335b6ada1cdfa90980da7a0bc82f4b3eaabee67610d3d0b8cf87f2d +size 13865 diff --git a/meme_generator/memes/rub/images/4.png b/meme_generator/memes/rub/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..6ca442693e90010b1ab357fccef528e1feb7bbc7 --- /dev/null +++ b/meme_generator/memes/rub/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a87ab304b765d3d6d321e4019c799551886911cec0e12fb7a730476fae0bf10 +size 13024 diff --git a/meme_generator/memes/rub/images/5.png b/meme_generator/memes/rub/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..f4ddf4ab3a2142486a9a89684454b2219085c445 --- /dev/null +++ b/meme_generator/memes/rub/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbc42b0dbd012126aaf703ebb7a2c460704314a87cce212d01442ae0a9e8bf98 +size 11499 diff --git a/meme_generator/memes/run/__init__.py b/meme_generator/memes/run/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..744cc2e0a6af5d86fc7d8282872cbca58deb7d55 --- /dev/null +++ b/meme_generator/memes/run/__init__.py @@ -0,0 +1,31 @@ +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 run(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.png") + text_img = BuildImage.new("RGBA", (122, 53)) + try: + text_img.draw_text( + (0, 0, 122, 53), + text, + allow_wrap=True, + max_fontsize=50, + min_fontsize=10, + lines_align="center", + ) + except ValueError: + raise TextOverLength(text) + frame.paste(text_img.rotate(7, expand=True), (200, 195), alpha=True) + return frame.save_jpg() + + +add_meme("run", run, min_texts=1, max_texts=1, default_texts=["快跑"], keywords=["快跑"]) diff --git a/meme_generator/memes/run/images/0.png b/meme_generator/memes/run/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..75a57dbe8b5d611f03cc703fdb9ed6a39e7f9430 --- /dev/null +++ b/meme_generator/memes/run/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dc094efa45135bac7bc8b95ec8ef1a91ed81fafb39305b052507c2881d28324 +size 241968 diff --git a/meme_generator/memes/safe_sense/__init__.py b/meme_generator/memes/safe_sense/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9819f1543953243d5b282971d97ccaa55f38293e --- /dev/null +++ b/meme_generator/memes/safe_sense/__init__.py @@ -0,0 +1,44 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import MemeArgsModel, add_meme +from meme_generator.exception import TextOverLength + +img_dir = Path(__file__).parent / "images" + + +def safe_sense(images: List[BuildImage], texts: List[str], args: MemeArgsModel): + img = images[0].convert("RGBA").resize((215, 343), keep_ratio=True) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img, (215, 135)) + + ta = "它" + if args.user_infos: + gender = args.user_infos[0].gender + ta = "他" if gender == "male" else "她" if gender == "female" else "它" + text = texts[0] if texts else f"你给我的安全感\n远不及{ta}的万分之一" + try: + frame.draw_text( + (30, 0, 400, 130), + text, + max_fontsize=50, + allow_wrap=True, + lines_align="center", + ) + except ValueError: + raise TextOverLength(text) + return frame.save_jpg() + + +add_meme( + "safe_sense", + safe_sense, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + default_texts=["你给我的安全感\n远不及它的万分之一"], + keywords=["安全感"], +) diff --git a/meme_generator/memes/safe_sense/images/0.png b/meme_generator/memes/safe_sense/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..a9ff9b939db94f303c5e36a5a8619882394e65ab --- /dev/null +++ b/meme_generator/memes/safe_sense/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83f14a15818632417e14170e07ba15a4e15f39b3133b11bf96297ebbeb85e09c +size 78913 diff --git a/meme_generator/memes/scratch_head/__init__.py b/meme_generator/memes/scratch_head/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..7591b4f2a66f10a695a2b77cbc30bdb324d9022e --- /dev/null +++ b/meme_generator/memes/scratch_head/__init__.py @@ -0,0 +1,32 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 scratch_head(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square().resize((68, 68)) + frames: List[IMG] = [] + locs = [ + (53, 46, 4, 5), + (50, 45, 7, 6), + (50, 42, 6, 8), + (50, 44, 7, 7), + (53, 42, 4, 8), + (52, 45, 7, 7), + ] + for i in range(6): + frame = BuildImage.open(img_dir / f"{i}.png") + w, h, x, y = locs[i] + frame.paste(img.resize((w, h)), (x, y), below=True) + frames.append(frame.image) + return save_gif(frames, 0.1) + + +add_meme("scratch_head", scratch_head, min_images=1, max_images=1, keywords=["挠头"]) diff --git a/meme_generator/memes/scratch_head/images/0.png b/meme_generator/memes/scratch_head/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..9098baf2d13cc0a106d4aff8ffeec515a72daedb --- /dev/null +++ b/meme_generator/memes/scratch_head/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c31532bbe1875cde0a81ba9ed590a4c4080c0449dbc17fcb9b3b17ea9614d03 +size 4362 diff --git a/meme_generator/memes/scratch_head/images/1.png b/meme_generator/memes/scratch_head/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..d83e5e4d1f2e82bc3db9fcfbef6630e62e22670c --- /dev/null +++ b/meme_generator/memes/scratch_head/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3317d39280fa049bb9a93995ab60a410041c942355303efa52c04582e0b9cd27 +size 3994 diff --git a/meme_generator/memes/scratch_head/images/2.png b/meme_generator/memes/scratch_head/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..ad6a22e0bda660200cf3f5ae8cb1d31f521ff1e5 --- /dev/null +++ b/meme_generator/memes/scratch_head/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1c0bc6d263064b17bbf44091532ea0e89258bfa77d6fda564eb7c62abd61712 +size 4158 diff --git a/meme_generator/memes/scratch_head/images/3.png b/meme_generator/memes/scratch_head/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..34e038b5e3b11929cabb1a958d2bc019a85b5523 --- /dev/null +++ b/meme_generator/memes/scratch_head/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c32ab430c1ca5b8cf6f42aff35e4b0929d2b12acb7bf887f2a627d09b8450c6 +size 4183 diff --git a/meme_generator/memes/scratch_head/images/4.png b/meme_generator/memes/scratch_head/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..5ed3efea387d05b92c5422e785acff914a69d322 --- /dev/null +++ b/meme_generator/memes/scratch_head/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa95321571706319db246072ed7223ee70817e985297ea709ae8ee6edbc61f85 +size 4171 diff --git a/meme_generator/memes/scratch_head/images/5.png b/meme_generator/memes/scratch_head/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..1452de79c1e0179517d362713f4e4b28b300d0d5 --- /dev/null +++ b/meme_generator/memes/scratch_head/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e917b7f456d4f616d553c86cb2db71c5cbfb3398a881b324813f410fda9f9a81 +size 4328 diff --git a/meme_generator/memes/scratchcard/__init__.py b/meme_generator/memes/scratchcard/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a66e1fc16b9dd4c4142007f0c5da234926689cd7 --- /dev/null +++ b/meme_generator/memes/scratchcard/__init__.py @@ -0,0 +1,39 @@ +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 scratchcard(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.png") + try: + frame.draw_text( + (80, 160, 360, 290), + text, + allow_wrap=True, + max_fontsize=80, + min_fontsize=30, + fill="white", + lines_align="center", + ) + except ValueError: + raise TextOverLength(text) + mask = BuildImage.open(img_dir / "1.png") + frame.paste(mask, alpha=True) + return frame.save_jpg() + + +add_meme( + "scratchcard", + scratchcard, + min_texts=1, + max_texts=1, + default_texts=["谢谢参与"], + keywords=["刮刮乐"], +) diff --git a/meme_generator/memes/scratchcard/images/0.png b/meme_generator/memes/scratchcard/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..10e19e674aa4acb75430f68d24b42d7392add9f7 --- /dev/null +++ b/meme_generator/memes/scratchcard/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:983d4e609d5d0755b9b5593d848adaa79860194ab3cc6cf38745d92e7738cb43 +size 106130 diff --git a/meme_generator/memes/scratchcard/images/1.png b/meme_generator/memes/scratchcard/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..5aef08ad5329a0b5e1aec6c599546766d01dbe8a --- /dev/null +++ b/meme_generator/memes/scratchcard/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58868a7eb9be598ae4730848e764990db4adf4375bfcdcc0cf4a3b1e5acda6f7 +size 86356 diff --git a/meme_generator/memes/scroll/__init__.py b/meme_generator/memes/scroll/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..efb0c659a563bee19e592c2525b98118145cdfa7 --- /dev/null +++ b/meme_generator/memes/scroll/__init__.py @@ -0,0 +1,54 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +from pil_utils import BuildImage, Text2Image + +from meme_generator import add_meme +from meme_generator.exception import TextOverLength +from meme_generator.utils import save_gif + +img_dir = Path(__file__).parent / "images" + + +def scroll(images, texts: List[str], args): + text = texts[0] + text2image = Text2Image.from_text(text, 40).wrap(600) + if len(text2image.lines) > 5: + raise TextOverLength(text) + text_img = text2image.to_image() + text_w, text_h = text_img.size + + box_w = text_w + 140 + box_h = max(text_h + 103, 150) + box = BuildImage.new("RGBA", (box_w, box_h), "#eaedf4") + corner1 = BuildImage.open(img_dir / "corner1.png") + corner2 = BuildImage.open(img_dir / "corner2.png") + corner3 = BuildImage.open(img_dir / "corner3.png") + corner4 = BuildImage.open(img_dir / "corner4.png") + box.paste(corner1, (0, 0)) + box.paste(corner2, (0, box_h - 75)) + box.paste(corner3, (text_w + 70, 0)) + box.paste(corner4, (text_w + 70, box_h - 75)) + box.paste(BuildImage.new("RGBA", (text_w, box_h - 40), "white"), (70, 20)) + box.paste(BuildImage.new("RGBA", (text_w + 88, box_h - 150), "white"), (27, 75)) + box.paste(text_img, (70, 17 + (box_h - 40 - text_h) // 2), alpha=True) + + dialog = BuildImage.new("RGBA", (box_w, box_h * 4), "#eaedf4") + for i in range(4): + dialog.paste(box, (0, box_h * i)) + + frames: List[IMG] = [] + num = 30 + dy = int(dialog.height / num) + for i in range(num): + frame = BuildImage.new("RGBA", dialog.size) + frame.paste(dialog, (0, -dy * i)) + frame.paste(dialog, (0, dialog.height - dy * i)) + frames.append(frame.image) + return save_gif(frames, 0.05) + + +add_meme( + "scroll", scroll, min_texts=1, max_texts=1, default_texts=["你们说话啊"], keywords=["滚屏"] +) diff --git a/meme_generator/memes/scroll/images/corner1.png b/meme_generator/memes/scroll/images/corner1.png new file mode 100644 index 0000000000000000000000000000000000000000..2f7c62854ede93e609676fd43b6d653f955b8e94 --- /dev/null +++ b/meme_generator/memes/scroll/images/corner1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:662e553d3874e57c05be344691193ba7126bcabae17e20ff1b4c61958745c777 +size 3185 diff --git a/meme_generator/memes/scroll/images/corner2.png b/meme_generator/memes/scroll/images/corner2.png new file mode 100644 index 0000000000000000000000000000000000000000..ecc927addd600528edd205f21f24ee6297c7547d --- /dev/null +++ b/meme_generator/memes/scroll/images/corner2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:466cfb07217ecd6cc58e016b01d9293c0c11c26b01a63c114b6508e7ed758ca2 +size 2800 diff --git a/meme_generator/memes/scroll/images/corner3.png b/meme_generator/memes/scroll/images/corner3.png new file mode 100644 index 0000000000000000000000000000000000000000..442b8ce36b035e2d450864ea77c7094dafed8c7d --- /dev/null +++ b/meme_generator/memes/scroll/images/corner3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac3a13281ad837c4b67aa0f2a0da223366d91798679720e34e42b0f35c5ccf34 +size 2689 diff --git a/meme_generator/memes/scroll/images/corner4.png b/meme_generator/memes/scroll/images/corner4.png new file mode 100644 index 0000000000000000000000000000000000000000..6a3f0353ffee2d59bb6c3baf153787f1726d8125 --- /dev/null +++ b/meme_generator/memes/scroll/images/corner4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab451c7a3fb77f862a42b03a78f7d7ac5a578f4173ca5a9e194c141b278fc3e7 +size 2628 diff --git a/meme_generator/memes/shock/__init__.py b/meme_generator/memes/shock/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69a6ed6dd316ccac8d89be85c07a87c59210c80 --- /dev/null +++ b/meme_generator/memes/shock/__init__.py @@ -0,0 +1,23 @@ +import random +from typing import List + +from PIL.Image import Image as IMG +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import save_gif + + +def shock(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square().resize((300, 300)) + frames: List[IMG] = [] + for i in range(30): + frames.append( + img.motion_blur(random.randint(-90, 90), random.randint(0, 50)) + .rotate(random.randint(-20, 20)) + .image + ) + return save_gif(frames, 0.01) + + +add_meme("shock", shock, min_images=1, max_images=1, keywords=["震惊"]) diff --git a/meme_generator/memes/shutup/__init__.py b/meme_generator/memes/shutup/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..381dd7b7822b4726b7c5b1afdc854e7f838c20cb --- /dev/null +++ b/meme_generator/memes/shutup/__init__.py @@ -0,0 +1,35 @@ +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 shutup(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.jpg") + try: + frame.draw_text( + (10, 180, 230, 230), + text, + allow_wrap=True, + max_fontsize=40, + min_fontsize=15, + ) + except ValueError: + raise TextOverLength(text) + return frame.save_jpg() + + +add_meme( + "shutup", + shutup, + min_texts=1, + max_texts=1, + default_texts=["你不要再说了"], + keywords=["别说了"], +) diff --git a/meme_generator/memes/shutup/images/0.jpg b/meme_generator/memes/shutup/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2b4fd3251b01a7c680793f1b071d4ed19c9ef1f2 Binary files /dev/null and b/meme_generator/memes/shutup/images/0.jpg differ diff --git a/meme_generator/memes/sit_still/__init__.py b/meme_generator/memes/sit_still/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..b532d7c0538b076911c6006e10a2b1f2440d9103 --- /dev/null +++ b/meme_generator/memes/sit_still/__init__.py @@ -0,0 +1,39 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import MemeArgsModel, add_meme +from meme_generator.exception import TextOverLength + +img_dir = Path(__file__).parent / "images" + + +def sit_still(images: List[BuildImage], texts: List[str], args: MemeArgsModel): + name = texts[0] if texts else args.user_infos[0].name if args.user_infos else "" + frame = BuildImage.open(img_dir / "0.png") + if name: + try: + frame.draw_text( + (100, 170, 600, 330), + name, + valign="bottom", + max_fontsize=75, + min_fontsize=30, + ) + except ValueError: + raise TextOverLength(name) + img = images[0].convert("RGBA").circle().resize((150, 150)).rotate(-10, expand=True) + frame.paste(img, (268, 344), alpha=True) + return frame.save_jpg() + + +add_meme( + "sit_still", + sit_still, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + keywords=["坐得住", "坐的住"], +) diff --git a/meme_generator/memes/sit_still/images/0.png b/meme_generator/memes/sit_still/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..df24aea5e6d74e914b40bdd3d1f95edfc6e9fa76 --- /dev/null +++ b/meme_generator/memes/sit_still/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bc59726997b74fd2f5ba8b032c097004b959a8252d1fc936982640736075f3a +size 204571 diff --git a/meme_generator/memes/slap/__init__.py b/meme_generator/memes/slap/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..607035155c1389dd46e51ef662fc4b1d0bbf8461 --- /dev/null +++ b/meme_generator/memes/slap/__init__.py @@ -0,0 +1,28 @@ +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 slap(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.jpg") + try: + frame.draw_text( + (20, 450, 620, 630), + text, + allow_wrap=True, + max_fontsize=110, + min_fontsize=50, + ) + except ValueError: + raise TextOverLength(text) + return frame.save_jpg() + + +add_meme("slap", slap, min_texts=1, max_texts=1, keywords=["一巴掌"]) diff --git a/meme_generator/memes/slap/images/0.jpg b/meme_generator/memes/slap/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..af589da96b570ed7d538faa52cc14c337fbf2e8a Binary files /dev/null and b/meme_generator/memes/slap/images/0.jpg differ diff --git a/meme_generator/memes/slogan/__init__.py b/meme_generator/memes/slogan/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..88c36278f3f2efdc90aab0ef4746a01fb11ea897 --- /dev/null +++ b/meme_generator/memes/slogan/__init__.py @@ -0,0 +1,40 @@ +from pathlib import Path +from typing import List, Tuple + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.exception import TextOverLength + +img_dir = Path(__file__).parent / "images" + + +def slogan(images, texts: List[str], args): + frame = BuildImage.open(img_dir / "0.jpg") + + def draw(pos: Tuple[float, float, float, float], text: str): + try: + frame.draw_text( + pos, text, max_fontsize=40, min_fontsize=15, allow_wrap=True + ) + except ValueError: + raise TextOverLength(text) + + draw((10, 0, 294, 50), texts[0]) + draw((316, 0, 602, 50), texts[1]) + draw((10, 230, 294, 280), texts[2]) + draw((316, 230, 602, 280), texts[3]) + draw((10, 455, 294, 505), texts[4]) + draw((316, 455, 602, 505), texts[5]) + + return frame.save_jpg() + + +add_meme( + "slogan", + slogan, + min_texts=6, + max_texts=6, + default_texts=["我们是谁?", "浙大人!", "到浙大来做什么?", "混!", "将来毕业后要做什么样的人?", "混混!"], + keywords=["口号"], +) diff --git a/meme_generator/memes/slogan/images/0.jpg b/meme_generator/memes/slogan/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e292b3ee8b5c19a476350ba7ed408c00ffe7c799 Binary files /dev/null and b/meme_generator/memes/slogan/images/0.jpg differ diff --git a/meme_generator/memes/smash/__init__.py b/meme_generator/memes/smash/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..17d6823604fc2e251fbeb781c899c613d8e88966 --- /dev/null +++ b/meme_generator/memes/smash/__init__.py @@ -0,0 +1,25 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def smash(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + points = ((1, 237), (826, 1), (832, 508), (160, 732)) + screen = ( + img.convert("RGBA").resize((800, 500), keep_ratio=True).perspective(points) + ) + return frame.copy().paste(screen, (-136, -81), below=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme("smash", smash, min_images=1, max_images=1, keywords=["砸"]) diff --git a/meme_generator/memes/smash/images/0.png b/meme_generator/memes/smash/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4b8f669bb44de8433e7ccc1bda0d59f3bdb669 --- /dev/null +++ b/meme_generator/memes/smash/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7134bd26c105ea63af2bf863477d5e9dacc50095dd7906ee6ccc6fc45ee99f11 +size 236343 diff --git a/meme_generator/memes/step_on/__init__.py b/meme_generator/memes/step_on/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..aea65259d02482005b0b13eb3a247c938a28a274 --- /dev/null +++ b/meme_generator/memes/step_on/__init__.py @@ -0,0 +1,31 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 step_on(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((100, 100), keep_ratio=True) + frames: List[IMG] = [] + locs = [ + (104, 72, 32, 185, -25), + (104, 72, 32, 185, -25), + (90, 73, 51, 207, 0), + (88, 78, 51, 202, 0), + (88, 86, 49, 197, 0), + ] + for i in range(5): + frame = BuildImage.open(img_dir / f"{i}.png") + w, h, x, y, angle = locs[i] + frame.paste(img.resize((w, h)).rotate(angle, expand=True), (x, y), below=True) + frames.append(frame.image) + return save_gif(frames, 0.07) + + +add_meme("step_on", step_on, min_images=1, max_images=1, keywords=["踩"]) diff --git a/meme_generator/memes/step_on/images/0.png b/meme_generator/memes/step_on/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..12c5061069b8d6d15e4bc650c98ee3bc3ff9c49f --- /dev/null +++ b/meme_generator/memes/step_on/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e07965b21a4c318613409b66b783de8fe9e373f88e92d7e8bd69277b70765069 +size 25319 diff --git a/meme_generator/memes/step_on/images/1.png b/meme_generator/memes/step_on/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..3fec70713d76f42a9ba97c81b4e01d3eeeada610 --- /dev/null +++ b/meme_generator/memes/step_on/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecf2e22dc76f6b3f8d84b6083289186c7ba7cbb5c47156680b1c2ab7de075463 +size 24179 diff --git a/meme_generator/memes/step_on/images/2.png b/meme_generator/memes/step_on/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc9bd8170e99b5202952743c27e61b5b74fe71c --- /dev/null +++ b/meme_generator/memes/step_on/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eea1044c7e05cddda7d6089eeadc27df9ce4083509337154e04b664e655c6f0b +size 22574 diff --git a/meme_generator/memes/step_on/images/3.png b/meme_generator/memes/step_on/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc33ae7fd566633efbb696add86b58a9be65039 --- /dev/null +++ b/meme_generator/memes/step_on/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e74c6bb9263cc7913b2ea51724778a4829a39042f7fbddfcd00807afb4605da5 +size 22008 diff --git a/meme_generator/memes/step_on/images/4.png b/meme_generator/memes/step_on/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef3a0ce13c22832f07a8ca7668be69411d943fd --- /dev/null +++ b/meme_generator/memes/step_on/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:834ffcb5550ffc38a22b78ad1cacdad18015b8787152ed11f92c84c8d1255aaa +size 21691 diff --git a/meme_generator/memes/stretch/images/0.png b/meme_generator/memes/stretch/images/0.png index c6fb61d5624b96c2593cd77a53773536001d258b..d3a529708978da0cbb2c776eb52b9fd65c31256d 100644 Binary files a/meme_generator/memes/stretch/images/0.png and b/meme_generator/memes/stretch/images/0.png differ diff --git a/meme_generator/memes/suck/__init__.py b/meme_generator/memes/suck/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..46532e87e41470b56a1d0020628d7cea6451a87f --- /dev/null +++ b/meme_generator/memes/suck/__init__.py @@ -0,0 +1,30 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 suck(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square() + # fmt: off + locs = [(82, 100, 130, 119), (82, 94, 126, 125), (82, 120, 128, 99), (81, 164, 132, 55), + (79, 163, 132, 55), (82, 140, 127, 79), (83, 152, 125, 67), (75, 157, 140, 62), + (72, 165, 144, 54), (80, 132, 128, 87), (81, 127, 127, 92), (79, 111, 132, 108)] + # fmt: on + frames: List[IMG] = [] + for i in range(12): + bg = BuildImage.open(img_dir / f"{i}.png") + frame = BuildImage.new("RGBA", bg.size, "white") + x, y, w, h = locs[i] + frame.paste(img.resize((w, h)), (x, y), alpha=True).paste(bg, alpha=True) + frames.append(frame.image) + return save_gif(frames, 0.08) + + +add_meme("suck", suck, min_images=1, max_images=1, keywords=["吸", "嗦"]) diff --git a/meme_generator/memes/suck/images/0.png b/meme_generator/memes/suck/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..ce9939a6b44725c6e23f4952af561bd05ccb71d5 --- /dev/null +++ b/meme_generator/memes/suck/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdc26c16891961d2d686a19a4d01d9d7d54106036bd2073909f58ed0c226426e +size 17308 diff --git a/meme_generator/memes/suck/images/1.png b/meme_generator/memes/suck/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..357d40b2829bec3d594c245969f5c0a9855fad8b --- /dev/null +++ b/meme_generator/memes/suck/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90c561a9a7ec71cffad1d25c48ddba16bd1877dae3708e6fd3a328082cf811da +size 17432 diff --git a/meme_generator/memes/suck/images/10.png b/meme_generator/memes/suck/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..a87ea7a99c4cb4209e5569d9f5f44602097116dd --- /dev/null +++ b/meme_generator/memes/suck/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d547db164915678768a3088055f9ee7c38ab249f39b45ea2bf7ed5e0b90bf1f7 +size 17106 diff --git a/meme_generator/memes/suck/images/11.png b/meme_generator/memes/suck/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfe39339998545e5fd26a938ae246bf75567a53 --- /dev/null +++ b/meme_generator/memes/suck/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bd8affec2af47cd2c6827c1bff4411480d7aec96ebdeb673a65b20bc9dffc29 +size 16876 diff --git a/meme_generator/memes/suck/images/2.png b/meme_generator/memes/suck/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..9665adf326a46edf12f1969573f8a9743fc3b9f1 --- /dev/null +++ b/meme_generator/memes/suck/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:083725198059d1ad7184151e53dfd163b2ec29c815dfaa7712d0130fa866ea20 +size 18073 diff --git a/meme_generator/memes/suck/images/3.png b/meme_generator/memes/suck/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9863bac2757e725aec0916f629a68bbcd07274 --- /dev/null +++ b/meme_generator/memes/suck/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca6f260d193fc3550016b9af8259beb7bb9fe15f1c72c2d68c7b4892afc526cf +size 17147 diff --git a/meme_generator/memes/suck/images/4.png b/meme_generator/memes/suck/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..2cb259892759255ecaaf48a1fd76c8ac801d62f1 --- /dev/null +++ b/meme_generator/memes/suck/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cec5980d48bde35a7ddb03d20be05ac58c4e72443a90d0fd3d7a19679facf68 +size 16455 diff --git a/meme_generator/memes/suck/images/5.png b/meme_generator/memes/suck/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..cf64e442a10448f946f14e90c953691be7bfe886 --- /dev/null +++ b/meme_generator/memes/suck/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5216360feeadebda6d6a95173db4472a2ce7813ae956200b631bd58dc240d5bd +size 15970 diff --git a/meme_generator/memes/suck/images/6.png b/meme_generator/memes/suck/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..36b86b0140740e4f4584b51e949648d432a2c4e6 --- /dev/null +++ b/meme_generator/memes/suck/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66befe1393455be5834bb0fe59bcb31a933f96d4f63cf3a7208833bdf59ced9a +size 17456 diff --git a/meme_generator/memes/suck/images/7.png b/meme_generator/memes/suck/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..12d67143f5b32c16974f87e7ce1031748e37deaf --- /dev/null +++ b/meme_generator/memes/suck/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6e33f2119733d4e68f84ba60e7a5eb531dbc55dc34a44a6c6fc2978c8832ad3 +size 16868 diff --git a/meme_generator/memes/suck/images/8.png b/meme_generator/memes/suck/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..d9fce44c858923ee25990ac1ceead9cfee9d1243 --- /dev/null +++ b/meme_generator/memes/suck/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7347a8158289082a47fa1f8a8d82e20cae5cea8fa2433aa78e66b2a8c4c15af +size 16417 diff --git a/meme_generator/memes/suck/images/9.png b/meme_generator/memes/suck/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5ef0fd14013a74882ec39c288de59be5e6afca --- /dev/null +++ b/meme_generator/memes/suck/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0508f3cacf32c3d63a3b78f0641ddffd1d3f0511d1e36d7de6dd8d535a3d7be8 +size 16372 diff --git a/meme_generator/memes/support/__init__.py b/meme_generator/memes/support/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4af76f06c59fc52f686f741c5c22d98f0ebf4f91 --- /dev/null +++ b/meme_generator/memes/support/__init__.py @@ -0,0 +1,18 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def support(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square().resize((815, 815)).rotate(23, expand=True) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img, (-172, -17), below=True) + return frame.save_jpg() + + +add_meme("support", support, min_images=1, max_images=1, keywords=["精神支柱"]) diff --git a/meme_generator/memes/support/images/0.png b/meme_generator/memes/support/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..d0295111d7bccf80192582aca1c8d0068b44f1fb --- /dev/null +++ b/meme_generator/memes/support/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c1ea790b60a72214ca1723a29df93864734553362679d8e99b3ce42f7253ce5 +size 430238 diff --git a/meme_generator/memes/symmetric/__init__.py b/meme_generator/memes/symmetric/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..73de733d9596bb7d69df23d32bf859a6a8c53e5d --- /dev/null +++ b/meme_generator/memes/symmetric/__init__.py @@ -0,0 +1,114 @@ +from typing import Dict, List, Literal, NamedTuple, Tuple + +from PIL.Image import Transpose +from pil_utils import BuildImage +from pydantic import Field + +from meme_generator import MemeArgsModel, MemeArgsParser, MemeArgsType, add_meme +from meme_generator.utils import make_jpg_or_gif + +help = "对称方向" + +parser = MemeArgsParser(prefix_chars="-/") +group = parser.add_mutually_exclusive_group() +group.add_argument( + "-d", + "--direction", + type=str, + choices=["left", "right", "top", "bottom"], + default="left", + help=help, +) +group.add_argument("--left", "/左", action="store_const", const="left", dest="direction") +group.add_argument( + "--right", "/右", action="store_const", const="right", dest="direction" +) +group.add_argument("--top", "/上", action="store_const", const="top", dest="direction") +group.add_argument( + "--bottom", "/下", action="store_const", const="bottom", dest="direction" +) + + +class Model(MemeArgsModel): + direction: Literal["left", "right", "top", "bottom"] = Field( + "left", description=help + ) + + +def symmetric(images: List[BuildImage], texts, args: Model): + img = images[0] + img_w, img_h = img.size + + class Mode(NamedTuple): + method: Transpose + frame_size: Tuple[int, int] + size1: Tuple[int, int, int, int] + pos1: Tuple[int, int] + size2: Tuple[int, int, int, int] + pos2: Tuple[int, int] + + modes: Dict[str, Mode] = { + "left": Mode( + Transpose.FLIP_LEFT_RIGHT, + (img_w // 2 * 2, img_h), + (0, 0, img_w // 2, img_h), + (0, 0), + (img_w // 2, 0, img_w // 2 * 2, img_h), + (img_w // 2, 0), + ), + "right": Mode( + Transpose.FLIP_LEFT_RIGHT, + (img_w // 2 * 2, img_h), + (img_w // 2, 0, img_w // 2 * 2, img_h), + (img_w // 2, 0), + (0, 0, img_w // 2, img_h), + (0, 0), + ), + "top": Mode( + Transpose.FLIP_TOP_BOTTOM, + (img_w, img_h // 2 * 2), + (0, 0, img_w, img_h // 2), + (0, 0), + (0, img_h // 2, img_w, img_h // 2 * 2), + (0, img_h // 2), + ), + "bottom": Mode( + Transpose.FLIP_TOP_BOTTOM, + (img_w, img_h // 2 * 2), + (0, img_h // 2, img_w, img_h // 2 * 2), + (0, img_h // 2), + (0, 0, img_w, img_h // 2), + (0, 0), + ), + } + + mode = modes[args.direction] + + def make(img: BuildImage) -> BuildImage: + first = img.convert("RGBA") + second = img.convert("RGBA").transpose(mode.method) + frame = BuildImage.new("RGBA", mode.frame_size) + frame.paste(first.crop(mode.size1), mode.pos1, alpha=True) + frame.paste(second.crop(mode.size2), mode.pos2, alpha=True) + return frame + + return make_jpg_or_gif(img, make, keep_transparency=True) + + +add_meme( + "symmetric", + symmetric, + min_images=1, + max_images=1, + args_type=MemeArgsType( + parser, + Model, + [ + Model(direction="left"), + Model(direction="right"), + Model(direction="top"), + Model(direction="bottom"), + ], + ), + keywords=["对称"], +) diff --git a/meme_generator/memes/tankuku_raisesign/__init__.py b/meme_generator/memes/tankuku_raisesign/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6c7f31ff5b7ae7428e7b701fe65b3b38b67e6adf --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/__init__.py @@ -0,0 +1,47 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 tankuku_raisesign(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((300, 230), keep_ratio=True) + params = ( + (((0, 46), (320, 0), (350, 214), (38, 260)), (68, 91)), + (((18, 0), (328, 28), (298, 227), (0, 197)), (184, 77)), + (((15, 0), (294, 28), (278, 216), (0, 188)), (194, 65)), + (((14, 0), (279, 27), (262, 205), (0, 178)), (203, 55)), + (((14, 0), (270, 25), (252, 195), (0, 170)), (209, 49)), + (((15, 0), (260, 25), (242, 186), (0, 164)), (215, 41)), + (((10, 0), (245, 21), (230, 180), (0, 157)), (223, 35)), + (((13, 0), (230, 21), (218, 168), (0, 147)), (231, 25)), + (((13, 0), (220, 23), (210, 167), (0, 140)), (238, 21)), + (((27, 0), (226, 46), (196, 182), (0, 135)), (254, 13)), + (((27, 0), (226, 46), (196, 182), (0, 135)), (254, 13)), + (((27, 0), (226, 46), (196, 182), (0, 135)), (254, 13)), + (((0, 35), (200, 0), (224, 133), (25, 169)), (175, 9)), + (((0, 35), (200, 0), (224, 133), (25, 169)), (195, 17)), + (((0, 35), (200, 0), (224, 133), (25, 169)), (195, 17)), + ) + frames: List[IMG] = [] + for i in range(15): + points, pos = params[i] + frame = BuildImage.open(img_dir / f"{i}.png") + frame.paste(img.perspective(points), pos, below=True) + frames.append(frame.image) + return save_gif(frames, 0.2) + + +add_meme( + "tankuku_raisesign", + tankuku_raisesign, + min_images=1, + max_images=1, + keywords=["唐可可举牌"], +) diff --git a/meme_generator/memes/tankuku_raisesign/images/0.png b/meme_generator/memes/tankuku_raisesign/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..f686f014e42f62ba09584be493f728cc28bd140f --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7d2cecb1af1727fe6bb154e678bf5dca7635116251282a62d41ab483b5700ee +size 248387 diff --git a/meme_generator/memes/tankuku_raisesign/images/1.png b/meme_generator/memes/tankuku_raisesign/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..faae34ba38c42e7d22911f988d4586c0176508e7 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80f3a13ab0ce6cccd21d09335f88e9e79fbb627b489a1aafdd4ef69370e7136e +size 262972 diff --git a/meme_generator/memes/tankuku_raisesign/images/10.png b/meme_generator/memes/tankuku_raisesign/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..ace523a735c486fa7c75f25e50d00afeb3001f49 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d403e44d8e2577c92a28b7553ed31a8b58feb802cce102ec42adf5ad0d59b86e +size 333427 diff --git a/meme_generator/memes/tankuku_raisesign/images/11.png b/meme_generator/memes/tankuku_raisesign/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..5e70b943e3ee575c5cf4d4603790aea13cdbaed3 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dea14e246c19b7fa6fcc9a0ea550f21b92a91d1d6cf5c07310ac11e6d629fb7b +size 338365 diff --git a/meme_generator/memes/tankuku_raisesign/images/12.png b/meme_generator/memes/tankuku_raisesign/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..ec77f234b1f38facc84e542a0f54ecbd9eb18bb7 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfc33a08f6f7023aeaaa58170e8800dca22b94c3e58a5766fdc5dd861ec9ca90 +size 347431 diff --git a/meme_generator/memes/tankuku_raisesign/images/13.png b/meme_generator/memes/tankuku_raisesign/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..53482a16bf5084b2615668f8237e24b08b17c838 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17f772ad02651ac69d75590dc84bf7a17780390863634d1578dba9e66046d7f4 +size 345478 diff --git a/meme_generator/memes/tankuku_raisesign/images/14.png b/meme_generator/memes/tankuku_raisesign/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..943b0d738622dbc71fe870e3b2f03e2236b92094 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e142b6528567fe411ba4379afc340d03782f632a1eaa132d6450912a89b20e26 +size 345936 diff --git a/meme_generator/memes/tankuku_raisesign/images/2.png b/meme_generator/memes/tankuku_raisesign/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..3a62387b61584e4d18e1065396a23258a3ddd4b8 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a057f1ed2f66cca6f69e76444db605cad29de8ce64367d7fca35ebaa2f29b552 +size 272008 diff --git a/meme_generator/memes/tankuku_raisesign/images/3.png b/meme_generator/memes/tankuku_raisesign/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..7a1b7ae345ef306a940289886f9fe42bfcdc1483 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c807f33370f4e45d389470733e8a2d8cec6fb01620346f2dff263fef836823a2 +size 288293 diff --git a/meme_generator/memes/tankuku_raisesign/images/4.png b/meme_generator/memes/tankuku_raisesign/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff2128792316c624d8b53e4cca2307201cb2453 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b61c70a9849e6b041bac2b8d79bf528929c0df43add99603c6bf3702b0b03a70 +size 303272 diff --git a/meme_generator/memes/tankuku_raisesign/images/5.png b/meme_generator/memes/tankuku_raisesign/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..ff74679fcb2e765d6a4557970d7c61b50be0c292 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0535f96bd1330a70e02958501c426634e3e97647e7b05898ab335bd706c2b8e +size 316231 diff --git a/meme_generator/memes/tankuku_raisesign/images/6.png b/meme_generator/memes/tankuku_raisesign/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..a294e1deffba161eeab57753183fe4ff5dcf1a9b --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6d828db3f6aa931b52d4284c49818e659b19a4a2f0b67c29580d86672d7cc0c +size 330661 diff --git a/meme_generator/memes/tankuku_raisesign/images/7.png b/meme_generator/memes/tankuku_raisesign/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..a67ea0517fd908251eb248735d3418171856d92a --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50c8a46a1d96dea6a66ddffe80efb052f2d16589df89dccec4723167bc738a42 +size 329404 diff --git a/meme_generator/memes/tankuku_raisesign/images/8.png b/meme_generator/memes/tankuku_raisesign/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..09643c5a09b61f91c78c17775d96e2bf6b21418c --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0a4bc7fc6dfa75a4b66011e02b17ef25e40476a5560cbf661b6e3746e6bb209 +size 326888 diff --git a/meme_generator/memes/tankuku_raisesign/images/9.png b/meme_generator/memes/tankuku_raisesign/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..f363c136958935b09421da48d2fd62b3be68aff2 --- /dev/null +++ b/meme_generator/memes/tankuku_raisesign/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a15b72949a1e4e713f305b98269468bace9dd694467f1348c0c8d3bbe116ac4 +size 331439 diff --git a/meme_generator/memes/taunt/__init__.py b/meme_generator/memes/taunt/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..15710bc3bbb399c352725880afa58733024d18a2 --- /dev/null +++ b/meme_generator/memes/taunt/__init__.py @@ -0,0 +1,22 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def taunt(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").square().resize((230, 230)) + return frame.copy().paste(img, (245, 245)) + + return make_jpg_or_gif(images[0], make) + + +add_meme("taunt", taunt, min_images=1, max_images=1, keywords=["嘲讽"]) diff --git a/meme_generator/memes/taunt/images/0.png b/meme_generator/memes/taunt/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..af9eb21c30c8ec02f1242ae632909c2da37dd7f9 --- /dev/null +++ b/meme_generator/memes/taunt/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02e2f7794dba8cee07bc8bda7d2f0d791336fc6c1781f24c4443cc81c9b3af81 +size 498573 diff --git a/meme_generator/memes/teach/__init__.py b/meme_generator/memes/teach/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a47e287488fc31897dcca24f2ff1e1f52d1e4a4c --- /dev/null +++ b/meme_generator/memes/teach/__init__.py @@ -0,0 +1,44 @@ +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 +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def teach(images: List[BuildImage], texts: List[str], args): + frame = BuildImage.open(img_dir / "0.png").resize_width(960).convert("RGBA") + text = texts[0] if texts else "我老婆" + try: + frame.draw_text( + (10, frame.height - 80, frame.width - 10, frame.height - 5), + text, + max_fontsize=50, + fill="white", + stroke_fill="black", + stroke_ratio=0.06, + ) + except ValueError: + raise TextOverLength(text) + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize((550, 395), keep_ratio=True) + return frame.copy().paste(img, (313, 60), below=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme( + "teach", + teach, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + default_texts=["我老婆"], + keywords=["讲课", "敲黑板"], +) diff --git a/meme_generator/memes/teach/images/0.png b/meme_generator/memes/teach/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..246b59f71bdf060c310bfbdb1e4ecb2448e2de05 --- /dev/null +++ b/meme_generator/memes/teach/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65b6a5fd34a357e14875deda53e6952a87ea7e970536f4a87c1e10e69e236565 +size 686801 diff --git a/meme_generator/memes/tease/__init__.py b/meme_generator/memes/tease/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0914c3cdd185a36ed0d0c47738ff29aa79f5171f --- /dev/null +++ b/meme_generator/memes/tease/__init__.py @@ -0,0 +1,51 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 tease(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square() + frames: List[IMG] = [] + params = [ + ((21, 75), ((0, 0), (129, 3), (155, 123), (12, 142))), + ((18, 73), ((0, 29), (128, 0), (149, 118), (30, 147))), + ((22, 78), ((0, 37), (136, 1), (160, 97), (16, 152))), + ((22, 58), ((0, 58), (169, 1), (194, 92), (24, 170))), + ((43, 23), ((0, 114), (166, 1), (168, 98), (41, 205))), + ((38, 24), ((0, 112), (171, 0), (169, 113), (45, 195))), + ((31, 54), ((0, 73), (148, 0), (172, 81), (45, 170))), + ((24, 62), ((0, 62), (159, 1), (177, 81), (47, 155))), + ((31, 75), ((1, 45), (126, 1), (158, 81), (29, 145))), + ((18, 61), ((0, 63), (161, 1), (190, 88), (42, 153))), + ((20, 66), ((0, 57), (152, 0), (195, 82), (40, 149))), + ((16, 77), ((0, 41), (141, 0), (170, 90), (27, 138))), + ((28, 105), ((0, 1), (132, 0), (131, 112), (1, 114))), + ((21, 107), ((0, 1), (132, 0), (131, 112), (1, 114))), + ((11, 113), ((1, 7), (138, 0), (141, 126), (4, 131))), + ((10, 114), ((0, 0), (142, 0), (142, 131), (0, 131))), + ((5, 121), ((0, 0), (147, 0), (147, 115), (0, 115))), + ((0, 119), ((0, 0), (158, 0), (158, 102), (0, 102))), + ((0, 116), ((0, 0), (158, 0), (158, 107), (0, 107))), + ((0, 119), ((0, 0), (158, 0), (158, 103), (0, 101))), + ((2, 101), ((0, 0), (153, 0), (153, 122), (0, 120))), + ((-18, 85), ((61, 0), (194, 15), (143, 146), (0, 133))), + ((0, 66), ((88, 1), (173, 17), (123, 182), (0, 131))), + ((0, 29), ((118, 3), (201, 48), (111, 220), (1, 168))), + ] + for i in range(24): + frame = BuildImage.open(img_dir / f"{i}.png") + pos, points = params[i] + frame.paste(img.perspective(points), pos, below=True) + frames.append(frame.image) + + return save_gif(frames, 0.05) + + +add_meme("tease", tease, min_images=1, max_images=1, keywords=["拿捏", "戏弄"]) diff --git a/meme_generator/memes/tease/images/0.png b/meme_generator/memes/tease/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..643872095b89c4bbdcec5d122bb90ce47a748c73 --- /dev/null +++ b/meme_generator/memes/tease/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15d3394ea24542d52a9c092c3ad2f615f232c82190076f4b4886b3d9101ed18d +size 81122 diff --git a/meme_generator/memes/tease/images/1.png b/meme_generator/memes/tease/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6562ce5327e2276e3b641a5f8f1a0f9b78bbe5 --- /dev/null +++ b/meme_generator/memes/tease/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ec31a7752adaac0638ba92d2f2619b03c2608578c6692f25c5c442a10559d7d +size 83132 diff --git a/meme_generator/memes/tease/images/10.png b/meme_generator/memes/tease/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a93a667623b1fdbe3fdbe4446df18e24601ceb --- /dev/null +++ b/meme_generator/memes/tease/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c610e7de862df6171627eea06936720f84b1b60810016e9a9587995acb00db0 +size 94961 diff --git a/meme_generator/memes/tease/images/11.png b/meme_generator/memes/tease/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb5e6e4a0b73c47a082dc3568c0d8e1f0caee85 --- /dev/null +++ b/meme_generator/memes/tease/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cde861698ed01489d5368d235fb55567fc21507aa80c95605ff5f37faf2b2ec +size 92339 diff --git a/meme_generator/memes/tease/images/12.png b/meme_generator/memes/tease/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..77c8f8a28b360ddd5dccea3d13fd2f79ba69aa40 --- /dev/null +++ b/meme_generator/memes/tease/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6da2d686dc2a336421031ccf57bee1426cdb8c9efa21e8613974457833421dd9 +size 92222 diff --git a/meme_generator/memes/tease/images/13.png b/meme_generator/memes/tease/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..a04315319759f4b31814331638e5fbdd7f3f67b6 --- /dev/null +++ b/meme_generator/memes/tease/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:201feece5238736d06966c9c991dde4352512084f6297045248af89d8fac20a7 +size 94380 diff --git a/meme_generator/memes/tease/images/14.png b/meme_generator/memes/tease/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..d997243df7f71f34ce9b238f46ffc92aeef2bbca --- /dev/null +++ b/meme_generator/memes/tease/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92fcd602cd9d585d700c29f299877c696ccbc330ce1928fec5917d4e6911710e +size 93933 diff --git a/meme_generator/memes/tease/images/15.png b/meme_generator/memes/tease/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..4d50f71811a59e4fcf010dadbb542c2dc1dd2d70 --- /dev/null +++ b/meme_generator/memes/tease/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42073297a55d6e5c7fbf5ad7db913e84eb2a82760ca70f595690c6a5a4dd0edd +size 94001 diff --git a/meme_generator/memes/tease/images/16.png b/meme_generator/memes/tease/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..9e6cae8f3fdecb2a863f43dfec0244962b884d75 --- /dev/null +++ b/meme_generator/memes/tease/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c402516b2a9c07b6e1f8390f300f04cab934ef022b39ec6c654fc49c0ea420a +size 87718 diff --git a/meme_generator/memes/tease/images/17.png b/meme_generator/memes/tease/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..91a4fbf9da5badc49ca369ffb0e813704c3c1348 --- /dev/null +++ b/meme_generator/memes/tease/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98ae9ff826d54f8756fb6908fad2203e562d8371eab971d4a21039b7ca9a71b8 +size 85136 diff --git a/meme_generator/memes/tease/images/18.png b/meme_generator/memes/tease/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..27cd7b98dd5c959a36f6983686461f7ba28e1424 --- /dev/null +++ b/meme_generator/memes/tease/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8157153b3d70344412d5acd030e5b09b7e09c17f227bfefdf9b3fd197fd2054f +size 86565 diff --git a/meme_generator/memes/tease/images/19.png b/meme_generator/memes/tease/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0ee40cc7e03ca5be05491bd97ef38ab55c2ba6 --- /dev/null +++ b/meme_generator/memes/tease/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d4e7baeb5cf99c8138de9a66788628f686dcb73bf6f12a6432fc988e4d76c16 +size 88319 diff --git a/meme_generator/memes/tease/images/2.png b/meme_generator/memes/tease/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..7d542ce928f6de29bf633b73652eec7e0fac2763 --- /dev/null +++ b/meme_generator/memes/tease/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23e4ff7fbdb9d0236a2465a5a83d516154ee295af0727a1862a475307e699f12 +size 86784 diff --git a/meme_generator/memes/tease/images/20.png b/meme_generator/memes/tease/images/20.png new file mode 100644 index 0000000000000000000000000000000000000000..892078a18f00801266fb73fc430a4ca15524a911 --- /dev/null +++ b/meme_generator/memes/tease/images/20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1174c025829b3c05d4c90e211f85c5255c5080a78cd34b90fcf7a9889b3d32da +size 83821 diff --git a/meme_generator/memes/tease/images/21.png b/meme_generator/memes/tease/images/21.png new file mode 100644 index 0000000000000000000000000000000000000000..0d07c4a4b708159471701eaf6baaa09f0f37f010 --- /dev/null +++ b/meme_generator/memes/tease/images/21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2d4c216d19670d26ff4ea6332a6c605b57c9d7c6b8fc8dc45770cc127b89d2c +size 83479 diff --git a/meme_generator/memes/tease/images/22.png b/meme_generator/memes/tease/images/22.png new file mode 100644 index 0000000000000000000000000000000000000000..1d40b78d03cab6cbfbe3e6a6aa06008ea9419dca --- /dev/null +++ b/meme_generator/memes/tease/images/22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe4e8cbf7212009fae5516759808aaf5492e15f1bf4ae2d007420ff16a8ed8ae +size 87858 diff --git a/meme_generator/memes/tease/images/23.png b/meme_generator/memes/tease/images/23.png new file mode 100644 index 0000000000000000000000000000000000000000..e222931fa287c13d477c7d0e462c5684d7b578d8 --- /dev/null +++ b/meme_generator/memes/tease/images/23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35dc94493a05bc0e977cf78745126345a934c0e1c6915cddea77caaf0c94a514 +size 88998 diff --git a/meme_generator/memes/tease/images/3.png b/meme_generator/memes/tease/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e7992daf79a8f175c60bcdeaa7e46346b8a8844 --- /dev/null +++ b/meme_generator/memes/tease/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df14482b7872b927e0d4805d9ea5e146ed6659b1b8ced72b8c1c99fa36c8c5b3 +size 89349 diff --git a/meme_generator/memes/tease/images/4.png b/meme_generator/memes/tease/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..e192c7a59476c5495ee229147b111a5010b715f8 --- /dev/null +++ b/meme_generator/memes/tease/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03db719dcf0600eb39168548085f83ff9704eaaa84c42a2f92795c4cb2d4c04d +size 94690 diff --git a/meme_generator/memes/tease/images/5.png b/meme_generator/memes/tease/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..053a1950acb95125857a9184de509053d69fc450 --- /dev/null +++ b/meme_generator/memes/tease/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec6e0e6f408947ef015c1103baea032223e2746a4240c83c442605ade4cd4d1d +size 95916 diff --git a/meme_generator/memes/tease/images/6.png b/meme_generator/memes/tease/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d110a2eca92e8b5c7b0ac020467d6e83359db7 --- /dev/null +++ b/meme_generator/memes/tease/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83ba7db1b96c97e080dd6cb4030518d6e2158ea3e7deaed803b38c577d63e106 +size 90845 diff --git a/meme_generator/memes/tease/images/7.png b/meme_generator/memes/tease/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..d51c61b84d55ddff186a8f4df36ce207e5cf4bef --- /dev/null +++ b/meme_generator/memes/tease/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9699f55b9a44bf8033f251f27bcb35b5d4dbe1eeb1a132ba01488975bc0343eb +size 92110 diff --git a/meme_generator/memes/tease/images/8.png b/meme_generator/memes/tease/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..988ac67c360c94b886141d6700d2c1a0051a85e8 --- /dev/null +++ b/meme_generator/memes/tease/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e34a11d770de3e306bd7cd0f3a6df753b771c6af83cf15cb80b0b6c7c88fa2aa +size 91542 diff --git a/meme_generator/memes/tease/images/9.png b/meme_generator/memes/tease/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..739ec52ecb347def71a0d0177efed67fbcab68b8 --- /dev/null +++ b/meme_generator/memes/tease/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e2fc2facef3210bddcbb26ac77c29be0f7f278d2c9729e484228643ef207dbd +size 94330 diff --git a/meme_generator/memes/think_what/__init__.py b/meme_generator/memes/think_what/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8ec8609006b798412c5cae47c742bcd5ce6a7c02 --- /dev/null +++ b/meme_generator/memes/think_what/__init__.py @@ -0,0 +1,22 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def think_what(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize((534, 493), keep_ratio=True) + return frame.copy().paste(img, (530, 0), below=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme("think_what", think_what, min_images=1, max_images=1, keywords=["想什么"]) diff --git a/meme_generator/memes/think_what/images/0.png b/meme_generator/memes/think_what/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb22f59da4f10b8abdafdaa8e4f1251cb61b830 --- /dev/null +++ b/meme_generator/memes/think_what/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdcab00ed67fecb676375a6b3b0b33a28c14daadc7a63979454f5944c139ba8e +size 596963 diff --git a/meme_generator/memes/this_chicken/__init__.py b/meme_generator/memes/this_chicken/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..ac605a12bc2d4dfbbc198f3480e7fb553c7fd8c1 --- /dev/null +++ b/meme_generator/memes/this_chicken/__init__.py @@ -0,0 +1,45 @@ +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 this_chichen(images: List[BuildImage], texts, args): + text = texts[0] if texts else "这是十二生肖中的鸡" + img = images[0].convert("RGBA").resize((640, 640), keep_ratio=True) + + frame = BuildImage.open(img_dir / "0.png") + try: + frame.draw_text( + (0, 900, 1440, 1080), + text, + max_fontsize=80, + min_fontsize=40, + fill="white", + stroke_ratio=1 / 15, + stroke_fill="black", + ) + except ValueError: + raise TextOverLength(text) + frame.paste( + img.perspective(((507, 0), (940, 351), (383, 625), (0, 256))), + (201, 201), + below=True, + ) + return frame.save_jpg() + + +add_meme( + "this_chichen", + this_chichen, + min_images=1, + max_images=1, + max_texts=1, + default_texts=["这是十二生肖中的鸡"], + keywords=["这是鸡", "🐔"], +) diff --git a/meme_generator/memes/this_chicken/images/0.png b/meme_generator/memes/this_chicken/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f2ee32f1aef23e0d0c0bf0b66c95d98da78bf8 --- /dev/null +++ b/meme_generator/memes/this_chicken/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f65cb58d693ad0970c5198921a7f7fc14f7dec45f1a5bc6334ccd4d4a2de7bab +size 501460 diff --git a/meme_generator/memes/throw/__init__.py b/meme_generator/memes/throw/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3d87571753ae0766966f8b27f6d16ed78939db33 --- /dev/null +++ b/meme_generator/memes/throw/__init__.py @@ -0,0 +1,25 @@ +import random +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def throw(images: List[BuildImage], texts, args): + img = ( + images[0] + .convert("RGBA") + .circle() + .rotate(random.randint(1, 360)) + .resize((143, 143)) + ) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img, (15, 178), alpha=True) + return frame.save_jpg() + + +add_meme("throw", throw, min_images=1, max_images=1, keywords=["丢", "扔"]) diff --git a/meme_generator/memes/throw/images/0.png b/meme_generator/memes/throw/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..fa09218216db095c868fd0d31f6343b524ec935f --- /dev/null +++ b/meme_generator/memes/throw/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:823a411a1561e3a4a5b5a9de8a013fecf95c2970cc4268251389e4ad75b638c6 +size 180753 diff --git a/meme_generator/memes/throw_gif/__init__.py b/meme_generator/memes/throw_gif/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..da11e45e164f2d712a8e084f914b7b197d286668 --- /dev/null +++ b/meme_generator/memes/throw_gif/__init__.py @@ -0,0 +1,34 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 throw_gif(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").circle() + locs = [ + [(32, 32, 108, 36)], + [(32, 32, 122, 36)], + [], + [(123, 123, 19, 129)], + [(185, 185, -50, 200), (33, 33, 289, 70)], + [(32, 32, 280, 73)], + [(35, 35, 259, 31)], + [(175, 175, -50, 220)], + ] + frames: List[IMG] = [] + for i in range(8): + frame = BuildImage.open(img_dir / f"{i}.png") + for w, h, x, y in locs[i]: + frame.paste(img.resize((w, h)), (x, y), alpha=True) + frames.append(frame.image) + return save_gif(frames, 0.1) + + +add_meme("throw_gif", throw_gif, min_images=1, max_images=1, keywords=["抛", "掷"]) diff --git a/meme_generator/memes/throw_gif/images/0.png b/meme_generator/memes/throw_gif/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..a29a5c6564bd5f33d7ef656c09f3b73d0bf20856 --- /dev/null +++ b/meme_generator/memes/throw_gif/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2b522773598230936dc525fd52a233ce659b8f64569c52b01d6caa0de71ab7d +size 58536 diff --git a/meme_generator/memes/throw_gif/images/1.png b/meme_generator/memes/throw_gif/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..86f6b5352e6cb2e009e27755aad6aaa36fff078e --- /dev/null +++ b/meme_generator/memes/throw_gif/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03bea8f79c13dfa831a946527d3a08c2f51bed1eba81e753c1f4e02f262ee415 +size 59935 diff --git a/meme_generator/memes/throw_gif/images/2.png b/meme_generator/memes/throw_gif/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..689be0112effa3623b8fca9c6db864716a93e415 --- /dev/null +++ b/meme_generator/memes/throw_gif/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e495693e36202029d7f6d0246fa0da8e385d2586521f550c23576a9242049a3c +size 58531 diff --git a/meme_generator/memes/throw_gif/images/3.png b/meme_generator/memes/throw_gif/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..b0c1f2fba7c2a03e0ab93d1556d99cb9059e04ad --- /dev/null +++ b/meme_generator/memes/throw_gif/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3db6cb0dd07ce726cc651af1ec0a7d490dae85dd2bff2ac7c05b49536841269 +size 61649 diff --git a/meme_generator/memes/throw_gif/images/4.png b/meme_generator/memes/throw_gif/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..6d3a3c497f1b42d8ab3a77efec14c0845f1b804d --- /dev/null +++ b/meme_generator/memes/throw_gif/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539555baf57d0ed41572a99d02ee9c4f01e75c2c6abdc013825f864ad02dc043 +size 56738 diff --git a/meme_generator/memes/throw_gif/images/5.png b/meme_generator/memes/throw_gif/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..fd075657f8742e4c153b7ccb2bc25756c1835001 --- /dev/null +++ b/meme_generator/memes/throw_gif/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf7ef1ab9694fb2ff4633235728309903ab0829e68969bc2b6dee51e83c7e42e +size 58804 diff --git a/meme_generator/memes/throw_gif/images/6.png b/meme_generator/memes/throw_gif/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..0c849beac2e2f64fc6ab42968f235b3a2f9173cc --- /dev/null +++ b/meme_generator/memes/throw_gif/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c746c8c0ce28f68745a8eb1124bb885e42fc7b7413fbf225594681128020cea +size 60018 diff --git a/meme_generator/memes/throw_gif/images/7.png b/meme_generator/memes/throw_gif/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2500ae2b7adda0e106955669fb94b81818bed3 --- /dev/null +++ b/meme_generator/memes/throw_gif/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2187ce7f838fad5a8f1d148e783f04d9b8732198850364f6d6742b235259a230 +size 57635 diff --git a/meme_generator/memes/thump/__init__.py b/meme_generator/memes/thump/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..240be22c7dc9cca48849a5aafe2053212fe14a6c --- /dev/null +++ b/meme_generator/memes/thump/__init__.py @@ -0,0 +1,27 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 thump(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square() + # fmt: off + locs = [(65, 128, 77, 72), (67, 128, 73, 72), (54, 139, 94, 61), (57, 135, 86, 65)] + # fmt: on + frames: List[IMG] = [] + for i in range(4): + frame = BuildImage.open(img_dir / f"{i}.png") + x, y, w, h = locs[i] + frame.paste(img.resize((w, h)), (x, y), below=True) + frames.append(frame.image) + return save_gif(frames, 0.04) + + +add_meme("thump", thump, min_images=1, max_images=1, keywords=["捶"]) diff --git a/meme_generator/memes/thump/images/0.png b/meme_generator/memes/thump/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..af1582840ad0e2f630fda774dc9f85a54773a82c --- /dev/null +++ b/meme_generator/memes/thump/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27131deca1cd212f482a2da246a0fec7b0b3dad9b3e8bab6ed6ecb0191e0550b +size 20938 diff --git a/meme_generator/memes/thump/images/1.png b/meme_generator/memes/thump/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..f5e2669f1046db3132ac0d76b4535632ade7be03 --- /dev/null +++ b/meme_generator/memes/thump/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1ef6443c675dd3157f8533a9ea6fae90a946cf3185dec847191319b1ebfd048 +size 21164 diff --git a/meme_generator/memes/thump/images/2.png b/meme_generator/memes/thump/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..6771a34cbb6735fabc3bbe5589395abf3c72e4b8 --- /dev/null +++ b/meme_generator/memes/thump/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:635400d008152da1b6f632d8e980af2de7c0fcee3e836a4e8c54ea53fc9b81aa +size 21144 diff --git a/meme_generator/memes/thump/images/3.png b/meme_generator/memes/thump/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..7d0683d6ee95b8ee72493a5e88abbe759cb7b7b0 --- /dev/null +++ b/meme_generator/memes/thump/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de49e963275450953ac9b85d79d5b4aff58a7232bdad28d7e30ccb0b7a09a062 +size 21151 diff --git a/meme_generator/memes/thump_wildly/__init__.py b/meme_generator/memes/thump_wildly/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..bd77f0b83fa2e2f7801e1663b9b8a49c88f5dc55 --- /dev/null +++ b/meme_generator/memes/thump_wildly/__init__.py @@ -0,0 +1,26 @@ +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 thump_wildly(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((122, 122), keep_ratio=True) + raw_frames = [BuildImage.open(img_dir / f"{i}.png") for i in range(31)] + for i in range(14): + raw_frames[i].paste(img, (203, 196), below=True) + raw_frames[14].paste(img, (207, 239), below=True) + frames = [frame.image for frame in raw_frames] + for i in range(6): + frames.append(frames[0]) + return save_gif(frames, 0.04) + + +add_meme( + "thump_wildly", thump_wildly, min_images=1, max_images=1, keywords=["捶爆", "爆捶"] +) diff --git a/meme_generator/memes/thump_wildly/images/0.png b/meme_generator/memes/thump_wildly/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..b7878b86534cb0cc0e32d847e4d830e45deb6d69 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1136d818ea859e071bf4a57b09752daed68fc6cdd029884760d704d6b014769 +size 38920 diff --git a/meme_generator/memes/thump_wildly/images/1.png b/meme_generator/memes/thump_wildly/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d64cb6488e45eebf4d2bffa04ff1368a3a6cf8f --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4c7333f2b2794eb8f6e769ddf1124b730ad099aa835d8f2c1149e0b7e2a2774 +size 39666 diff --git a/meme_generator/memes/thump_wildly/images/10.png b/meme_generator/memes/thump_wildly/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..110d29b45749d0efda8da5771a4b5854994ed77a --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:595cb6f519e0b8ec911f1e0dff8fb27c76de282db5c4f92f925def0aefa79f01 +size 42372 diff --git a/meme_generator/memes/thump_wildly/images/11.png b/meme_generator/memes/thump_wildly/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..d03db66e370778cc26eec8f04dd17e7d88ae70c0 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaec64d9fe1ea57c50732d5e2be723395c10c141e215bd1532f7026ecb11d2dc +size 42433 diff --git a/meme_generator/memes/thump_wildly/images/12.png b/meme_generator/memes/thump_wildly/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..358473a8caa257e5f5ba3c6f5d9d91cb9c55c45b --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:271ebe92f565357ce373856590f9e528022144014459e4bf48a0f5c5ed45dab4 +size 42707 diff --git a/meme_generator/memes/thump_wildly/images/13.png b/meme_generator/memes/thump_wildly/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..59faa5d62c4bc44500dfff586a849fc7194dd608 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c774843cf836116179181489d7cf81df3332a3ded90d12433cb4a0fed2b4c7f +size 41547 diff --git a/meme_generator/memes/thump_wildly/images/14.png b/meme_generator/memes/thump_wildly/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..3818d3a646473f27fb6103211db6ebf71544ce28 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77becfb0ab681b859b736a0d48d44db35d8b40aeebe1c4de9f155a56e26f972a +size 44496 diff --git a/meme_generator/memes/thump_wildly/images/15.png b/meme_generator/memes/thump_wildly/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..1564b1f05a9cdeb89526648127e2e414b25585a7 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c459f1041801f80440be772fefa1a948a412f66ab5b2c37baae774f0b0b44f5a +size 70185 diff --git a/meme_generator/memes/thump_wildly/images/16.png b/meme_generator/memes/thump_wildly/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..5f729be9590b99c9a83e4eb0be1c925b414e7a07 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d61337b8dff8833b3f98f8dd71d2aefd2dcb5b3cba7468ffe98d7ce5bb3a00c6 +size 71106 diff --git a/meme_generator/memes/thump_wildly/images/17.png b/meme_generator/memes/thump_wildly/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..2f5876704a2d6f64a0eb5094eb41402a9dc2a8fb --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3cea56bf11d622054cc7ad033845a22926b6795b1cc04b1d954f1510418087e +size 70732 diff --git a/meme_generator/memes/thump_wildly/images/18.png b/meme_generator/memes/thump_wildly/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..4573af9ffee833a027cbcc7039191393490e23f1 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:228ceaa820b34031296fa699f53cc78ea01c648b683e352258611c69027b5ae2 +size 72102 diff --git a/meme_generator/memes/thump_wildly/images/19.png b/meme_generator/memes/thump_wildly/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..dee3ea8809a7a5434f2f8baab02e23ac217aca57 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f48fa5730bb25e4e0f177907f87cf6f70e8583831bf42d4967a44b6e1452881 +size 72480 diff --git a/meme_generator/memes/thump_wildly/images/2.png b/meme_generator/memes/thump_wildly/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..a328df7043f8e7584648279366010b9b00d766ad --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85393067300e82981a0fc4b118b747d0a0759c4bf575ce1c1f9ae57ee6fe03ca +size 38551 diff --git a/meme_generator/memes/thump_wildly/images/20.png b/meme_generator/memes/thump_wildly/images/20.png new file mode 100644 index 0000000000000000000000000000000000000000..26e5eb5f6f825b395df1cf76f79e3fd3547ee484 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34b38f986a273ef612f7a518d970402c44301d06e581345ecadef3ff9db7a74e +size 73897 diff --git a/meme_generator/memes/thump_wildly/images/21.png b/meme_generator/memes/thump_wildly/images/21.png new file mode 100644 index 0000000000000000000000000000000000000000..abffa7a210942f79a0b01026af89ffc2a0845951 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e9a2886d131ffd88e7bb2f2fbcffcddd1cf2687889aacda346454adce47e602 +size 75945 diff --git a/meme_generator/memes/thump_wildly/images/22.png b/meme_generator/memes/thump_wildly/images/22.png new file mode 100644 index 0000000000000000000000000000000000000000..518ed8be179506bab00b2ac94f1aae39332624d0 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcf7b9dbcb71ae3a632ff0a0a052bdbfb551a13014f13d3283a1b7c6d08d4a2d +size 77228 diff --git a/meme_generator/memes/thump_wildly/images/23.png b/meme_generator/memes/thump_wildly/images/23.png new file mode 100644 index 0000000000000000000000000000000000000000..b872dbfe34eb0932ee17df3698964310c96be2f0 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e8f0eb3e1d138bff8220ed8ba04cf55e1959389717d8249c62088aa8179b665 +size 75289 diff --git a/meme_generator/memes/thump_wildly/images/24.png b/meme_generator/memes/thump_wildly/images/24.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a42041cfcb12f8ddf2544e0efb11bad6ad0984 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/24.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79c37692bb668df03db69cf9585b53eac08e54537591c4ae562248568359198f +size 72710 diff --git a/meme_generator/memes/thump_wildly/images/25.png b/meme_generator/memes/thump_wildly/images/25.png new file mode 100644 index 0000000000000000000000000000000000000000..fe2dbbcb9ead1ef778e64dd77a0a89068328ca05 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/25.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cbd338810505684cd8d17890c28fd153d3ea230a5851f987a8ad92a0f98ba14 +size 76435 diff --git a/meme_generator/memes/thump_wildly/images/26.png b/meme_generator/memes/thump_wildly/images/26.png new file mode 100644 index 0000000000000000000000000000000000000000..c62ee3d24c56bbbacc618bf0f07283e94f7b2589 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/26.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:932e1edd8cc08d3a751f8f217e0b285d77627d36ea20ab43909049e4052a86a1 +size 78824 diff --git a/meme_generator/memes/thump_wildly/images/27.png b/meme_generator/memes/thump_wildly/images/27.png new file mode 100644 index 0000000000000000000000000000000000000000..d54f4a5e123028f66dbab0d51cbbf93f9ad7f838 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/27.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:452ca944781dd535401078cf55f3af6ea21c8cbdcca7fbb1fb18a8f118d0b2b0 +size 77594 diff --git a/meme_generator/memes/thump_wildly/images/28.png b/meme_generator/memes/thump_wildly/images/28.png new file mode 100644 index 0000000000000000000000000000000000000000..71e1184021bb3a70ebfecaa4ac475611e1eb3bf5 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/28.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e9d0ead0166c99357077b16156ba3dbd69205281683b02b8d6ad5e9784801e5 +size 76763 diff --git a/meme_generator/memes/thump_wildly/images/29.png b/meme_generator/memes/thump_wildly/images/29.png new file mode 100644 index 0000000000000000000000000000000000000000..f8045f0842bc0d0d8315129f9a2349a6d8325054 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/29.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46e2ad88f5265d6323f06e0e7c35a03abea101e4d91850571ee54ef8ed165b50 +size 76297 diff --git a/meme_generator/memes/thump_wildly/images/3.png b/meme_generator/memes/thump_wildly/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..9f77c2d08c18004636b7f3aed672b7e3546b55d9 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73723bcfd1d89890e206567530c1c881c31524d50a4fe32cca68d7d2488ed4c9 +size 40100 diff --git a/meme_generator/memes/thump_wildly/images/30.png b/meme_generator/memes/thump_wildly/images/30.png new file mode 100644 index 0000000000000000000000000000000000000000..1a8d8addaf55085447e70101d533c16ffd67efe4 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/30.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c383fed06de3d07d28bb534f8669ec482dcfd525bf7c71e15deb83e695d043e +size 76530 diff --git a/meme_generator/memes/thump_wildly/images/4.png b/meme_generator/memes/thump_wildly/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..1bd777e2f19228ca0c17c7dda7c53d1f0c7e2c15 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e2ed3251cd2000364df07c5902f28d90f9d27642775a59a0e0bb5203ec4dbf5 +size 39665 diff --git a/meme_generator/memes/thump_wildly/images/5.png b/meme_generator/memes/thump_wildly/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..da87e42fa47fab70f0c9b88baebdf397e88b67f3 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cb89b4c5a69614b0b8657db2f2eb9b80faabfd7b864230f260146a2886431cd +size 40410 diff --git a/meme_generator/memes/thump_wildly/images/6.png b/meme_generator/memes/thump_wildly/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..d27d8cf6e1c80a56686ab12c518182fd3ed525b3 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4f76a122b5a63a374cf9a2246c141cbe25c1a46a363ace0a563dd8c2ca229ba +size 42500 diff --git a/meme_generator/memes/thump_wildly/images/7.png b/meme_generator/memes/thump_wildly/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..e83087f82553577d2b433b78849b2e67ee82916a --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:370c2747274916389ef26d082eb19f9834f29b4c251ef9b2775be0da4ab5b26a +size 42823 diff --git a/meme_generator/memes/thump_wildly/images/8.png b/meme_generator/memes/thump_wildly/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..237a70353744940a74125a92e2a1f20be60989a5 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af36245114d689015ac173e116866a960153fb5b655d8dcd360654f29ab0224f +size 43308 diff --git a/meme_generator/memes/thump_wildly/images/9.png b/meme_generator/memes/thump_wildly/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..c3cd6eabf019c6c2766bd44be87b036aec3d90f1 --- /dev/null +++ b/meme_generator/memes/thump_wildly/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d78d2404d532acbbf5f99ede2cf328047a9b90104e888d538360058ca5f6a580 +size 42947 diff --git a/meme_generator/memes/tightly/__init__.py b/meme_generator/memes/tightly/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3c5270a4547e375d4b754f0b98b850f01f0aae4c --- /dev/null +++ b/meme_generator/memes/tightly/__init__.py @@ -0,0 +1,30 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 tightly(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((640, 400), keep_ratio=True) + # fmt: off + locs = [(39, 169, 267, 141), (40, 167, 264, 143), (38, 174, 270, 135), (40, 167, 264, 143), (38, 174, 270, 135), + (40, 167, 264, 143), (38, 174, 270, 135), (40, 167, 264, 143), (38, 174, 270, 135), (28, 176, 293, 134), + (5, 215, 333, 96), (10, 210, 321, 102), (3, 210, 330, 104), (4, 210, 328, 102), (4, 212, 328, 100), + (4, 212, 328, 100), (4, 212, 328, 100), (4, 212, 328, 100), (4, 212, 328, 100), (29, 195, 285, 120)] + # fmt: on + frames: List[IMG] = [] + for i in range(20): + frame = BuildImage.open(img_dir / f"{i}.png") + x, y, w, h = locs[i] + frame.paste(img.resize((w, h)), (x, y), below=True) + frames.append(frame.image) + return save_gif(frames, 0.08) + + +add_meme("tightly", tightly, min_images=1, max_images=1, keywords=["紧贴", "紧紧贴着"]) diff --git a/meme_generator/memes/tightly/images/0.png b/meme_generator/memes/tightly/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..26699946988286b8a3b67059e78f2b7cd7508aaf --- /dev/null +++ b/meme_generator/memes/tightly/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8431f8979885bc3799cdb24f826e2f9425f44be165eaae7ea0cea4992d690bc8 +size 66821 diff --git a/meme_generator/memes/tightly/images/1.png b/meme_generator/memes/tightly/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..a0ebed36f16312b17e404704a3a0e89e5a4119bd --- /dev/null +++ b/meme_generator/memes/tightly/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:521659eb5111d12b47cc6f23744c1f670ea74a1a373b5f9323acc7c319d3d781 +size 69996 diff --git a/meme_generator/memes/tightly/images/10.png b/meme_generator/memes/tightly/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..2470d2a74c990153f33f924a6ca270bfe4b0b282 --- /dev/null +++ b/meme_generator/memes/tightly/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f23a77f6a2432a0c7dc717206a10993af9eaf7c5d9ddba1b2665b7a2cf9ec7ef +size 51295 diff --git a/meme_generator/memes/tightly/images/11.png b/meme_generator/memes/tightly/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..91a2dadaa194d95e1b1199ad3aae97b2fbdd7c93 --- /dev/null +++ b/meme_generator/memes/tightly/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b45c823429169ec025dd75f34ffd20f8a4cd605a0b046fe71867defdca68d6e1 +size 50260 diff --git a/meme_generator/memes/tightly/images/12.png b/meme_generator/memes/tightly/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..5cb5a137feed246566d2891774d6a790cb572c2c --- /dev/null +++ b/meme_generator/memes/tightly/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a5fb7f3acab007b421c1e8f8ff35656b701be3924e4b43750160510a2e414ee +size 46719 diff --git a/meme_generator/memes/tightly/images/13.png b/meme_generator/memes/tightly/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..eae12c92839ffe93133009188a79af0d7d01f395 --- /dev/null +++ b/meme_generator/memes/tightly/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebf9d842ece00240b3f71dd67980ddc14a3daf94c3fe83450ec3f9fdb4cf7a21 +size 47240 diff --git a/meme_generator/memes/tightly/images/14.png b/meme_generator/memes/tightly/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..39d5c3ce2721445bcff05d152edaaad130cadde2 --- /dev/null +++ b/meme_generator/memes/tightly/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed540e73dacc91a2876ad48ce937f042525d0496c487472f4986ed59e6626ec3 +size 47112 diff --git a/meme_generator/memes/tightly/images/15.png b/meme_generator/memes/tightly/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..9c8fd427e6afd3880d9d3c8b0f25fda615723308 --- /dev/null +++ b/meme_generator/memes/tightly/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d89991c1fb3943cecb7aaf38cc4c1f3b0559f5358fa0a69e076400a0b42faf23 +size 49390 diff --git a/meme_generator/memes/tightly/images/16.png b/meme_generator/memes/tightly/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..c8ee5de38a4e7819c7500171ff6cb3d37aefd3f5 --- /dev/null +++ b/meme_generator/memes/tightly/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ca391bee7625f20a1b904a54181e6313c9165f807b87f38edb7104970dacd06 +size 50476 diff --git a/meme_generator/memes/tightly/images/17.png b/meme_generator/memes/tightly/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..8bf5d363af56c86c8c168235faceba0842ba51c4 --- /dev/null +++ b/meme_generator/memes/tightly/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9226aa81283645d1fbd2e1b81c005f42d286b876e22fa33e81cf3f051b765406 +size 48733 diff --git a/meme_generator/memes/tightly/images/18.png b/meme_generator/memes/tightly/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ea3fa118d2c6b476c02177be3159d8bfb6523b --- /dev/null +++ b/meme_generator/memes/tightly/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73e621f821c9aa023d454aadef4701e9e34cf1b399919282910f7f667c6d6471 +size 49557 diff --git a/meme_generator/memes/tightly/images/19.png b/meme_generator/memes/tightly/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..cb9949e9871b96e5f86803f0b7838d5cf4f0f198 --- /dev/null +++ b/meme_generator/memes/tightly/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a506a604e213073e56aef3f4b315c51827b944920ddf44d339c6c1336754a5b1 +size 53970 diff --git a/meme_generator/memes/tightly/images/2.png b/meme_generator/memes/tightly/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..3f021be0b3ca8476f4b8d7151c828e9027ecdcb0 --- /dev/null +++ b/meme_generator/memes/tightly/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b0b202ac4423d005f7cbc40528173fa631711cba01e2250b330dd8a98ae25b4 +size 66253 diff --git a/meme_generator/memes/tightly/images/3.png b/meme_generator/memes/tightly/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..9be2b0540d6d5f4795a6dc4eba1e7f3b7c974ebc --- /dev/null +++ b/meme_generator/memes/tightly/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e50c6bf48008f33bfcc5cde96053fc65e40b24d92f37fff3f5dff69753da58ea +size 70081 diff --git a/meme_generator/memes/tightly/images/4.png b/meme_generator/memes/tightly/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..89cecd04dc54b71ca6b5c53dc3ee016133c54169 --- /dev/null +++ b/meme_generator/memes/tightly/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:811105c9664197f15ef4e120cc25f4805e3869e88b1461318e32b85a79a69b36 +size 66239 diff --git a/meme_generator/memes/tightly/images/5.png b/meme_generator/memes/tightly/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3324146b54cb85e422437caef3194e7228e9ea --- /dev/null +++ b/meme_generator/memes/tightly/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e98855d4c64bfdf6d6bdee194ae1b7acc01ef87c4ad1d1914f19c34287466a9a +size 70160 diff --git a/meme_generator/memes/tightly/images/6.png b/meme_generator/memes/tightly/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8a738841a2d933842d68a607b2a87d5424d05e --- /dev/null +++ b/meme_generator/memes/tightly/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2de6334e8a723ef53e33c4525e8092f2ffb86e139dc53fdb7a090a2ba674bad4 +size 66220 diff --git a/meme_generator/memes/tightly/images/7.png b/meme_generator/memes/tightly/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..05185f3d2a5ac2951deb954eb924fbb7fac2cb27 --- /dev/null +++ b/meme_generator/memes/tightly/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c7ae8f71023f80cb0e7c7c7fbc2fa7b0e4b3e4062b146a2f745c0c0d59b6b97 +size 70101 diff --git a/meme_generator/memes/tightly/images/8.png b/meme_generator/memes/tightly/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..09bae55bb377d8c5133f1d48aeaa6f44bbe6fb98 --- /dev/null +++ b/meme_generator/memes/tightly/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4052d424f9055fde14eda0cf528f3e58e587748e5ee6d9e5d447562a4fcff4d5 +size 66248 diff --git a/meme_generator/memes/tightly/images/9.png b/meme_generator/memes/tightly/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..b2bfc1336223f83e07864e8662b1537ccd3aa1b6 --- /dev/null +++ b/meme_generator/memes/tightly/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1ec0ab6bec22f25a2c96d4ca2bb5275941fb6c1d7a48a69e0719adc2a8e1a4e +size 56049 diff --git a/meme_generator/memes/together/__init__.py b/meme_generator/memes/together/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f8023e19c585ff32a83c6a057b031e8ff1a651c5 --- /dev/null +++ b/meme_generator/memes/together/__init__.py @@ -0,0 +1,44 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import MemeArgsModel, add_meme +from meme_generator.exception import TextOverLength +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def together(images: List[BuildImage], texts: List[str], args: MemeArgsModel): + frame = BuildImage.open(img_dir / "0.png") + name = args.user_infos[0].name if args.user_infos else "" + text = texts[0] if texts else f"一起玩{name}吧!" + try: + frame.draw_text( + (10, 140, 190, 190), + text, + weight="bold", + max_fontsize=50, + min_fontsize=10, + allow_wrap=True, + ) + except ValueError: + raise TextOverLength(text) + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize((63, 63), keep_ratio=True) + return frame.copy().paste(img, (132, 36), alpha=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme( + "together", + together, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + keywords=["一起"], +) diff --git a/meme_generator/memes/together/images/0.png b/meme_generator/memes/together/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb49b45c2b1d22ad0ae2666bee72cbe0d25ac77 --- /dev/null +++ b/meme_generator/memes/together/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:106f3262b0e6528ed8fa859d9faf5de764d9ab5be9110b366874e2e2e6fe1c76 +size 17053 diff --git a/meme_generator/memes/tomb_yeah/__init__.py b/meme_generator/memes/tomb_yeah/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6796027738f5916e724e7f422a2c2233d1cbbbf5 --- /dev/null +++ b/meme_generator/memes/tomb_yeah/__init__.py @@ -0,0 +1,25 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def tomb_yeah(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.jpg").convert("RGBA") + frame.paste( + images[0].convert("RGBA").circle().resize((145, 145)), (138, 265), alpha=True + ) + if len(images) > 1: + frame.paste( + images[1].convert("RGBA").circle().rotate(30).resize((145, 145)), + (371, 312), + alpha=True, + ) + return frame.save_jpg() + + +add_meme("tomb_yeah", tomb_yeah, min_images=1, max_images=2, keywords=["上坟", "坟前比耶"]) diff --git a/meme_generator/memes/tomb_yeah/images/0.jpg b/meme_generator/memes/tomb_yeah/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9046d9bb35db24ab1a6cdc179d7dad3ce8b0e95b Binary files /dev/null and b/meme_generator/memes/tomb_yeah/images/0.jpg differ diff --git a/meme_generator/memes/trance/__init__.py b/meme_generator/memes/trance/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0f46aa47e88469ace40a76dc2e0da0d307b4836d --- /dev/null +++ b/meme_generator/memes/trance/__init__.py @@ -0,0 +1,23 @@ +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + + +def trance(images: List[BuildImage], texts, args): + img = images[0] + width, height = img.size + height1 = int(1.1 * height) + frame = BuildImage.new("RGB", (width, height1), "white") + frame.paste(img, (0, int(height * 0.1))) + img.image.putalpha(3) + for i in range(int(height * 0.1), 0, -1): + frame.paste(img, (0, i), alpha=True) + for i in range(int(height * 0.1), int(height * 0.1 * 2)): + frame.paste(img, (0, i), alpha=True) + frame = frame.crop((0, int(0.1 * height), width, height1)) + return frame.save_jpg() + + +add_meme("trance", trance, min_images=1, max_images=1, keywords=["恍惚"]) diff --git a/meme_generator/memes/turn/__init__.py b/meme_generator/memes/turn/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..398409165a0e07cb16d4cdc1c01bdf1586105f4d --- /dev/null +++ b/meme_generator/memes/turn/__init__.py @@ -0,0 +1,23 @@ +import random +from typing import List + +from PIL.Image import Image as IMG +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import save_gif + + +def turn(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").circle() + frames: List[IMG] = [] + for i in range(0, 360, 10): + frame = BuildImage.new("RGBA", (250, 250), "white") + frame.paste(img.rotate(i).resize((250, 250)), alpha=True) + frames.append(frame.image) + if random.randint(0, 1): + frames.reverse() + return save_gif(frames, 0.05) + + +add_meme("turn", turn, min_images=1, max_images=1, keywords=["转"]) diff --git a/meme_generator/memes/twist/__init__.py b/meme_generator/memes/twist/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..39b7228c745d3763064923f12f5ddf4c8796fa07 --- /dev/null +++ b/meme_generator/memes/twist/__init__.py @@ -0,0 +1,30 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 twist(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").square().resize((78, 78)) + # fmt: off + locs = [ + (25, 66, 0), (25, 66, 60), (23, 68, 120), + (20, 69, 180), (22, 68, 240), (25, 66, 300) + ] + # fmt: on + frames: List[IMG] = [] + for i in range(5): + frame = BuildImage.open(img_dir / f"{i}.png") + x, y, a = locs[i] + frame.paste(img.rotate(a), (x, y), below=True) + frames.append(frame.image) + return save_gif(frames, 0.1) + + +add_meme("twist", twist, min_images=1, max_images=1, keywords=["搓"]) diff --git a/meme_generator/memes/twist/images/0.png b/meme_generator/memes/twist/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..49d149a9617fd1a6ca6e5cc569935d9ba37005aa --- /dev/null +++ b/meme_generator/memes/twist/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dd9e97e68522b6def8806e458c4e939e4ff405cd4fab94ad3b16cc09a20b1ef +size 28492 diff --git a/meme_generator/memes/twist/images/1.png b/meme_generator/memes/twist/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..e62d1d29f572d91d796f285360c6badba35ec074 --- /dev/null +++ b/meme_generator/memes/twist/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c97aa05ffe6105f76dcfb4e5c6d7be414eda70b70f7e565fdfd5567ae1d4c63e +size 28313 diff --git a/meme_generator/memes/twist/images/2.png b/meme_generator/memes/twist/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6b05e30a5b56d55eb5be605dac4fbcee07db2d --- /dev/null +++ b/meme_generator/memes/twist/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a48424e68cfcd5758297bdd20a37cb096c1a2d370a50cce806e08b9219c386fb +size 28435 diff --git a/meme_generator/memes/twist/images/3.png b/meme_generator/memes/twist/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..0cd597885d64e7dc5546332282f82f8781dddef9 --- /dev/null +++ b/meme_generator/memes/twist/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f0b334de0087873a00d3d43f4999304b5d277dfa138cae1962d1af4c5e7f7ab +size 28635 diff --git a/meme_generator/memes/twist/images/4.png b/meme_generator/memes/twist/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..23b95925bba776dffa2c5a5f97ca02ae9846562d --- /dev/null +++ b/meme_generator/memes/twist/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a78ca4801bf31e41af11036e1b503bb58e30d6e694851096c1eef6a4f2b1f197 +size 28468 diff --git a/meme_generator/memes/universal/__init__.py b/meme_generator/memes/universal/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..a0990a96ed6e94e3b62e203ea823f05ffbbc4759 --- /dev/null +++ b/meme_generator/memes/universal/__init__.py @@ -0,0 +1,42 @@ +from typing import List + +from pil_utils import BuildImage, Text2Image + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + + +def universal(images: List[BuildImage], texts: List[str], args): + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize_width(500) + frames: List[BuildImage] = [img] + for text in texts: + text_img = BuildImage( + Text2Image.from_bbcode_text(text, fontsize=45, align="center") + .wrap(480) + .to_image() + ) + frames.append(text_img.resize_canvas((500, text_img.height))) + + frame = BuildImage.new( + "RGBA", (500, sum(f.height for f in frames) + 10), "white" + ) + current_h = 0 + for f in frames: + frame.paste(f, (0, current_h), alpha=True) + current_h += f.height + return frame + + return make_jpg_or_gif(images[0], make) + + +add_meme( + "universal", + universal, + min_images=1, + max_images=1, + min_texts=1, + max_texts=10, + default_texts=["在此处添加文字"], + keywords=["万能表情", "空白表情"], +) diff --git a/meme_generator/memes/vibrate/__init__.py b/meme_generator/memes/vibrate/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f09639741c1a1d9a6cbd8b1585c6f5661f324a4e --- /dev/null +++ b/meme_generator/memes/vibrate/__init__.py @@ -0,0 +1,35 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import FrameAlignPolicy, Maker, make_gif_or_combined_gif + +img_dir = Path(__file__).parent / "images" + + +def vibrate(images: List[BuildImage], texts, args): + def maker(i: int) -> Maker: + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").square() + w = img.size[0] + locs = [ + (0, 0), + (w // 25, w // 25), + (w // 50, w // 50), + (0, w // 25), + (w // 25, 0), + ] + frame = BuildImage.new("RGBA", (w + w // 25, w + w // 25), "white") + frame.paste(img, locs[i], alpha=True) + return frame + + return make + + return make_gif_or_combined_gif( + images[0], maker, 5, 0.05, FrameAlignPolicy.extend_loop + ) + + +add_meme("vibrate", vibrate, min_images=1, max_images=1, keywords=["震动"]) diff --git a/meme_generator/memes/wakeup/__init__.py b/meme_generator/memes/wakeup/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..ee0a7728e64bee200cdc29ca85e4116404e48989 --- /dev/null +++ b/meme_generator/memes/wakeup/__init__.py @@ -0,0 +1,33 @@ +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 wakeup(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.jpg") + try: + frame.draw_text((310, 270, 460, 380), text, max_fontsize=90, min_fontsize=50) + except ValueError: + raise TextOverLength(text) + frame.draw_text( + (50, 610, 670, 720), f"{text}起来了", max_fontsize=110, min_fontsize=70 + ) + return frame.save_jpg() + + +add_meme( + "wakeup", + wakeup, + min_texts=1, + max_texts=1, + default_texts=["好"], + keywords=["xx起来了"], + patterns=[r"(.+?)\s+起来了"], +) diff --git a/meme_generator/memes/wakeup/images/0.jpg b/meme_generator/memes/wakeup/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a0282f22ad44881919741991415e0fa46045660 Binary files /dev/null and b/meme_generator/memes/wakeup/images/0.jpg differ diff --git a/meme_generator/memes/wallpaper/__init__.py b/meme_generator/memes/wallpaper/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..700af86d7b34769f24d12a188845ab987703ed37 --- /dev/null +++ b/meme_generator/memes/wallpaper/__init__.py @@ -0,0 +1,25 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 wallpaper(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((515, 383), keep_ratio=True) + frames: List[IMG] = [] + for i in range(8): + frames.append(BuildImage.open(img_dir / f"{i}.png").image) + for i in range(8, 20): + frame = BuildImage.open(img_dir / f"{i}.png") + frame.paste(img, (176, -9), below=True) + frames.append(frame.image) + return save_gif(frames, 0.07) + + +add_meme("wallpaper", wallpaper, min_images=1, max_images=1, keywords=["墙纸"]) diff --git a/meme_generator/memes/wallpaper/images/0.png b/meme_generator/memes/wallpaper/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..1440f309bf2a16d1ced0f0045ce2c8f0edadca7f --- /dev/null +++ b/meme_generator/memes/wallpaper/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e7416954f05fa54daf73a7b5b5ccc6c46153c2c1aac65bb3e3b1807d8e66598 +size 115254 diff --git a/meme_generator/memes/wallpaper/images/1.png b/meme_generator/memes/wallpaper/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..21fcb9ec6c80d6dbcf0a54745fde4c762b7c46b6 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6015acd7952a5e2ab0652d66e2f3f43084265d8e4e2cd91a3ddda7dd525c5abd +size 133404 diff --git a/meme_generator/memes/wallpaper/images/10.png b/meme_generator/memes/wallpaper/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..af07b496342aeda4e675534451e473e47a77864b --- /dev/null +++ b/meme_generator/memes/wallpaper/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94bd737eda6bd033fe4bda51f49a22e4a7ea3d00e7a22c652cd2a108f70b63be +size 137294 diff --git a/meme_generator/memes/wallpaper/images/11.png b/meme_generator/memes/wallpaper/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..8139f3d2a9911223d6e965c4d40e637ad0a4c58a --- /dev/null +++ b/meme_generator/memes/wallpaper/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1355efc327c9544e58ae7d22c73035ffa8bd861315e248b4ff32acbc9c4ea50c +size 162197 diff --git a/meme_generator/memes/wallpaper/images/12.png b/meme_generator/memes/wallpaper/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..e82348c66fa4d7729d68681f3765f64b61179105 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bec10dca455480fd4ea8141edfac5475ffb13e8b85f005f795704466a6128382 +size 162168 diff --git a/meme_generator/memes/wallpaper/images/13.png b/meme_generator/memes/wallpaper/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..4339d35b0069fa1e413a0bf56d68801f8f43558e --- /dev/null +++ b/meme_generator/memes/wallpaper/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aad17f753b8a823656912c93252da42c83deed119f493135049663ef96c80f52 +size 158313 diff --git a/meme_generator/memes/wallpaper/images/14.png b/meme_generator/memes/wallpaper/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..2fc9ac4e9c6086900ac05317333ed8664cb4046c --- /dev/null +++ b/meme_generator/memes/wallpaper/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9ffb0d82c4c7af956743e1252a50520a7febd77a36c8a4b349c11d08456b908 +size 160041 diff --git a/meme_generator/memes/wallpaper/images/15.png b/meme_generator/memes/wallpaper/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..796cc6ca40a23b8d0a72d0764780bdad41de103b --- /dev/null +++ b/meme_generator/memes/wallpaper/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5294c299300eb6360a0185700d949dc4693318461e455dcbc591fe9a96fa8be0 +size 158500 diff --git a/meme_generator/memes/wallpaper/images/16.png b/meme_generator/memes/wallpaper/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..107316c79e441e097efadcd6e8f3e239acc65348 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24c91b034a74eb48eaf23c3aab58927373771dec4477805013976e1059b61a83 +size 156537 diff --git a/meme_generator/memes/wallpaper/images/17.png b/meme_generator/memes/wallpaper/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..05f48103e8e5f264e829bcde48bdd87a1a2eb138 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49ba04b5eea6d2b0bdfc6dbe149d6cd69ffb9cce86e67faa66f5049df17ce095 +size 156458 diff --git a/meme_generator/memes/wallpaper/images/18.png b/meme_generator/memes/wallpaper/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..445fa24901c7f1bfafd9569ba1fac303b2f1cfb2 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b081409134824ebfa5e8aef2243e8bb1b0e77fd82dea6128767f42d509a31317 +size 156924 diff --git a/meme_generator/memes/wallpaper/images/19.png b/meme_generator/memes/wallpaper/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..2392e0afc5c91813e380bf94cc479dca8b0ded8a --- /dev/null +++ b/meme_generator/memes/wallpaper/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02e0bfbcbcb8bfee26b53b85afaea9c4bfc5d745b3f019a11f3089b424c6ba5b +size 156777 diff --git a/meme_generator/memes/wallpaper/images/2.png b/meme_generator/memes/wallpaper/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..0e6c47e653219c070cd657253cc6d8441a9fb5e8 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74071215e588bdd7b8300ad363b48259c9926a2134139c13236ca654abe6cacd +size 132830 diff --git a/meme_generator/memes/wallpaper/images/3.png b/meme_generator/memes/wallpaper/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..0a606e2b79ce69797ff8a2eee14f259dea0129d6 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5237fefdd55ab3b439eb606e329c2a2b271d4556d55e958eaa89f4b0accfa5bf +size 130302 diff --git a/meme_generator/memes/wallpaper/images/4.png b/meme_generator/memes/wallpaper/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..62171e7120fc332b1827043dad741ef84eb86ab0 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15372e917615506774a3d6749c65d164060a01cbe9f035bf31790ffbc8cd9f83 +size 128477 diff --git a/meme_generator/memes/wallpaper/images/5.png b/meme_generator/memes/wallpaper/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..9e40c7222c743e2051ba450e853995e8180888e3 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cf50bce0c6e6e6f6389503642b0c43687ece45f1be1def52877c7d5ec46551c +size 129086 diff --git a/meme_generator/memes/wallpaper/images/6.png b/meme_generator/memes/wallpaper/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..88f03eb2c72e4405375eab625ff5faf686685a50 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8200610553e8fb5e4b037aa4e4caf2e6a47f0eb72073bfa69a8722be8ec3ba1 +size 129336 diff --git a/meme_generator/memes/wallpaper/images/7.png b/meme_generator/memes/wallpaper/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..8766000f38e59449d57e145b7e0f09f64f987fac --- /dev/null +++ b/meme_generator/memes/wallpaper/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bb2182945bfe5b184aa71e75d80238cdd0f661028c439927b3bce57b8584ab7 +size 133648 diff --git a/meme_generator/memes/wallpaper/images/8.png b/meme_generator/memes/wallpaper/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..a8beeca07ea2eaed3c6024457823eb114652487a --- /dev/null +++ b/meme_generator/memes/wallpaper/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f87cf2a9e7622d48d8a89fc7e772b4913826eb82521644d352e66c18eefd57a +size 137740 diff --git a/meme_generator/memes/wallpaper/images/9.png b/meme_generator/memes/wallpaper/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..98a5eb383b5bc936ac9db5eebfcd38a14028aa74 --- /dev/null +++ b/meme_generator/memes/wallpaper/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0af2a7fc2654d66a7fda9ced70a381ba5ead16a19ddd90d18981e12803e5053 +size 133608 diff --git a/meme_generator/memes/walnut_pad/__init__.py b/meme_generator/memes/walnut_pad/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..85b3d9f23b8f6f31ed4766e4412fb6b4f94bb4e3 --- /dev/null +++ b/meme_generator/memes/walnut_pad/__init__.py @@ -0,0 +1,22 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def walnut_pad(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize((540, 360), keep_ratio=True) + return frame.copy().paste(img, (368, 65), below=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme("walnut_pad", walnut_pad, min_images=1, max_images=1, keywords=["胡桃平板"]) diff --git a/meme_generator/memes/walnut_pad/images/0.png b/meme_generator/memes/walnut_pad/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..48d91201322930570ae151db4b718954104e29da --- /dev/null +++ b/meme_generator/memes/walnut_pad/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c7ea10b96a1db5dbbad5bd64c738a3b283d76271b67be0b4c7b5aa3ad498dae +size 372483 diff --git a/meme_generator/memes/walnut_zoom/__init__.py b/meme_generator/memes/walnut_zoom/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e2e2f3b35215a6fb8ce1b4bafb118698e071505b --- /dev/null +++ b/meme_generator/memes/walnut_zoom/__init__.py @@ -0,0 +1,36 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import FrameAlignPolicy, Maker, make_gif_or_combined_gif + +img_dir = Path(__file__).parent / "images" + + +def walnut_zoom(images: List[BuildImage], texts, args): + # fmt: off + locs = ( + (-222, 30, 695, 430), (-212, 30, 695, 430), (0, 30, 695, 430), (41, 26, 695, 430), + (-100, -67, 922, 570), (-172, -113, 1059, 655), (-273, -192, 1217, 753) + ) + seq = [0, 0, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 6, 6, 6, 6] + # fmt: on + + def maker(i: int) -> Maker: + def make(img: BuildImage) -> BuildImage: + frame = BuildImage.open(img_dir / f"{i}.png") + x, y, w, h = locs[seq[i]] + img = img.convert("RGBA").resize((w, h), keep_ratio=True) + frame.paste(img.rotate(4.2, expand=True), (x, y), below=True) + return frame + + return make + + return make_gif_or_combined_gif( + images[0], maker, 24, 0.2, FrameAlignPolicy.extend_last + ) + + +add_meme("walnut_zoom", walnut_zoom, min_images=1, max_images=1, keywords=["胡桃放大"]) diff --git a/meme_generator/memes/walnut_zoom/images/0.png b/meme_generator/memes/walnut_zoom/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..47cd2037532a0722d7f59cff60f63ad902f65a8b --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bb0cc77c66fc4b42a2ef08f3fa13e4ab7438a3b9b58262d1185b705833d506f +size 178045 diff --git a/meme_generator/memes/walnut_zoom/images/1.png b/meme_generator/memes/walnut_zoom/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7f43902745b789ffae30bfcc499619b502f48ef9 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a22cb0783c640766760b95b4a0a7a599aa624507b19238ca2c3b67a2089820d +size 185211 diff --git a/meme_generator/memes/walnut_zoom/images/10.png b/meme_generator/memes/walnut_zoom/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..8e00abb20840c7bae4bacc6820b3cbb874d4f8b8 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e4729c378ecc55ff540b0b76a538981801a3a4a59d848711593f3bc33f2fc40 +size 136565 diff --git a/meme_generator/memes/walnut_zoom/images/11.png b/meme_generator/memes/walnut_zoom/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cabbd7eb521601b4e89de5b4c8dcae02e8350d --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b11df6b5c532b607f802de1cae7126b891acfa8642fcaf8ae16c6eb039cd5b04 +size 140709 diff --git a/meme_generator/memes/walnut_zoom/images/12.png b/meme_generator/memes/walnut_zoom/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..8024e51f271a26f01d6b3cb8700f4dee3ee1e328 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b847789b708bdd2353b36a6495ae4e0cf0311875991c40c5f25cc725a34714a +size 145174 diff --git a/meme_generator/memes/walnut_zoom/images/13.png b/meme_generator/memes/walnut_zoom/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..8e34706e02138189337141af09f5fb725339ff7c --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e2547ee239366599838fafc861c2794a6f791531adcf9d6394592da01e727a0 +size 163271 diff --git a/meme_generator/memes/walnut_zoom/images/14.png b/meme_generator/memes/walnut_zoom/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..83bea15bf193842493a8e1e6ed8efaf57063068b --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:444f4a8c79dce8990ebcb39e94191a20dce4d79ec5391e44b781609b2076ad23 +size 153581 diff --git a/meme_generator/memes/walnut_zoom/images/15.png b/meme_generator/memes/walnut_zoom/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..75291bb66666c8f85abaa736a136b65ebe1503b4 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64b9b0e716dd6400129b2af248ae6d45c8bfc6bd4e82c49698d565d4bf5260b8 +size 148122 diff --git a/meme_generator/memes/walnut_zoom/images/16.png b/meme_generator/memes/walnut_zoom/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad0cf54bad6c292ccc0cd5407d898aeaaf778cc --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3806b062e97b2f4397295b7eed53934f699a1d30336fe6173670f688ff665203 +size 150621 diff --git a/meme_generator/memes/walnut_zoom/images/17.png b/meme_generator/memes/walnut_zoom/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..d3f91d81fa60491ba27ac009afbe32b2ab54224b --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0caef02da8892cdaf4803d30ad7d978c6e805c9d7a549e7ff826dc61ead6c6f +size 149564 diff --git a/meme_generator/memes/walnut_zoom/images/18.png b/meme_generator/memes/walnut_zoom/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..02b476b2d2401fd25bb561bfa4ddf830253cda27 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f83d35222ba9291d2055690193df43f8bf23fb11ff4f5419eacebc9ff451d31 +size 153616 diff --git a/meme_generator/memes/walnut_zoom/images/19.png b/meme_generator/memes/walnut_zoom/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8454f5034a1d8736255e33f5d65300081d31bb --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51de26b39019d66c933ea6baa7656330f6922ef9c49340e67efd772dd962748e +size 151823 diff --git a/meme_generator/memes/walnut_zoom/images/2.png b/meme_generator/memes/walnut_zoom/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..d0fc461aeaf8392eadc16275be96c08373c0a7a8 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f702a8ea7d2d5fdf682ed74c2ea14743e4d99ddc7609bc24064b47c4b987679 +size 184955 diff --git a/meme_generator/memes/walnut_zoom/images/20.png b/meme_generator/memes/walnut_zoom/images/20.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad3812457a3ac5d86f3e8de2d808da53dea74a0 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b845b1e2b7fe9e91fa5eeb6b1312ddc722a0167b60a1eddcebfd85dca893bbf1 +size 150025 diff --git a/meme_generator/memes/walnut_zoom/images/21.png b/meme_generator/memes/walnut_zoom/images/21.png new file mode 100644 index 0000000000000000000000000000000000000000..c5237dfe00cab377916e4e0508559febc57d6ace --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07976da1cd4f0915a1500f581c71eb063450fd35693c9954b825509db446efe5 +size 150197 diff --git a/meme_generator/memes/walnut_zoom/images/22.png b/meme_generator/memes/walnut_zoom/images/22.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb6c957bf076cd28cb228a0c73432b5a78e0114 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e13e47c5728a8b74b06efdaa1b43e6afa01cdf3376dd5b770a1d2f2d4aa83c11 +size 150282 diff --git a/meme_generator/memes/walnut_zoom/images/23.png b/meme_generator/memes/walnut_zoom/images/23.png new file mode 100644 index 0000000000000000000000000000000000000000..6b141fc34ba6b59bc0ac589b829393f2ad7862c0 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e97baa39ded1ebef01cd64670206fe758a569357674625d0f129ebd3213f2153 +size 150209 diff --git a/meme_generator/memes/walnut_zoom/images/3.png b/meme_generator/memes/walnut_zoom/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..1770292e8a411c319e31d7e25af18700455d3a74 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:317ec17d22f9b0215d891fd41e7f60e4c7ec9b96a80aca9be187124e677798e9 +size 178620 diff --git a/meme_generator/memes/walnut_zoom/images/4.png b/meme_generator/memes/walnut_zoom/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..41ee991aa63b00fe44e32b66adbc8ec78108a1ac --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e3c0bccb3d5a685b5b2c105cd10a3978cc581aa8b6910c188c0c569076a4b9a +size 132529 diff --git a/meme_generator/memes/walnut_zoom/images/5.png b/meme_generator/memes/walnut_zoom/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae2441a75f73c719c31eb3c2780777457853486 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f663df0e079dc7aab25699b4c49fc46fa13124d2b42844b2c9e211b142872b01 +size 139571 diff --git a/meme_generator/memes/walnut_zoom/images/6.png b/meme_generator/memes/walnut_zoom/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd73e0ef28040756bd879bec724b1e4ab4e24d9 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3302603bd7f0ba8792de1f77ac77065fba588b5b39beba301224e2db89d407b8 +size 139347 diff --git a/meme_generator/memes/walnut_zoom/images/7.png b/meme_generator/memes/walnut_zoom/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..dc0ca23f8582c27f7cebd2c42b8ad1cd1735b852 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:825de0b8e92b9021bbbd41c2d7bb92ea85fcb34270e98ba6d83848f3e993a84c +size 136684 diff --git a/meme_generator/memes/walnut_zoom/images/8.png b/meme_generator/memes/walnut_zoom/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..9c39d28a5ec796b48385c8ee9ee973d844213042 --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22b220d9c1dcf9572bf3435924cdee45b8f27ecf1d939a0d5c4942e44406a474 +size 141029 diff --git a/meme_generator/memes/walnut_zoom/images/9.png b/meme_generator/memes/walnut_zoom/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..1daffbc38af0bfce859a584e1bacf4c18228a6fe --- /dev/null +++ b/meme_generator/memes/walnut_zoom/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85d7d02111d33c8658482432bea56c6a39fcb0cec31ba71087bc5b0258f11623 +size 139634 diff --git a/meme_generator/memes/wave/__init__.py b/meme_generator/memes/wave/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f0d6d5f8e5e652b7d06da2d5430408b87f1f091d --- /dev/null +++ b/meme_generator/memes/wave/__init__.py @@ -0,0 +1,47 @@ +import math +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import FrameAlignPolicy, Maker, make_gif_or_combined_gif + + +def wave(images: List[BuildImage], texts, args): + img = images[0] + img_w = min(max(img.width, 360), 720) + period = img_w / 6 + amp = img_w / 60 + frame_num = 8 + phase = 0 + + def sin(x): + return amp * math.sin(2 * math.pi / period * (x + phase)) / 2 + + def maker(i: int) -> Maker: + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize_width(img_w) + img_h = img.height + frame = img.copy() + for i in range(img_w): + for j in range(img_h): + dx = int(sin(i) * (img_h - j) / img_h) + dy = int(sin(j) * j / img_h) + if 0 <= i + dx < img_w and 0 <= j + dy < img_h: + frame.image.putpixel( + (i, j), img.image.getpixel((i + dx, j + dy)) + ) + + frame = frame.resize_canvas((int(img_w - amp), int(img_h - amp))) + nonlocal phase + phase += period / frame_num + return frame + + return make + + return make_gif_or_combined_gif( + img, maker, frame_num, 0.01, FrameAlignPolicy.extend_loop + ) + + +add_meme("wave", wave, min_images=1, max_images=1, keywords=["波纹"]) diff --git a/meme_generator/memes/what_I_want_to_do/__init__.py b/meme_generator/memes/what_I_want_to_do/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e27ee2addc4891ac4cdc92ad0a5e94d39c6261de --- /dev/null +++ b/meme_generator/memes/what_I_want_to_do/__init__.py @@ -0,0 +1,28 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def what_I_want_to_do(images: List[BuildImage], texts, args): + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").circle().resize((270, 270)) + return frame.copy().paste(img, (350, 590), alpha=True) + + return make_jpg_or_gif(images[0], make) + + +add_meme( + "what_I_want_to_do", + what_I_want_to_do, + min_images=1, + max_images=1, + keywords=["我想上的"], +) diff --git a/meme_generator/memes/what_I_want_to_do/images/0.png b/meme_generator/memes/what_I_want_to_do/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..44f1ae4725165364f07e45ed6c33225bd9f499e5 --- /dev/null +++ b/meme_generator/memes/what_I_want_to_do/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea1edcbffe60212b36f17aac9da557b3a40de7779c434efdc1971bb83a799d0b +size 258958 diff --git a/meme_generator/memes/what_he_wants/__init__.py b/meme_generator/memes/what_he_wants/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3ab506fbb72258a15d38edab75483f992d6a58c1 --- /dev/null +++ b/meme_generator/memes/what_he_wants/__init__.py @@ -0,0 +1,50 @@ +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 +from meme_generator.utils import make_jpg_or_gif + +img_dir = Path(__file__).parent / "images" + + +def what_he_wants(images: List[BuildImage], texts: List[str], args): + date = texts[0] if texts else "今年520" + text = f"{date}我会给你每个男人都最想要的东西···" + frame = BuildImage.open(img_dir / "0.png") + + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize((538, 538), keep_ratio=True, inside=True) + new_frame = frame.copy() + try: + new_frame.draw_text( + (0, 514, 1024, 614), + text, + fill="black", + max_fontsize=80, + min_fontsize=20, + stroke_ratio=0.07, + stroke_fill="white", + weight="bold", + valign="bottom", + ) + except ValueError: + raise TextOverLength(date) + new_frame.paste(img, (486, 616), alpha=True) + return new_frame + + return make_jpg_or_gif(images[0], make) + + +add_meme( + "what_he_wants", + what_he_wants, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + default_texts=["今年520"], + keywords=["最想要的东西"], +) diff --git a/meme_generator/memes/what_he_wants/images/0.png b/meme_generator/memes/what_he_wants/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..a29a1481871c045ae860bfdefc5085629c94c44a --- /dev/null +++ b/meme_generator/memes/what_he_wants/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:795bd21a031a30d77c2e6c36f14067bdb28da0abd832d3c4c5e0ff686a4d4651 +size 1112549 diff --git a/meme_generator/memes/why_at_me/__init__.py b/meme_generator/memes/why_at_me/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4a80362e6b62ccee5e07a62cd4d93da9bcf4a506 --- /dev/null +++ b/meme_generator/memes/why_at_me/__init__.py @@ -0,0 +1,18 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def why_at_me(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((265, 265), keep_ratio=True) + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img.rotate(19), (42, 13), below=True) + return frame.save_jpg() + + +add_meme("why_at_me", why_at_me, min_images=1, max_images=1, keywords=["为什么@我"]) diff --git a/meme_generator/memes/why_at_me/images/0.png b/meme_generator/memes/why_at_me/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..3464c3efd32c48a4f1733516d3e03fad1883a98d --- /dev/null +++ b/meme_generator/memes/why_at_me/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8278c707981973a5f8e79d274d6094e0dff12caef49a1bb2d20d8be20a38d780 +size 216366 diff --git a/meme_generator/memes/why_have_hands/__init__.py b/meme_generator/memes/why_have_hands/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..93b54d5e9e2d487c99d7401613b742a5fe895ea9 --- /dev/null +++ b/meme_generator/memes/why_have_hands/__init__.py @@ -0,0 +1,77 @@ +from pathlib import Path +from typing import List + +from pil_utils import BuildImage + +from meme_generator import MemeArgsModel, add_meme +from meme_generator.exception import TextOrNameNotEnough, TextOverLength + +img_dir = Path(__file__).parent / "images" + + +def why_have_hands(images: List[BuildImage], texts: List[str], args: MemeArgsModel): + img = images[0].convert("RGBA") + + if not texts and not args.user_infos: + raise TextOrNameNotEnough("why_have_hands") + name = texts[0] if texts else args.user_infos[0].name + + frame = BuildImage.open(img_dir / "0.png") + frame.paste(img.circle().resize((250, 250)), (350, 670), alpha=True) + frame.paste( + img.resize((250, 250), keep_ratio=True).rotate(15), (1001, 668), below=True + ) + frame.paste(img.resize((250, 170), keep_ratio=True), (275, 1100), below=True) + frame.paste( + img.resize((300, 400), keep_ratio=True, inside=True, direction="northwest"), + (1100, 1060), + alpha=True, + ) + try: + text_frame = BuildImage.new("RGBA", (600, 100)).draw_text( + (0, 0, 600, 100), + f"摸摸{name}!", + max_fontsize=70, + min_fontsize=30, + halign="left", + weight="bold", + ) + frame.paste(text_frame.rotate(-15, expand=True), (75, 825), alpha=True) + frame.draw_text( + (840, 960, 1440, 1060), + f"托托{name}!", + max_fontsize=70, + min_fontsize=30, + weight="bold", + ) + frame.draw_text( + (50, 1325, 650, 1475), + f"赞美{name}!", + max_fontsize=90, + min_fontsize=30, + weight="bold", + valign="top", + ) + frame.draw_text( + (700, 1340, 1075, 1490), + f"为{name}奉献所有财产!", + max_fontsize=70, + min_fontsize=30, + weight="bold", + allow_wrap=True, + ) + except ValueError: + raise TextOverLength(name) + + return frame.save_jpg() + + +add_meme( + "why_have_hands", + why_have_hands, + min_images=1, + max_images=1, + min_texts=0, + max_texts=1, + keywords=["为什么要有手"], +) diff --git a/meme_generator/memes/why_have_hands/images/0.png b/meme_generator/memes/why_have_hands/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..54f5f29b3f093622871323f27231df4be2ba6645 --- /dev/null +++ b/meme_generator/memes/why_have_hands/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3790385b093c8a1269916a093cebdbd756691628a2b44376ecfdbae010ef6ff +size 656165 diff --git a/meme_generator/memes/windmill_turn/__init__.py b/meme_generator/memes/windmill_turn/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9396f9745e4611ae8675c28c81158bed971457c8 --- /dev/null +++ b/meme_generator/memes/windmill_turn/__init__.py @@ -0,0 +1,27 @@ +from typing import List + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.utils import FrameAlignPolicy, Maker, make_gif_or_combined_gif + + +def windmill_turn(images: List[BuildImage], texts, args): + def maker(i: int) -> Maker: + def make(img: BuildImage) -> BuildImage: + img = img.convert("RGBA").resize((300, 300), keep_ratio=True) + frame = BuildImage.new("RGBA", (600, 600), "white") + frame.paste(img, alpha=True) + frame.paste(img.rotate(90), (0, 300), alpha=True) + frame.paste(img.rotate(180), (300, 300), alpha=True) + frame.paste(img.rotate(270), (300, 0), alpha=True) + return frame.rotate(i * 18).crop((50, 50, 550, 550)) + + return make + + return make_gif_or_combined_gif( + images[0], maker, 5, 0.05, FrameAlignPolicy.extend_loop + ) + + +add_meme("windmill_turn", windmill_turn, min_images=1, max_images=1, keywords=["风车转"]) diff --git a/meme_generator/memes/wish_fail/__init__.py b/meme_generator/memes/wish_fail/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..700816f1361857d16cb9085dc679af7c766d0d8f --- /dev/null +++ b/meme_generator/memes/wish_fail/__init__.py @@ -0,0 +1,35 @@ +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 wish_fail(images, texts: List[str], args): + text = texts[0] + frame = BuildImage.open(img_dir / "0.png") + try: + frame.draw_text( + (70, 305, 320, 380), + text, + allow_wrap=True, + max_fontsize=80, + min_fontsize=20, + ) + except ValueError: + raise TextOverLength(text) + return frame.save_jpg() + + +add_meme( + "wish_fail", + wish_fail, + min_texts=1, + max_texts=1, + default_texts=["我要对象"], + keywords=["许愿失败"], +) diff --git a/meme_generator/memes/wish_fail/images/0.png b/meme_generator/memes/wish_fail/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..dea170976c00b2feb56defb33efb42f7da164c59 --- /dev/null +++ b/meme_generator/memes/wish_fail/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8c74e95cd3edb900913163f3af359f51087cb488424bd6929f6611bffe3c638 +size 413950 diff --git a/meme_generator/memes/wooden_fish/__init__.py b/meme_generator/memes/wooden_fish/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6fcaad072dd00bb1271cb90244fe4cb580ea4045 --- /dev/null +++ b/meme_generator/memes/wooden_fish/__init__.py @@ -0,0 +1,21 @@ +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 wooden_fish(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA").resize((85, 85)) + frames = [ + BuildImage.open(img_dir / f"{i}.png").paste(img, (116, 153), below=True).image + for i in range(66) + ] + return save_gif(frames, 0.1) + + +add_meme("wooden_fish", wooden_fish, min_images=1, max_images=1, keywords=["木鱼"]) diff --git a/meme_generator/memes/wooden_fish/images/0.png b/meme_generator/memes/wooden_fish/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..c06a12e90c0a4f6d1e36915b6ac498a2b27dfcaa --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd35d5347b28545966476d517c6940410804e9aa942de0f14c4723ae4e99a906 +size 87023 diff --git a/meme_generator/memes/wooden_fish/images/1.png b/meme_generator/memes/wooden_fish/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..9979fd79ab5e99257890ef5eb69c151e2243a85c --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98239d9f823a483e9b813b2cc4d2ff29b5c69ca810a5bf421c2edf9a96ec059a +size 86993 diff --git a/meme_generator/memes/wooden_fish/images/10.png b/meme_generator/memes/wooden_fish/images/10.png new file mode 100644 index 0000000000000000000000000000000000000000..9143786c5505f67e84454d0421f8d893b56e3ae4 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8ea4ffa91cb55dece37e62902c3036ce58d1af11f1b69d39cf9e6cc8e213b87 +size 84660 diff --git a/meme_generator/memes/wooden_fish/images/11.png b/meme_generator/memes/wooden_fish/images/11.png new file mode 100644 index 0000000000000000000000000000000000000000..d50a2ac61c275df27291221106d21f14ad11f47d --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50b02aa1f84edd1e4edcfb76ec4d26517cb3f7c5549eace26e92c1a25a213bad +size 86682 diff --git a/meme_generator/memes/wooden_fish/images/12.png b/meme_generator/memes/wooden_fish/images/12.png new file mode 100644 index 0000000000000000000000000000000000000000..686696636bc9cd4c45e4a15350f5c78b5221dabc --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad670b32e4d9a1411d3eb61a993e937b4ed83c2088e76772b6baaea79e6112f3 +size 86281 diff --git a/meme_generator/memes/wooden_fish/images/13.png b/meme_generator/memes/wooden_fish/images/13.png new file mode 100644 index 0000000000000000000000000000000000000000..7b650da15c5e478a87c70483884e0ad612b75307 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/13.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed00db2319a3a19d038c38df2bb934aac4ff3c72d056a6644559cec71b437ab9 +size 87764 diff --git a/meme_generator/memes/wooden_fish/images/14.png b/meme_generator/memes/wooden_fish/images/14.png new file mode 100644 index 0000000000000000000000000000000000000000..93ec92c802191ae4732f93b2115910396c20d937 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/14.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:593ec0b1694415a18af17bcdef582fcc28089b207d0e249cd0a6a8b4b9d00cc5 +size 85759 diff --git a/meme_generator/memes/wooden_fish/images/15.png b/meme_generator/memes/wooden_fish/images/15.png new file mode 100644 index 0000000000000000000000000000000000000000..8fe3c2b98ec4be368da8eda4106326781f8f8f88 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/15.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:387419595710affc4604ccefa25577ffa429983c6e074bf840f7dade18ec3cc9 +size 87347 diff --git a/meme_generator/memes/wooden_fish/images/16.png b/meme_generator/memes/wooden_fish/images/16.png new file mode 100644 index 0000000000000000000000000000000000000000..47979c172ff1543c3d851874fbbf91cf81352176 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b0d98795651a0f19270c4b74add703fbd85d019f436368cb247db3dfd55d4d1 +size 84720 diff --git a/meme_generator/memes/wooden_fish/images/17.png b/meme_generator/memes/wooden_fish/images/17.png new file mode 100644 index 0000000000000000000000000000000000000000..9ffb41fb6480c198602833914690793a2b69aa60 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/17.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c37765f370cbc1d89c61662ba3bdb2d2b0d1fbeba2f7cabde28d0df3453490a6 +size 87325 diff --git a/meme_generator/memes/wooden_fish/images/18.png b/meme_generator/memes/wooden_fish/images/18.png new file mode 100644 index 0000000000000000000000000000000000000000..9539e35bf9aa3648eced7155be8488503487f64f --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/18.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53316a4772eebfb42c1c8b58df895f3c676d78592641b4094fcca02b8d1b88e9 +size 87909 diff --git a/meme_generator/memes/wooden_fish/images/19.png b/meme_generator/memes/wooden_fish/images/19.png new file mode 100644 index 0000000000000000000000000000000000000000..dcbaaf8f005c8f149877f1cfc500920c35c74a1c --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/19.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6609c302ba21713ddf819c4ef3fedc09014f37924601a4d73ad6e82713f5f6b +size 88134 diff --git a/meme_generator/memes/wooden_fish/images/2.png b/meme_generator/memes/wooden_fish/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..75533180060ad592f09e74d652b545986f75e5e1 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfc1efb266afb6d818aa295296ca3d4cafd2ae0a8d49528b151f9adcccc8658a +size 87051 diff --git a/meme_generator/memes/wooden_fish/images/20.png b/meme_generator/memes/wooden_fish/images/20.png new file mode 100644 index 0000000000000000000000000000000000000000..67a019c8d603ed00005b3dbe00eca5f810789b81 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/20.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c195f221cea272d7f45c3e6ec9d69a62aaf4c40f52e86f1966014d4a9ed4676 +size 89951 diff --git a/meme_generator/memes/wooden_fish/images/21.png b/meme_generator/memes/wooden_fish/images/21.png new file mode 100644 index 0000000000000000000000000000000000000000..c93ba723976496a999ecb845c744a0fd945e3c45 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/21.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c6ff008f4a1ac189e398567e2c0b92b785cf59b6dfd9b19f35cbc6ac84f844e +size 88869 diff --git a/meme_generator/memes/wooden_fish/images/22.png b/meme_generator/memes/wooden_fish/images/22.png new file mode 100644 index 0000000000000000000000000000000000000000..46e809738423b8c447bcf12cebc16415ba48a377 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/22.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c30399253d11ec459b1bcb819630304ed14216d1d8120eb6fb38da091dbd70a4 +size 88339 diff --git a/meme_generator/memes/wooden_fish/images/23.png b/meme_generator/memes/wooden_fish/images/23.png new file mode 100644 index 0000000000000000000000000000000000000000..8ceec2d2db5de2d8144aa1b6c494fba69e5903ca --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/23.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4a00e68c140b8101dc511c0ec5e82526751a40dedec324ecb0e1e3bea57c63e +size 91509 diff --git a/meme_generator/memes/wooden_fish/images/24.png b/meme_generator/memes/wooden_fish/images/24.png new file mode 100644 index 0000000000000000000000000000000000000000..17af2f4ea87d2358215cb89a25f3a07c7f35eba6 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/24.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb43da6e939a027573e1701e21a35f82ea15af0908a68fb419a79c6045465c22 +size 83534 diff --git a/meme_generator/memes/wooden_fish/images/25.png b/meme_generator/memes/wooden_fish/images/25.png new file mode 100644 index 0000000000000000000000000000000000000000..2955fc99b1863474eb11c697c9ed39caa3499789 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/25.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84b3372896030f25dd3c1b338aa73330ed4f93392d73c42a4728c159f3cd7063 +size 88540 diff --git a/meme_generator/memes/wooden_fish/images/26.png b/meme_generator/memes/wooden_fish/images/26.png new file mode 100644 index 0000000000000000000000000000000000000000..d1532748228a3fd8ad5da683591ab91efa773d4a --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/26.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d59eacdf3776f545dcf282671e5aa83ef7f40767a3a6384ac21e53ee9a5efd78 +size 85694 diff --git a/meme_generator/memes/wooden_fish/images/27.png b/meme_generator/memes/wooden_fish/images/27.png new file mode 100644 index 0000000000000000000000000000000000000000..c1b0705053c2117bb91daf02a1fa33d8a182504a --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/27.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d2f452bdc8fa54810ec0da9dbc34eeb513dc5a2df0ad31bede0abba34b9be40 +size 88094 diff --git a/meme_generator/memes/wooden_fish/images/28.png b/meme_generator/memes/wooden_fish/images/28.png new file mode 100644 index 0000000000000000000000000000000000000000..659e4325b0ba098bd5df0bac07b81b1908e350e9 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/28.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a93bb351f3e016aeed814fa587bbb450674dd14582e419513f3bbd84401ec56 +size 88371 diff --git a/meme_generator/memes/wooden_fish/images/29.png b/meme_generator/memes/wooden_fish/images/29.png new file mode 100644 index 0000000000000000000000000000000000000000..e849ac058994ebfb6a76ef1f5fa2e4b5758e8d42 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/29.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0c3748f33e5e49e3069475e0631e7e147374e30379725dbc5758dd1ae49b100 +size 87484 diff --git a/meme_generator/memes/wooden_fish/images/3.png b/meme_generator/memes/wooden_fish/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..0d45892042d7e707b05284ee7520e169fa28f5f5 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93bea3d8f55c15ec7f74e60f61a614b4898f5c944da990948b519b7e982abfb0 +size 86262 diff --git a/meme_generator/memes/wooden_fish/images/30.png b/meme_generator/memes/wooden_fish/images/30.png new file mode 100644 index 0000000000000000000000000000000000000000..84880bdb46ef85ade986f5d3e9bb03f419e67386 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/30.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa9b3ba003043c231b117d28257c83955715a359bf65b92a15ec51e4822bde22 +size 82992 diff --git a/meme_generator/memes/wooden_fish/images/31.png b/meme_generator/memes/wooden_fish/images/31.png new file mode 100644 index 0000000000000000000000000000000000000000..9988db0046a4356c4259d75d235f9c9fbfc07034 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/31.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9609abebc9f9cd9c368bc70097c1ac77d72af4a578b6b11da1a86cf6f361b5a0 +size 85893 diff --git a/meme_generator/memes/wooden_fish/images/32.png b/meme_generator/memes/wooden_fish/images/32.png new file mode 100644 index 0000000000000000000000000000000000000000..4bbfa606cec92475253a704cd61d25b90b0c18e0 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:691108d50822b1688610ed9703e0aeb95a26caafc5e2102a70fe3048a9722b82 +size 87503 diff --git a/meme_generator/memes/wooden_fish/images/33.png b/meme_generator/memes/wooden_fish/images/33.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f8adea854d289852ac247ac8fed20d28f61550 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/33.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c270a9573e70184c8cf5bdd564e1c85a71e7c7f14215f229e6984ed647393a0 +size 87885 diff --git a/meme_generator/memes/wooden_fish/images/34.png b/meme_generator/memes/wooden_fish/images/34.png new file mode 100644 index 0000000000000000000000000000000000000000..c9c69f47da9502d45e8e668f0614f55b99ef4b5d --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/34.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eebbc469d83cf5ad49bd952913ac0da48eaedf59fee1781b8e242508d31c454e +size 88276 diff --git a/meme_generator/memes/wooden_fish/images/35.png b/meme_generator/memes/wooden_fish/images/35.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd61813b84fa5d75ff7807c0827b68f35391465 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/35.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b14bdc74fafd29b90f63e5a371be6b3c1606688abdf4be5e2e5d5693e44f57d +size 88069 diff --git a/meme_generator/memes/wooden_fish/images/36.png b/meme_generator/memes/wooden_fish/images/36.png new file mode 100644 index 0000000000000000000000000000000000000000..b45e880e57e26ee94a0b63807f269921dd5c984e --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/36.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfd4a6ac0dae025f99e6b32e6c975bcdf73bfea4abb64d38df54e619a80227f6 +size 90887 diff --git a/meme_generator/memes/wooden_fish/images/37.png b/meme_generator/memes/wooden_fish/images/37.png new file mode 100644 index 0000000000000000000000000000000000000000..8435b6a5f1ec1aa32a5b63b7d5e260a0a47e40fa --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/37.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84b127b3c9213d552697cd0ecd23e5f0e0164b5b5bebba0bcb89d3cfd6f1d58a +size 89079 diff --git a/meme_generator/memes/wooden_fish/images/38.png b/meme_generator/memes/wooden_fish/images/38.png new file mode 100644 index 0000000000000000000000000000000000000000..fabd5154047fe7f286c7ca9a891e4d89517c0fca --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/38.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:688b6323bd8bf30f5a7e8daa78330198a873472a6352e79eebd7adb159f74aee +size 88555 diff --git a/meme_generator/memes/wooden_fish/images/39.png b/meme_generator/memes/wooden_fish/images/39.png new file mode 100644 index 0000000000000000000000000000000000000000..5fcc7fb22a6e31ac93b810eab04fd62954c31a9d --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/39.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a621b592717ded15acbca403c4488e94c3b6b5e37bc331f405bf57e3bed8001 +size 89270 diff --git a/meme_generator/memes/wooden_fish/images/4.png b/meme_generator/memes/wooden_fish/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..0e194fa4a27be51a0b53f47385cebd3fe5606966 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c337e118cef2f381668a3f1dc9f5b13f147f632ec7cf8d2124aa6f73a48452a +size 86722 diff --git a/meme_generator/memes/wooden_fish/images/40.png b/meme_generator/memes/wooden_fish/images/40.png new file mode 100644 index 0000000000000000000000000000000000000000..e7882f993b4f6d0fcb59d7e697953482b238e025 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/40.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50b4b7d87f5fe2da45ecffdda1c9147c4971a558f544ca621a0d4d5328c8803e +size 89149 diff --git a/meme_generator/memes/wooden_fish/images/41.png b/meme_generator/memes/wooden_fish/images/41.png new file mode 100644 index 0000000000000000000000000000000000000000..f491bfbe84090e6125bf3d5b79fd693ad4660cb0 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/41.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:819c8e9dc0a076c841ba26f62d48b8c9398336dfee5e030a83abe8a1f1ec7956 +size 89544 diff --git a/meme_generator/memes/wooden_fish/images/42.png b/meme_generator/memes/wooden_fish/images/42.png new file mode 100644 index 0000000000000000000000000000000000000000..cd85b6a9fde2cae8204650cb8048ea582d53e7ea --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/42.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fd1c9e091ce2c1134120c857990f3802ed3b0723d50b113132b1b685378a905 +size 88645 diff --git a/meme_generator/memes/wooden_fish/images/43.png b/meme_generator/memes/wooden_fish/images/43.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2b98fc3badfaf627bb41c670f19f35c01891ff --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/43.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:788af8aa10183f9e2b3afaeeffa1d90b2afdb47be4b6ec87015b91d82f56e5a7 +size 87333 diff --git a/meme_generator/memes/wooden_fish/images/44.png b/meme_generator/memes/wooden_fish/images/44.png new file mode 100644 index 0000000000000000000000000000000000000000..01dd16e5773cee164b41e0a3fb216c1e924baa20 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/44.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:153e0617ae37988ecd884555b0360d5e39638dbf937878ca744f53faf9e7495a +size 87499 diff --git a/meme_generator/memes/wooden_fish/images/45.png b/meme_generator/memes/wooden_fish/images/45.png new file mode 100644 index 0000000000000000000000000000000000000000..ae25f9df4579a558ea47065fd8ec278398339551 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/45.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3aeafea4889631220d20eaa291440035f46dc0d84dc2da2142d2ca695282b73b +size 87502 diff --git a/meme_generator/memes/wooden_fish/images/46.png b/meme_generator/memes/wooden_fish/images/46.png new file mode 100644 index 0000000000000000000000000000000000000000..21493c1285e79acb0d878d99b66e334c39b496fd --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/46.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01be70bdf514976a7256a43431a45873dc5b5bbc1b91fadf48158f5066c7c33a +size 85862 diff --git a/meme_generator/memes/wooden_fish/images/47.png b/meme_generator/memes/wooden_fish/images/47.png new file mode 100644 index 0000000000000000000000000000000000000000..aa84c9695a4cc0ba815f51116fd863542edd7111 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/47.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e011e4c006e90a54cfee8c63666dd29ff1cab547473aada954c717b3f2947e8d +size 84954 diff --git a/meme_generator/memes/wooden_fish/images/48.png b/meme_generator/memes/wooden_fish/images/48.png new file mode 100644 index 0000000000000000000000000000000000000000..4521400f68a7875179bd942b6456c8c7f2a894bd --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/48.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a0ca747da167538f61fb6856c9a1733126f00cac645c4c17473b6b260041193 +size 84728 diff --git a/meme_generator/memes/wooden_fish/images/49.png b/meme_generator/memes/wooden_fish/images/49.png new file mode 100644 index 0000000000000000000000000000000000000000..ba58c37c20d51fb6111b28e85caa15d67fd38b1d --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/49.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb96b1401dcf29a58e636809a5dff260184adf61ff0d15e303bd5d2de0be874e +size 89392 diff --git a/meme_generator/memes/wooden_fish/images/5.png b/meme_generator/memes/wooden_fish/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..0e52a860b1b8ccd303736ca40d05ace8d40f4363 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf2cd7e09fbbe2c6bb70f8f57ac27dd1c6d65e504c91d9c79db8f2a353df3e51 +size 87388 diff --git a/meme_generator/memes/wooden_fish/images/50.png b/meme_generator/memes/wooden_fish/images/50.png new file mode 100644 index 0000000000000000000000000000000000000000..e6807a72901056d8d9fcdc4cdddd0f5110cbc29b --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/50.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5411d6798a509948f339c925b0962426c7dad9ee5dcf7e1aa59a0cb94c86c3ab +size 87133 diff --git a/meme_generator/memes/wooden_fish/images/51.png b/meme_generator/memes/wooden_fish/images/51.png new file mode 100644 index 0000000000000000000000000000000000000000..b06eb5fd25f9471aa4644ed9061064d6dfbac0fe --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/51.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1561af41674e907ddf4ec652e513d86efa8b0a3f24badcaba3a488455adf5aa +size 88537 diff --git a/meme_generator/memes/wooden_fish/images/52.png b/meme_generator/memes/wooden_fish/images/52.png new file mode 100644 index 0000000000000000000000000000000000000000..6cad82c9e2932ba794829e2ba3aa997bf7997cf3 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/52.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0e067736d61346650ef89cffd3d438852dc4bdd297edcd540f514b733b20647 +size 86683 diff --git a/meme_generator/memes/wooden_fish/images/53.png b/meme_generator/memes/wooden_fish/images/53.png new file mode 100644 index 0000000000000000000000000000000000000000..fd69042c94f0cd478b6e8449e5585d699a2be806 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/53.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70ebf526201523e6b34f06c2aafebe0a00cbebfa9b8368144d188cc27048fb24 +size 81809 diff --git a/meme_generator/memes/wooden_fish/images/54.png b/meme_generator/memes/wooden_fish/images/54.png new file mode 100644 index 0000000000000000000000000000000000000000..5b004125a8a7606d5518608f8360f8f8a14166ff --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/54.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10aed709f8e49b6f58895e7bee743b1b8023616bbd83abe119b1f80eedcc84e0 +size 87377 diff --git a/meme_generator/memes/wooden_fish/images/55.png b/meme_generator/memes/wooden_fish/images/55.png new file mode 100644 index 0000000000000000000000000000000000000000..4d8696d2c1639941f403d782d9194fa5dcf93c40 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/55.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05d0f8ac3bd928ada412f0f550289ebc1c33d40216aeb02f08a7ef22a99c2498 +size 89281 diff --git a/meme_generator/memes/wooden_fish/images/56.png b/meme_generator/memes/wooden_fish/images/56.png new file mode 100644 index 0000000000000000000000000000000000000000..8f3d3fa25236e997897d9003c1dc9e633db13b5c --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/56.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64bda5c153729e2a8be993ec060ea530dbaf8430c652755ac97d929a331d008c +size 89349 diff --git a/meme_generator/memes/wooden_fish/images/57.png b/meme_generator/memes/wooden_fish/images/57.png new file mode 100644 index 0000000000000000000000000000000000000000..794b6fb119820002293b4f1a98fb17a264002633 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/57.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72935117039f3f0dfa866b194d9de530f3253450e525fafe321c39bcbae30e7f +size 89935 diff --git a/meme_generator/memes/wooden_fish/images/58.png b/meme_generator/memes/wooden_fish/images/58.png new file mode 100644 index 0000000000000000000000000000000000000000..60b24202d159d5daf3ca9ac23ba77b1c57a821eb --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/58.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d92b2a634bdf8ebb83db856769b8ad2a30fc9e2a77b85d4921e728950723e9f3 +size 90238 diff --git a/meme_generator/memes/wooden_fish/images/59.png b/meme_generator/memes/wooden_fish/images/59.png new file mode 100644 index 0000000000000000000000000000000000000000..2c26cb335fa991a403fc1c8c99944db46e4440e8 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/59.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9c6b38972065969da79957f918269b6f4b88fa9d04776123acdf742633721f4 +size 88439 diff --git a/meme_generator/memes/wooden_fish/images/6.png b/meme_generator/memes/wooden_fish/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0376e0a288a92f5476d7ffbfd7ffd9b23cf9dd --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1b393bc75df8c616dc453671489ff38220dff220427f8ae8efba532937615f0 +size 87009 diff --git a/meme_generator/memes/wooden_fish/images/60.png b/meme_generator/memes/wooden_fish/images/60.png new file mode 100644 index 0000000000000000000000000000000000000000..f1b7c9a8692e4bbfabe947646a7e3d5d8ea8c6bc --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/60.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e7f48240d4df0af87f0f061f16da39e32388ccccd7fc299b76250826532a01e +size 86630 diff --git a/meme_generator/memes/wooden_fish/images/61.png b/meme_generator/memes/wooden_fish/images/61.png new file mode 100644 index 0000000000000000000000000000000000000000..9d773f30fd223d91d87b679903f08890f785ae77 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/61.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f68984f50d99a2686f42df2bccd4175979f8a156e1830d70aa5c896dfd3836ac +size 84719 diff --git a/meme_generator/memes/wooden_fish/images/62.png b/meme_generator/memes/wooden_fish/images/62.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a0a3d8294e9007b21a037b4c319d598abbf110 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/62.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dda836c4105ccf6ac978102f9f14032c7ca95de49752ab2bd3078eb2108b44a +size 87040 diff --git a/meme_generator/memes/wooden_fish/images/63.png b/meme_generator/memes/wooden_fish/images/63.png new file mode 100644 index 0000000000000000000000000000000000000000..2801359a8119efe2870c0f9a55b3d08d44fcd4b5 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/63.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abcf5636a8e776d6e60c7a868c057b1b27f29b4f571189cc7e6913f6b6474341 +size 85848 diff --git a/meme_generator/memes/wooden_fish/images/64.png b/meme_generator/memes/wooden_fish/images/64.png new file mode 100644 index 0000000000000000000000000000000000000000..bd868a890f61e17334fb648c8e9f6c5d57232a43 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/64.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4afdfb6c2dafe59a6ff226936ed9666a38e15d3735c6f2affb644d82bcbdf08f +size 86434 diff --git a/meme_generator/memes/wooden_fish/images/65.png b/meme_generator/memes/wooden_fish/images/65.png new file mode 100644 index 0000000000000000000000000000000000000000..8feb7294b8c23d7eba0beb0feb1d0611074f95b7 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/65.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7b381d2072db0c6304e816ca819ad37a2d2bcf701802c45930987fde3e5ac2f +size 87077 diff --git a/meme_generator/memes/wooden_fish/images/7.png b/meme_generator/memes/wooden_fish/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..3b104cf904ec1c21515d2f4b0301c7d0a84e5b20 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbdf8a5a5ccc19957506a59fce283b53facbbd5178e9f64234db3c1d9ed6ecd1 +size 86201 diff --git a/meme_generator/memes/wooden_fish/images/8.png b/meme_generator/memes/wooden_fish/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..82cae6aea36fc779bf88dce51b827be68e85cdc8 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14d3446951dea4140c4fcc83a6c0a6a9f2eb92670ff06cbfbe45f27f9a808394 +size 83421 diff --git a/meme_generator/memes/wooden_fish/images/9.png b/meme_generator/memes/wooden_fish/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..210d382ce7c7999d5efcaae6b7533f7bdc492778 --- /dev/null +++ b/meme_generator/memes/wooden_fish/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0bdaa176483d00adefd5df5f98af73cf5c026c094f4370ee56e1fbadc2bdca4 +size 84875 diff --git a/meme_generator/memes/worship/__init__.py b/meme_generator/memes/worship/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9f8a0fd20212fee07c330ea7511949e33735a6bd --- /dev/null +++ b/meme_generator/memes/worship/__init__.py @@ -0,0 +1,25 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Image as IMG +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 worship(images: List[BuildImage], texts, args): + img = images[0].convert("RGBA") + points = ((0, -30), (135, 17), (135, 145), (0, 140)) + paint = img.square().resize((150, 150)).perspective(points) + frames: List[IMG] = [] + for i in range(10): + frame = BuildImage.open(img_dir / f"{i}.png") + frame.paste(paint, below=True) + frames.append(frame.image) + return save_gif(frames, 0.04) + + +add_meme("worship", worship, min_images=1, max_images=1, keywords=["膜", "膜拜"]) diff --git a/meme_generator/memes/worship/images/0.png b/meme_generator/memes/worship/images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..0c5b1cf496e6edf1b70da485a942162b2e41d3f4 --- /dev/null +++ b/meme_generator/memes/worship/images/0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ace016777af4ffa65e1987c4cbb525fc1085f5608609143df44497c8d6ecb77c +size 46035 diff --git a/meme_generator/memes/worship/images/1.png b/meme_generator/memes/worship/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..acf7b8bca4fcf3d7f3df39e8df3460e7d27ff119 --- /dev/null +++ b/meme_generator/memes/worship/images/1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53d4a83dcbc46f236372c961acc4bc340085b1a87b55c5bbf8e78d7bf1915cbc +size 45228 diff --git a/meme_generator/memes/worship/images/2.png b/meme_generator/memes/worship/images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..c0171f506ca931149027f630303e4538317a9977 --- /dev/null +++ b/meme_generator/memes/worship/images/2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c1d740adc2d12c547d6b806ce19fa8bf4df8414f7a7db40afb8e0efb2f442c5 +size 45973 diff --git a/meme_generator/memes/worship/images/3.png b/meme_generator/memes/worship/images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..42baffb892a51496ff4d72e773a2d6155da08279 --- /dev/null +++ b/meme_generator/memes/worship/images/3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d4cc9c64dcf977adde20d636741678b1f9f7c8836324c51284072c6b5aa1c2f +size 43239 diff --git a/meme_generator/memes/worship/images/4.png b/meme_generator/memes/worship/images/4.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7f7d214d6b692977502e90140717b4c12a5353 --- /dev/null +++ b/meme_generator/memes/worship/images/4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:446f9d801275998b99322d957621b85a89877adbef276aca7d4a5e7a9743070a +size 43422 diff --git a/meme_generator/memes/worship/images/5.png b/meme_generator/memes/worship/images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..841952e7ad165fd790c2c3eb476d47c300876e9b --- /dev/null +++ b/meme_generator/memes/worship/images/5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fed145f63a1391f57bfd41aaee1e10fc265ebf0b2fde6bd341a24e7596e3cdf +size 42709 diff --git a/meme_generator/memes/worship/images/6.png b/meme_generator/memes/worship/images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..8f3a0c1cea1ef5290c407b7acfc0c68bb362245f --- /dev/null +++ b/meme_generator/memes/worship/images/6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47832f25bdf33a6e3a673de23c7cd3acc07f99a4b22bb64886504229e9952ea6 +size 43778 diff --git a/meme_generator/memes/worship/images/7.png b/meme_generator/memes/worship/images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..8955a84bbf35f3d6e47817f4e8504e3c1d60a064 --- /dev/null +++ b/meme_generator/memes/worship/images/7.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a16f0d7da42efa84d7f18054698212789565e048719cb6af39315f1c1e55e8dc +size 43261 diff --git a/meme_generator/memes/worship/images/8.png b/meme_generator/memes/worship/images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..f06061c1f0e8369d137a32070a050a3d00ec0f4f --- /dev/null +++ b/meme_generator/memes/worship/images/8.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7d2061850f9a892a0c2967e5597ffe5db588d26f9893a387c5af7072d73f44b +size 45251 diff --git a/meme_generator/memes/worship/images/9.png b/meme_generator/memes/worship/images/9.png new file mode 100644 index 0000000000000000000000000000000000000000..c4a05ae530c9c9005d38bab04fcaa76496509c73 --- /dev/null +++ b/meme_generator/memes/worship/images/9.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa97998e51b008a7672818213eaa7a77e3b660175c6096c0a5463b58adfa8a09 +size 47146 diff --git a/meme_generator/memes/wujing/__init__.py b/meme_generator/memes/wujing/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..cde63ea0a105f8b4938f97539aff4ab7915f5958 --- /dev/null +++ b/meme_generator/memes/wujing/__init__.py @@ -0,0 +1,56 @@ +from pathlib import Path +from typing import List, Literal, Tuple + +from pil_utils import BuildImage + +from meme_generator import add_meme +from meme_generator.exception import TextOverLength + +img_dir = Path(__file__).parent / "images" + + +def wujing(images, texts: List[str], args): + frame = BuildImage.open(img_dir / "0.jpg") + + def draw( + pos: Tuple[float, float, float, float], + text: str, + align: Literal["left", "right", "center"], + ): + try: + frame.draw_text( + pos, + text, + halign=align, + max_fontsize=100, + min_fontsize=50, + fill="white", + stroke_fill="black", + stroke_ratio=0.05, + ) + except ValueError: + raise TextOverLength(text) + + if texts[0]: + parts = texts[0].split() + if len(parts) >= 2: + draw((50, 430, 887, 550), " ".join(parts[:-1]), "left") + draw((20, 560, 350, 690), parts[-1], "right") + if texts[1]: + parts = texts[1].split() + draw((610, 540, 917, 670), parts[0], "left") + if len(parts) >= 2: + draw((50, 680, 887, 810), " ".join(parts[1:]), "center") + + return frame.save_jpg() + + +add_meme( + "wujing", + wujing, + min_texts=2, + max_texts=2, + default_texts=["不买华为不是", "人"], + keywords=["吴京xx中国xx"], + patterns=[r"吴京[\s::]*(.*?)中国(.*)"], +) diff --git a/meme_generator/memes/wujing/images/0.jpg b/meme_generator/memes/wujing/images/0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84abb6e3ec5f07082f893f593bf9f98691f4bb6b Binary files /dev/null and b/meme_generator/memes/wujing/images/0.jpg differ diff --git a/meme_generator/memes/youtube/__init__.py b/meme_generator/memes/youtube/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..fb10860d6bf9c736e6fc68dde0165c1354ec035b --- /dev/null +++ b/meme_generator/memes/youtube/__init__.py @@ -0,0 +1,65 @@ +from pathlib import Path +from typing import List + +from PIL.Image import Transpose +from pil_utils import BuildImage, Text2Image + +from meme_generator import add_meme + +img_dir = Path(__file__).parent / "images" + + +def youtube(images, texts: List[str], args): + left_img = Text2Image.from_text(texts[0], fontsize=200, fill="black").to_image( + bg_color="white", padding=(30, 20) + ) + + right_img = Text2Image.from_text( + texts[1], fontsize=200, fill="white", weight="bold" + ).to_image(bg_color=(230, 33, 23), padding=(50, 20)) + right_img = BuildImage(right_img).resize_canvas( + (max(right_img.width, 400), right_img.height), bg_color=(230, 33, 23) + ) + right_img = right_img.circle_corner(right_img.height // 2) + + frame = BuildImage.new( + "RGBA", + (left_img.width + right_img.width, max(left_img.height, right_img.height)), + "white", + ) + frame.paste(left_img, (0, frame.height - left_img.height)) + frame = frame.resize_canvas( + (frame.width + 100, frame.height + 100), bg_color="white" + ) + + corner = BuildImage.open(img_dir / "corner.png") + ratio = right_img.height / 2 / corner.height + corner = corner.resize((int(corner.width * ratio), int(corner.height * ratio))) + x0 = left_img.width + 50 + y0 = frame.height - right_img.height - 50 + x1 = frame.width - corner.width - 50 + y1 = frame.height - corner.height - 50 + frame.paste(corner, (x0, y0 - 1), alpha=True).paste( + corner.transpose(Transpose.FLIP_TOP_BOTTOM), (x0, y1 + 1), alpha=True + ).paste( + corner.transpose(Transpose.FLIP_LEFT_RIGHT), (x1, y0 - 1), alpha=True + ).paste( + corner.transpose(Transpose.FLIP_TOP_BOTTOM).transpose( + Transpose.FLIP_LEFT_RIGHT + ), + (x1, y1 + 1), + alpha=True, + ).paste( + right_img, (x0, y0), alpha=True + ) + return frame.save_jpg() + + +add_meme( + "youtube", + youtube, + min_texts=2, + max_texts=2, + default_texts=["Porn", "Hub"], + keywords=["yt", "youtube"], +) diff --git a/meme_generator/memes/youtube/images/corner.png b/meme_generator/memes/youtube/images/corner.png new file mode 100644 index 0000000000000000000000000000000000000000..53a53f233e29c814585fd489d2c47ee18bce8ecb --- /dev/null +++ b/meme_generator/memes/youtube/images/corner.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed5ce43ba155ca0018d3e815135f9ed2978ded336a16541a26ab6b6e98e4d05c +size 3340