Create_Covers.Py
None
!! function
get_font function
get_font source
def get_font( path: Path, draw: ImageDraw.Draw, title: str, size: int = 250, ) -> ImageFont.FreeTypeFont: font = ImageFont.truetype(path, size=size) if draw.textsize(title, font=font)[0] > 800: return get_font(path, draw, title, size - 10) return font
!! function
make_cover function
make_cover source
def make_cover( title: str, color: str, output_path: Path, template_path: Path, font_path: Path, ) -> None: image = Image.open(template_path) draw = ImageDraw.Draw(image) font = get_font(font_path, draw, title) color = "rgb(255,255,255)" padding = (200, 100) bounding_box = [padding[0], padding[1], 1000 - padding[0], 420 - padding[1]] x1, y1, x2, y2 = bounding_box w, h = draw.textsize(title, font=font) x = (x2 - x1 - w) / 2 + x1 y = (y2 - y1 - h) / 2 + y1 draw.text((x, y), title, fill=color, font=font, align="center") image.save(output_path)
!! function
save function
save source
def save(markata: "Markata") -> None: for article in markata.articles: output_path = Path(markata.output_dir) / ( Path(article.metadata["path"]).stem + ".png" ) make_cover( article.metadata["title"], markata.config["cover_font_color"], output_path, markata.config["cover_template"], markata.config["cover_font"], )