INNER CODE UNIT · Python
text_layer
utopia-rise/godot-jvm · logo/export.py:165
def text_layer(text, fnt, fill, tracking=0.0):
"""Render text with letter tracking (fraction of font size) into a tightly cropped layer."""
layer = Image.new('RGBA', (CANVAS_W, fnt.size * 2), (0, 0, 0, 0))
draw = ImageDraw.Draw(layer)
x = 0
for character in text:
draw.text((x, fnt.size * 1.2), character, font=fnt, fill=fill, anchor='ls')
x += fnt.getlength(character) + tracking * fnt.size
return layer.crop(layer.getbbox())
def badge_row(fnt, height=100, icon_box=50, gap=20, pad_x=36, icon_gap=20):
"""Render the language badges into a tightly cropped layer."""
row = Image.new('RGBA', (CANVAS_W, height), (0, 0, 0, 0))
x = 0
for name, label in LANGUAGES:
with Image.open(LANGUAGE / f'{name}.png') as image:
icon = image.convert('RGBA')
icon = icon.crop(icon.getbbox())