Beispiel #1
0
    def lines(self):
        if hasattr(self, "_lines"):
            return self._lines

        line_config = [
            (self.DEFAULT_TEXT_ABOVE, self.DEFAULT_TEXT_FONT, self.DEFAULT_TEXT_FONT_SIZE, self.DEFAULT_TEXT_PADDING)
        ]

        custom_text_font_size = self._get_custom_text_font_size()
        for line in self._split_custom_text_in_lines():
            line_config.append((line, self.CUSTOM_TEXT_FONT, custom_text_font_size, self.CUSTOM_TEXT_PADDING))

        line_config.append(
            (self.DEFAULT_TEXT_BELOW, self.DEFAULT_TEXT_FONT, self.DEFAULT_TEXT_FONT_SIZE, self.DEFAULT_TEXT_PADDING)
        )

        lines = []
        y_offset = self.STARTING_Y_OFFSET
        for text, font_name, font_size, padding in line_config:
            font_path = get_resource_path("fonts/" + font_name)
            font = ImageFont.truetype(font_path, font_size)
            tw, th = font.getsize(text)
            x, y = (self.image_width - tw) // 2, y_offset
            lines.append(self.Line(x=x, y=y, w=tw, h=th, font=font, text=text))
            y_offset += th + padding

        self._lines = lines
        return self._lines
Beispiel #2
0
# -*- coding: utf-8 -*-

from __future__ import division

from collections import namedtuple
from itertools import izip_longest

from PIL import Image, ImageFont, ImageDraw

from ga import settings
from ga.utils import get_resource_path


BORDER = Image.open(get_resource_path("images/border.png"))
OVERLAY = Image.open(get_resource_path("images/overlay.png"))


class Banner(object):

    Line = namedtuple("Line", ["x", "y", "w", "h", "font", "text"])

    DEFAULT_TEXT_FONT = "Montserrat-Regular.otf"
    DEFAULT_TEXT_ABOVE = u"M A K E"
    DEFAULT_TEXT_BELOW = u"G R E A T  A G A I N !"
    DEFAULT_TEXT_FONT_SIZE = 28
    DEFAULT_TEXT_PADDING = 0

    CUSTOM_TEXT_FONT = "OldStandard-Regular.ttf"
    CUSTOM_TEXT_PADDING = 10

    STARTING_Y_OFFSET = 60