Exemple #1
0
    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')
Exemple #2
0
    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')
Exemple #3
0
    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")
Exemple #4
0
    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')
Exemple #5
0
    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')
Exemple #6
0
    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')
Exemple #7
0
    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')
Exemple #8
0
    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')
Exemple #10
0
    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')
Exemple #11
0
    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')
Exemple #12
0
    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')
Exemple #13
0
    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')
Exemple #14
0
    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')
Exemple #15
0
    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")
Exemple #16
0
    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')
Exemple #17
0
    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')
Exemple #18
0
    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")
Exemple #19
0
    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')
Exemple #20
0
    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')
Exemple #21
0
    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')
Exemple #22
0
    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')
Exemple #23
0
    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')
Exemple #24
0
    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')
Exemple #25
0
    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")
Exemple #26
0
    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')
Exemple #27
0
    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")
Exemple #28
0
    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')
Exemple #29
0
    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')
Exemple #30
0
    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')