- box = TextBox(metr.title_box_width, metr.height, padding_y=metr.box_padding_y)
- author_font = ImageFont.truetype(
- self.author_font_ttf, metr.author_font_size)
- box.text(self.pretty_author(),
- font=author_font,
- line_height=metr.author_lineskip,
- color=self.author_color,
- shadow_color=self.author_shadow,
- )
-
- box.skip(metr.box_above_line)
- box.draw.line((metr.box_line_left, box.height, metr.box_line_right, box.height),
- fill=self.author_color, width=metr.box_line_width)
- box.skip(metr.box_below_line)
-
- title_font = ImageFont.truetype(
- self.title_font_ttf, metr.title_font_size)
- box.text(self.pretty_title(),
- line_height=metr.title_lineskip,
- font=title_font,
- color=epoch_color,
- shadow_color=self.title_shadow,
- )
-
- if self.with_logo:
- logo = Image.open(get_resource('res/wl-logo-mono.png'))
- logo = logo.resize((metr.logo_width, logo.size[1] * metr.logo_width / logo.size[0]), Image.ANTIALIAS)
- alpha = logo.split()[3]
- alpha = ImageEnhance.Brightness(alpha).enhance(.75)
- logo.putalpha(alpha)
- box.skip(metr.logo_top + logo.size[1])
-
- box_img = box.image()
-
- if self.kind == 'Liryka':
- # top
- box_top = metr.box_top_margin
- elif self.kind == 'Epika':
- # bottom
- box_top = metr.height - metr.box_bottom_margin - box_img.size[1]
- else:
- # center
- box_top = (metr.height - box_img.size[1]) / 2
-
- box_left = metr.bar_width + (metr.width - metr.bar_width -
- box_img.size[0]) / 2
- draw.rectangle((box_left, box_top,
- box_left + box_img.size[0], box_top + box_img.size[1]),
- fill='#fff')
- img.paste(box_img, (box_left, box_top), box_img)
-
- if self.with_logo:
- img.paste(logo,
- (box_left + (box_img.size[0] - logo.size[0]) / 2,
- box_top + box_img.size[1] - metr.box_padding_y - logo.size[1]), mask=logo)