def generate(self, avatars, text, usernames): base = Image.open('assets/spank/spank.jpg').resize((500, 500)) img1 = http.get_image(avatars[0]).resize((140, 140)).convert('RGBA') img2 = http.get_image(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(b, mimetype='image/png')
def generate(self, avatars, text, usernames): base = Image.open('assets/screams/screams.jpg').convert('RGBA') avatar = http.get_image(avatars[0]).resize((175, 175)).convert('RGBA') avatar2 = http.get_image(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(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): base = Image.open("assets/spank/spank.bmp").resize((500, 500)) img1 = http.get_image(avatars[0]).resize((140, 140)).convert("RGBA") img2 = http.get_image(avatars[1]).resize((120, 120)).convert("RGBA") base.paste(img1, (225, 5), img1) base.paste(img2, (350, 220), img2) base = base.convert("RGBA") b = BytesIO() base.save(b, format="png") b.seek(0) return send_file(b, mimetype="image/png")
def generate(self, avatars, text, usernames, kwargs): base = Image.open(self.assets.get('assets/batslap/batslap.bmp')).resize((1000, 500)).convert('RGBA') avatar = http.get_image(avatars[1]).resize((220, 220)).convert('RGBA') avatar2 = http.get_image(avatars[0]).resize((200, 200)).convert('RGBA') base.paste(avatar, (580, 260), avatar) base.paste(avatar2, (350, 70), avatar2) base = base.convert('RGB') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames): base = Image.open('assets/madethis/madethis.png').convert('RGBA') avatar = http.get_image(avatars[0]).resize((130, 130)).convert('RGBA') avatar2 = http.get_image(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(b, mimetype='image/png')
def generate(self, avatars, text, usernames): base = Image.open('assets/bed/bed.png').convert('RGBA') avatar = http.get_image(avatars[0]).resize((100, 100)).convert('RGBA') avatar2 = http.get_image(avatars[1]).resize((70, 70)).convert('RGBA') avatar_small = avatar.copy().resize((70, 70)) base.paste(avatar, (25, 100), avatar) base.paste(avatar, (25, 300), avatar) base.paste(avatar_small, (53, 450), avatar_small) base.paste(avatar2, (53, 575), avatar2) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames): avatar = Image.open(http.get_image(avatars[0])).resize( (400, 400)).convert('RGBA') joy = Image.open('assets/deepfry/joy.png').resize( (100, 100)).rotate(randint(-30, 30)).convert('RGBA') hand = Image.open('assets/deepfry/ok-hand.png').resize( (100, 100)).rotate(randint(-30, 30)).convert('RGBA') hundred = Image.open('assets/deepfry/100.png').resize( (100, 100)).rotate(randint(-30, 30)).convert('RGBA') fire = Image.open('assets/deepfry/fire.png').resize( (100, 100)).rotate(randint(-30, 30)).convert('RGBA') 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(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): base = Image.open("assets/obama/obama.jpg") font = ImageFont.truetype("assets/fonts/arimobold.ttf", size=36) canv = ImageDraw.Draw(base) avatar = (http.get_image(avatars[0]).resize( (200, 200), Image.LANCZOS).convert("RGBA")) w, _ = canv.textsize(wrap(font, usernames[0], 400), font) base.paste(avatar, (120, 73), avatar) base.paste(avatar, (365, 0), avatar) render_text_with_emoji( base, canv, (int(210 - (w / 2)), 400), wrap(font, usernames[0], 400), font, "white", ) render_text_with_emoji( base, canv, (int(470 - (w / 2)), 300), wrap(font, usernames[0], 400), font, "white", ) base = base.convert("RGB") b = BytesIO() base.save(b, format="jpeg") b.seek(0) return send_file(b, mimetype="image/jpeg")
def generate(self, avatars, text, usernames, kwargs): avatar = http.get_image(avatars[0]).resize((320, 320)).convert('RGBA') triggered = Image.open(self.assets.get('assets/triggered/triggered.bmp')) tint = Image.open(self.assets.get('assets/triggered/red.bmp')).convert('RGBA') blank = Image.new('RGBA', (256, 256), color=(231, 19, 29)) frames = [] for i in range(8): base = blank.copy() if i == 0: base.paste(avatar, (-16, -16), avatar) else: base.paste(avatar, (-32 + randint(-16, 16), -32 + randint(-16, 16)), avatar) base.paste(tint, (0, 0), tint) if i == 0: base.paste(triggered, (-10, 200)) else: base.paste(triggered, (-12 + randint(-8, 8), 200 + randint(0, 12))) frames.append(base) b = BytesIO() frames[0].save(b, save_all=True, append_images=frames[1:], format='gif', loop=0, duration=20, disposal=2, optimize=True) b.seek(0) return send_file(b, mimetype='image/gif')
def generate(self, avatars, text, usernames, kwargs): avatar = http.get_image(avatars[0]).resize((52, 52)).convert('RGBA') name = usernames[0] base = Image.open(self.assets.get('assets/youtube/youtube.bmp')).convert('RGBA') font = self.assets.get_font('assets/fonts/robotomedium.ttf', size=17, ) font2 = self.assets.get_font('assets/fonts/robotoregular.ttf', size=17, ) font3 = self.assets.get_font('assets/fonts/robotoregular.ttf', size=19, ) bigsize = (avatar.size[0] * 3, avatar.size[1] * 3) mask = Image.new('L', bigsize, 0) draw = ImageDraw.Draw(mask) draw.ellipse((0, 0) + bigsize, fill=255) mask = mask.resize(avatar.size, Image.ANTIALIAS) avatar.putalpha(mask) base.paste(avatar, (17, 33), avatar) canv = ImageDraw.Draw(base) op = wrap(font, name, 1150) size = canv.textsize(name, font=font) comment = wrap(font3, text, 550) num = randint(1, 59) plural = '' if num == 1 else 's' time = f'{num} minute{plural} ago' canv.text((92, 34), op, font=font, fill='Black') canv.text((100 + size[0], 34), time, font=font2, fill='Grey') canv.text((92, 59), comment, font=font3, fill='Black') base = base.convert('RGBA') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): base = Image.open( self.assets.get('assets/garfield/garfield.png')).convert('RGB') no_entry = Image.open(self.assets.get( 'assets/garfield/no_entry.png')).convert('RGBA').resize( (224, 224), Image.LANCZOS) font = self.assets.get_font('assets/fonts/arial.ttf', size=28) avatar = get_image(avatars[0]).resize((192, 192), Image.LANCZOS).convert('RGBA') avatar2 = avatar.copy().resize((212, 212), Image.LANCZOS).convert('RGBA') base.paste(avatar, (296, 219), avatar) base.paste(no_entry, (280, 203), no_entry) base.paste(avatar2, (40, 210), avatar2) draw = ImageDraw.Draw(base) render_text_with_emoji(base, draw, (15, 0), wrap(font, text, base.width), font, 'black') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): base = Image.open(self.assets.get('assets/byemom/mom.bmp')) avatar = http.get_image(avatars[0]).convert('RGBA').resize( (70, 70), resample=Image.BICUBIC) avatar2 = avatar.copy().resize((125, 125), resample=Image.BICUBIC) text_layer = Image.new('RGBA', (350, 25)) bye_layer = Image.new('RGBA', (180, 51), (255, 255, 255)) font = self.assets.get_font('assets/fonts/arial.ttf', size=20) bye_font = self.assets.get_font('assets/fonts/arimobold.ttf', size=14) canv = ImageDraw.Draw(text_layer) bye = ImageDraw.Draw(bye_layer) username = usernames[0] or 'Tommy' msg = 'Alright {} im 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, (530, 15), avatar) base.paste(avatar2, (70, 340), avatar2) base = base.convert('RGBA') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): blank = Image.new('RGBA', (400, 128), (255, 255, 255, 0)) avatar = http.get_image(avatars[0]).convert('RGBA').resize((128, 128)) left = Image.open('assets/airpods/left.gif') right = Image.open('assets/airpods/right.gif') out = [] for i in range(0, left.n_frames): left.seek(i) right.seek(i) f = blank.copy().convert('RGBA') l = left.copy().convert('RGBA') r = right.copy().convert('RGBA') f.paste(l, (0, 0), l) f.paste(avatar, (136, 0), avatar) f.paste(r, (272, 0), r) out.append(f.resize((400, 128), Image.LANCZOS).convert('RGBA')) b = BytesIO() out[0].save(b, format='gif', save_all=True, append_images=out[1:], loop=0, disposal=2, optimize=True, duration=30, transparency=0) b.seek(0) return send_file(b, mimetype='image/gif')
def generate(self, avatars, text, usernames): avatar = http.get_image(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(b, mimetype='image/gif')
def generate(self, avatars, text, usernames, kwargs): avatar = http.get_image(avatars[0]).resize((400, 400)).convert("RGBA") # noinspection PyPep8 joy, hand, hundred, fire = [ Image.open(f"assets/deepfry/{asset}.bmp").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(b, mimetype="image/png")
def generate(self, avatars, text, usernames, kwargs): base = Image.open(self.assets.get('assets/tweet/trump.bmp')) avatar = http.get_image(avatars[0]).resize((98, 98)).convert('RGBA') font = self.assets.get_font( 'assets/fonts/segoeuireg.ttf', size=50, ) font2 = self.assets.get_font('assets/fonts/robotomedium.ttf', size=40) font3 = self.assets.get_font('assets/fonts/robotoregular.ttf', size=29) font4 = self.assets.get_font('assets/fonts/robotoregular.ttf', size=35) circle = Image.new('L', (20, 20), 0) draw = ImageDraw.Draw(circle) draw.ellipse((0, 0, 20, 20), fill=255) alpha = Image.new('L', avatar.size, 255) w, h = avatar.size alpha.paste(circle.crop((0, 0, 10, 10)), (0, 0)) alpha.paste(circle.crop((0, 10, 10, 10 * 2)), (0, h - 10)) alpha.paste(circle.crop((10, 0, 10 * 2, 10)), (w - 10, 0)) alpha.paste(circle.crop((10, 10, 10 * 2, 10 * 2)), (w - 10, h - 10)) avatar.putalpha(alpha) base.paste(avatar, (42, 38), avatar) canv = ImageDraw.Draw(base) text2 = wrap(font2, usernames[0], 1150) tag_raw = usernames[1] if len(usernames) == 2 else usernames[0] text3 = wrap(font3, f'@{tag_raw}', 1150) time = datetime.now().strftime('%-I:%M %p - %d %b %Y') retweets = "{:,}".format(randint(0, 99999)) likes = "{:,}".format(randint(0, 99999)) text4 = wrap(font3, time, 1150) text5 = wrap(font4, retweets, 1150) text6 = wrap(font4, likes, 1150) total_size = (45, 160) for i in text.split(' '): i += ' ' if i.startswith(('@', '#')): if total_size[0] > 1000: total_size = (45, total_size[1] + 65) canv.text(total_size, i, font=font, fill='#1b95e0') y = canv.textsize(i, font=font) total_size = (total_size[0] + y[0], total_size[1]) else: if total_size[0] > 1000: total_size = (45, total_size[1] + 65) canv.text(total_size, i, font=font, fill='Black') y = canv.textsize(i, font=font) total_size = (total_size[0] + y[0], total_size[1]) canv.text((160, 45), text2, font=font2, fill='Black') canv.text((160, 95), text3, font=font3, fill='Grey') canv.text((40, 570), text4, font=font3, fill='Grey') canv.text((40, 486), text5, font=font4, fill='#2C5F63') canv.text((205, 486), text6, font=font4, fill='#2C5F63') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames): base = Image.open('assets/ugly/ugly.png').convert('RGBA') avatar = http.get_image(avatars[0]).resize((175, 175)).convert('RGBA') base.paste(avatar, (120, 55), avatar) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): base = Image.open("assets/wanted/wanted.bmp").convert("RGBA") avatar = http.get_image(avatars[0]).resize((447, 447)).convert("RGBA") base.paste(avatar, (145, 282), avatar) b = BytesIO() base.save(b, format="png") b.seek(0) return send_file(b, mimetype="image/png")
def generate(self, avatars, text, usernames): base = Image.open('assets/whodidthis/whodidthis.png') avatar = http.get_image(avatars[0]).resize((720, 405)).convert('RGBA') base.paste(avatar, (0, 159), avatar) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): base = Image.open(self.assets.get('assets/roblox/roblox.bmp')).convert('RGBA') avatar = http.get_image(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(b, mimetype='image/png')
def generate(self, avatars, text, usernames): base = Image.open('assets/hitler/hitler.jpeg') img1 = http.get_image(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(b, mimetype='image/png')
def generate(self, avatars, text, usernames): overlay = Image.open('assets/jail/jail.png').resize((350, 350)) base = http.get_image(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(b, mimetype='image/png')
def generate(self, avatars, text, usernames): base = Image.open('assets/bongocat/bongocat.png').convert('RGBA') avatar = http.get_image(avatars[0]).resize((750, 750)).convert('RGBA') avatar.paste(base, (0, 0), base) b = BytesIO() avatar.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames): base = Image.open('assets/failure/failure.jpg').convert('RGBA') avatar = Image.open(http.get_image(avatars[0])).resize((215, 215)).convert('RGBA') base.paste(avatar, (143, 525), avatar) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): base = Image.open("assets/ugly/ugly.bmp").convert("RGBA") avatar = http.get_image(avatars[0]).resize((175, 175)).convert("RGBA") base.paste(avatar, (120, 55), avatar) base = base.convert("RGBA") b = BytesIO() base.save(b, format="png") b.seek(0) return send_file(b, mimetype="image/png")
def generate(self, avatars, text, usernames): base = Image.open('assets/cancer/cancer.png').convert('RGBA') avatar = Image.open(http.get_image(avatars[0])).resize((100, 100)).convert('RGBA') base.paste(avatar, (351, 200), avatar) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): overlay = Image.open("assets/jail/jail.bmp").resize((350, 350)) base = http.get_image(avatars[0]).convert("LA").resize((350, 350)) base.paste(overlay, (0, 0), overlay) base = base.convert("RGBA") b = BytesIO() base.save(b, format="png") b.seek(0) return send_file(b, mimetype="image/png")
def generate(self, avatars, text, usernames, kwargs): base = Image.open('assets/ban/ban.bmp').convert('RGBA') avatar = http.get_image(avatars[0]).resize((400, 400)).convert('RGBA') base.paste(avatar, (70, 344), avatar) base = base.convert('RGBA') b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')
def generate(self, avatars, text, usernames, kwargs): base = Image.open('assets/aborted/aborted.bmp') img1 = http.get_image(avatars[0]).convert('RGBA').resize((90, 90)) base.paste(img1, (390, 130), img1) base = base.convert('RGB') b = BytesIO() base.save(b, format='jpeg') b.seek(0) return send_file(b, mimetype='image/jpeg')
def generate(self, avatars, text, usernames): avatar = http.get_image(avatars[0]).resize((200, 157)).convert('RGBA') base = Image.open('assets/affect/affect.png').convert('RGBA') base.paste(avatar, (180, 383, 380, 540), avatar) b = BytesIO() base.save(b, format='png') b.seek(0) return send_file(b, mimetype='image/png')