async def generate(self, request, avatars, text, usernames): avatar = Image.open(await http.get_image(request, avatars[0])).resize( (150, 150)) base = Image.new('RGBA', (1500, 300)) font_med = ImageFont.truetype(font='assets/fonts/medium.woff', size=60) font_time = ImageFont.truetype(font='assets/fonts/medium.woff', size=40) font_sb = ImageFont.truetype(font='assets/fonts/semibold.woff', size=55) iv = await make_avatar_mask(avatar) base.paste(avatar, (15, 75), mask=iv) words = Image.new('RGBA', base.size) canvas = ImageDraw.Draw(words) canvas.text((230, 70), usernames[0], font=font_med, fill='White') canvas.text((230, 150), text, font=font_sb, fill=(160, 160, 160)) timestamp_left = 230 + canvas.textsize(usernames[0], font=font_med)[0] + 20 canvas.text((timestamp_left, 90), 'Today at {}'.format(datetime.utcnow().strftime("%H:%M")), font=font_time, fill=(125, 125, 125)) final = Image.alpha_composite(base, words) downscaled = final.resize((500, 100), Image.ANTIALIAS) b = BytesIO() downscaled.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/plan/plan.png').convert('RGBA') font = ImageFont.truetype(font='assets/fonts/sans.ttf', size=16) canv = ImageDraw.Draw(base) words = text.split(', ') if len(words) != 3: words = [ 'you need three items for this command', 'and each should be split by commas', 'Example: pls plan 1, 2, 3' ] words = [wrap(font, w, 120) for w in words] a, b, c = words canv.text((190, 60), a, font=font, fill='Black') canv.text((510, 60), b, font=font, fill='Black') canv.text((190, 280), c, font=font, fill='Black') canv.text((510, 280), c, font=font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open( 'assets/knowyourlocation/knowyourlocation.jpg').convert('RGBA') # We need a text layer here for the rotation canv = ImageDraw.Draw(base) text = text.split(', ') if len(text) != 2: text = ["Separate the items with a", "comma followed by a space"] top, bottom = text top_font, top_text = await auto_text_size( top, ImageFont.truetype(font='assets/fonts/sans.ttf'), 630) bottom_font, bottom_text = await auto_text_size( bottom, ImageFont.truetype(font='assets/fonts/sans.ttf'), 539) canv.text((64, 131), top_text, font=top_font, fill='Black') canv.text((120, 450), bottom_text, font=bottom_font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): avatar = Image.open(await http.get_image(request, avatars[0])).convert('RGBA').resize( (256, 256)) salt = (Image.open('assets/salty/salt.png').convert('RGBA').resize( (256, 256)).rotate(-130, resample=Image.BICUBIC)) blank = Image.new('RGBA', (256, 256)) blank.paste(avatar, (0, 0), avatar) frames = [] for i in range(8): base = blank.copy() if i == 0: base.paste(salt, (-125, -125), salt) else: base.paste(salt, (-135 + randint(-5, 5), -135 + randint(-5, 5)), salt) frames.append(base) b = BytesIO() frames[0].save(b, save_all=True, append_images=frames[1:], format='gif', loop=0, duration=20, optimize=True) b.seek(0) return send_file(body=b, content_type='image/gif')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/byemom/mom.png') avatar = await make_avatar( Image.open(await http.get_image(request, avatars[0])).convert('RGBA').resize((250, 250), resample=Image.BICUBIC)) avatar2 = avatar.copy().resize((125, 125), resample=Image.ANTIALIAS) avatar = avatar.resize((70, 70), Image.ANTIALIAS).rotate(-27, resample=Image.BICUBIC, expand=True) text_layer = Image.new('RGBA', (350, 25)) bye_layer = Image.new('RGBA', (180, 51), (255, 255, 255)) font = ImageFont.truetype(font='assets/fonts/arial.ttf', size=20) bye_font = ImageFont.truetype(font='assets/fonts/arimobold.ttf', size=14) canv = ImageDraw.Draw(text_layer) bye = ImageDraw.Draw(bye_layer) username = usernames[0] or 'tommy' msg = 'Alright {} I\'m leaving the house to run some errands'.format(username) text = wrap(font, text, 500) msg = wrap(font, msg, 200) canv.text((0, 0), text, font=font, fill='Black') bye.text((0, 0), msg, font=bye_font, fill=(42, 40, 165)) text_layer = text_layer.rotate(24.75, resample=Image.BICUBIC, expand=True) base.paste(text_layer, (350, 443), text_layer) base.paste(bye_layer, (150, 7)) base.paste(avatar, (513, 2), avatar) base.paste(avatar2, (70, 340), avatar2) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): avatar = Image.open(await http.get_image(request, avatars[0])).resize( (400, 400)).convert('RGBA') joy, hand, hundred, fire = [ Image.open(f'assets/deepfry/{asset}.png').resize( (100, 100)).rotate(randint(-30, 30)).convert('RGBA') for asset in ['joy', 'ok-hand', '100', 'fire'] ] avatar.paste(joy, (randint(20, 75), randint(20, 45)), joy) avatar.paste(hand, (randint(20, 75), randint(150, 300)), hand) avatar.paste(hundred, (randint(150, 300), randint(20, 45)), hundred) avatar.paste(fire, (randint(150, 300), randint(150, 300)), fire) noise = avatar.convert('RGB') noise = noisegen.add_noise(noise, 25) noise = ImageEnhance.Contrast(noise).enhance(randint(5, 20)) noise = ImageEnhance.Sharpness(noise).enhance(17.5) noise = ImageEnhance.Color(noise).enhance(randint(-15, 15)) b = BytesIO() noise.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/roblox/roblox.png').convert('RGBA') avatar = Image.open(await http.get_image(request, avatars[0])).resize((56, 74)).convert('RGBA') base.paste(avatar, (168, 41), avatar) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/batslap/batslap.jpg').resize((1000, 500)).convert('RGBA') avatar = Image.open(await http.get_image(request, avatars[1])).resize((220, 220)).convert('RGBA') avatar2 = Image.open(await http.get_image(request, avatars[0])).resize((200, 200)).convert('RGBA') base.paste(avatar, (580, 260), avatar) base.paste(avatar2, (350, 70), avatar2) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/tweet/trump.jpg') font = ImageFont.truetype(font='assets/fonts/segoeuireg.ttf', size=50) canv = ImageDraw.Draw(base) text = wrap(font, text, 1150) canv.text((45, 160), text, font=font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): implode = '-{}'.format(str(randint(3, 15))) roll = '+{}+{}'.format(randint(0, 256), randint(0, 256)) swirl = '{}{}'.format(choice(["+", "-"]), randint(120, 180)) concat = ['-implode', implode, '-roll', roll, '-swirl', swirl] output = await gm.convert(request, avatars[0], concat, 'png') b = BytesIO(output) b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): img1 = Image.open(await http.get_image(request, avatars[0])) img2 = Image.open('assets/gay/gay.png').convert('RGBA').resize( img1.size) img2.putalpha(128) img1.paste(img2, (0, 0), img2) b = BytesIO() img1.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/abandon/abandon.png') font = ImageFont.truetype(font='assets/fonts/verdana.ttf', size=24) canv = ImageDraw.Draw(base) text = wrap(font, text, 320) canv.text((25, 413), text, font=font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): avatar = Image.open(await http.get_image(request, avatars[0])).resize( (175, 175)).convert('RGBA') base = Image.open('assets/disability/disability.jpg').convert('RGBA') base.paste(avatar, (450, 325), avatar) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): avatar = Image.open(await http.get_image(request, avatars[0])).resize( (483, 483)).convert('RGBA') base = Image.open('assets/trash/trash.png').convert('RGBA') avatar = avatar.filter(ImageFilter.GaussianBlur(radius=6)) base.paste(avatar, (480, 0), avatar) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): overlay = Image.open('assets/jail/jail.png').resize((350, 350)) base = Image.open(await http.get_image(request, avatars[0])).convert('LA').resize( (350, 350)) base.paste(overlay, (0, 0), overlay) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/hitler/hitler.jpeg') img1 = Image.open(await http.get_image(request, avatars[0])).convert('RGBA').resize( (140, 140)) base.paste(img1, (46, 43), img1) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/armor/armor.png').convert('RGBA') # We need a text layer here for the rotation font, text = await auto_text_size(text, ImageFont.truetype(font='assets/fonts/comic.ttf'), 207, font_scalar=1.5) canv = ImageDraw.Draw(base) canv.text((34, 355), text, font=font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/cry/cry.jpg') font = ImageFont.truetype(font='assets/fonts/tahoma.ttf', size=20) canv = ImageDraw.Draw(base) text = wrap(font, text, 180) canv.text((382, 80), text, font=font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/search/thesearch.png').convert('RGBA') font = ImageFont.truetype(font='assets/fonts/sans.ttf', size=16) canv = ImageDraw.Draw(base) text = wrap(font, text, 178) canv.text((65, 335), text, font=font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/spank/spank.jpg').resize((500, 500)) img1 = Image.open(await http.get_image(request, avatars[0])).resize( (140, 140)).convert('RGBA') img2 = Image.open(await http.get_image(request, avatars[1])).resize( (120, 120)).convert('RGBA') base.paste(img1, (225, 5), img1) base.paste(img2, (350, 220), img2) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/screams/screams.jpg').convert('RGBA') avatar = Image.open(await http.get_image(request, avatars[0])).resize( (175, 175)).convert('RGBA') avatar2 = Image.open(await http.get_image(request, avatars[1])).resize( (156, 156)).convert('RGBA') base.paste(avatar, (200, 1), avatar) base.paste(avatar2, (136, 231), avatar2) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/brazzers/brazzers.png').resize( (300, 150)).convert('RGBA') avatar = Image.open(await http.get_image(request, avatars[0])).resize( (500, 500)).convert('RGBA') # avatar is technically the base avatar.paste(base, (200, 390), base) b = BytesIO() avatar.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/ohno/ohno.png').convert('RGBA') font = ImageFont.truetype(font='assets/fonts/sans.ttf', size=16 if len(text) > 38 else 32) canv = ImageDraw.Draw(base) text = wrap(font, text, 260) canv.text((340, 30), text, font=font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): avatar = Image.open(await http.get_image(request, avatars[0])).resize( (320, 320)).convert('RGBA') horn = Image.open('assets/dank/horn.png').convert('RGBA').resize( (100, 100)).rotate(315, resample=Image.BICUBIC) horn2 = ImageOps.mirror(horn.copy().resize( (130, 130)).rotate(350, resample=Image.BICUBIC)) hit = Image.open('assets/dank/hit.png').convert('RGBA').resize( (40, 40)) gun = Image.open('assets/dank/gun.png').convert('RGBA').resize( (250, 205)) faze = Image.open('assets/dank/faze.png').convert('RGBA').resize( (60, 40)) blank = Image.new('RGBA', (256, 256), color=(254, 0, 0)) blank.paste(avatar, (-20, -20), avatar) # blank.paste(overlay, None, overlay) frames = [] for i in range(8): base = blank.copy() if i == 0: base.paste(horn, (175, 0), horn) base.paste(horn2, (-60, 0), horn2) base.paste(hit, (90, 65), hit) base.paste(gun, (120, 130), gun) base.paste(faze, (5, 212), faze) else: base.paste(horn, (165 + randint(-8, 8), randint(0, 12)), horn) base.paste(horn2, (-50 + randint(-6, 6), randint(-2, 10)), horn2) base.paste(hit, (110 + randint(-30, 30), 55 + randint(-30, 30)), hit) base.paste(gun, (120, 130), gun) base.paste(faze, (12 + randint(-6, 6), 210 + randint(-2, 10)), faze) frames.append(base) b = BytesIO() frames[0].save(b, save_all=True, append_images=frames[1:], format='gif', loop=0, duration=20, optimize=True) b.seek(0) return send_file(body=b, content_type='image/gif')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/satan/satan.png').convert('RGBA') avatar = Image.open(await http.get_image(request, avatars[0])).resize( (195, 195)).convert('RGBA') final_image = Image.new('RGBA', base.size) # Put the base over the avatar final_image.paste(avatar, (200, 90), avatar) final_image.paste(base, (0, 0), base) b = BytesIO() final_image.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/madethis/madethis.png').convert('RGBA') avatar = Image.open(await http.get_image(request, avatars[0])).resize( (130, 130)).convert('RGBA') avatar2 = Image.open(await http.get_image(request, avatars[1])).resize( (111, 111)).convert('RGBA') base.paste(avatar, (92, 271), avatar) base.paste(avatar2, (422, 267), avatar2) base.paste(avatar2, (406, 678), avatar2) base.paste(avatar2, (412, 1121), avatar2) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): img = Image.open(await http.get_image(request, avatars[0])) if img.mode == 'RGBA': r, g, b, a = img.split() rgb_image = Image.merge('RGB', (r, g, b)) inverted = ImageOps.invert(rgb_image) r, g, b = inverted.split() img = Image.merge('RGBA', (r, g, b, a)) else: img = ImageOps.invert(img) b = BytesIO() img.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/facts/facts.jpg') # We need to create an image layer here for the rotation text_layer = Image.new('RGBA', base.size) font = ImageFont.truetype(font='assets/fonts/verdana.ttf', size=25) canv = ImageDraw.Draw(text_layer) text = wrap(font, text, 400) canv.text((90, 600), text, font=font, fill='Black') text_layer = text_layer.rotate(-13, resample=Image.BICUBIC) base.paste(text_layer, (0, 0), text_layer) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): base = Image.open('assets/humansgood/humansgood.jpg').convert('RGBA') # We need a text layer here for the rotation font, text = await auto_text_size( text, ImageFont.truetype(font='assets/fonts/sans.ttf'), 125, font_scalar=0.7) canv = ImageDraw.Draw(base) canv.text((525, 762), text, font=font, fill='Black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(body=b, content_type='image/png')
async def generate(self, request, avatars, text, usernames): avatar = await http.get_image(request, avatars[0]) with image.Image(file=avatar) as img: img.transform(resize='400x400') img.liquid_rescale(width=int(img.width * 0.5), height=int(img.height * 0.5), delta_x=0.5, rigidity=0) img.liquid_rescale(width=int(img.width * 1.5), height=int(img.height * 1.5), delta_x=2, rigidity=0) b = BytesIO() img.save(file=b) b.seek(0) return send_file(body=b, content_type='image/png')