From 6f5115c716a4443726e7b0dd31ae6e16d412d1ce Mon Sep 17 00:00:00 2001 From: Joachim Date: Wed, 19 Jan 2022 16:52:57 +0100 Subject: [PATCH] Use Source Han Sans for preview images generation --- bookwyrm/preview_images.py | 18 ++++++++++-------- requirements.txt | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bookwyrm/preview_images.py b/bookwyrm/preview_images.py index a97ae2d5c..917d985a2 100644 --- a/bookwyrm/preview_images.py +++ b/bookwyrm/preview_images.py @@ -29,23 +29,25 @@ margin = math.floor(IMG_HEIGHT / 10) gutter = math.floor(margin / 2) inner_img_height = math.floor(IMG_HEIGHT * 0.8) inner_img_width = math.floor(inner_img_height * 0.7) -font_dir = os.path.join(settings.STATIC_ROOT, "fonts/public_sans") +font_dir = os.path.join(settings.STATIC_ROOT, "fonts/source_han_sans") -def get_font(font_name, size=28): +def get_font(weight, size=28): """Loads custom font""" - if font_name == "light": - font_path = os.path.join(font_dir, "PublicSans-Light.ttf") - if font_name == "regular": - font_path = os.path.join(font_dir, "PublicSans-Regular.ttf") - elif font_name == "bold": - font_path = os.path.join(font_dir, "PublicSans-Bold.ttf") + font_path = os.path.join(font_dir, "SourceHanSans-VF.ttf.ttc") try: font = ImageFont.truetype(font_path, size) except OSError: font = ImageFont.load_default() + if (weight == 'light'): + font.set_variation_by_name('Light') + if (weight == 'bold'): + font.set_variation_by_name('Bold') + if (weight == 'regular'): + font.set_variation_by_name('Regular') + return font diff --git a/requirements.txt b/requirements.txt index 534a0593d..1f25895c7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ django-model-utils==4.0.0 environs==9.3.4 flower==1.0.0 Markdown==3.3.3 -Pillow>=8.2.0 +Pillow>=9.0.0 psycopg2==2.8.4 pycryptodome==3.9.4 python-dateutil==2.8.1