Как преобразовать весь шрифт ttf в изображение png, то есть все символы шрифта должны быть в png

Рейтинг: 0Ответов: 1Опубликовано: 11.08.2023

Я находил только скрипты преобразования каждого символа шрифта в png. К примеру,

# pip install Pillow
from PIL import Image, ImageFont, ImageDraw

# use a truetype font (.ttf)
# font file from fonts.google.com (https://fonts.google.com/specimen/Courier+Prime?query=courier)
font_path = "fonts/Courier Prime/"
font_name = "CourierPrime-Regular.ttf"
out_path = font_path

font_size = 16 # px
font_color = "#000000" # HEX Black

# Create Font using PIL
font = ImageFont.truetype(font_path+font_name, font_size)

# Copy Desired Characters from Google Fonts Page and Paste into variable
desired_characters = "ABCČĆDĐEFGHIJKLMNOPQRSŠTUVWXYZŽabcčćdđefghijklmnopqrsštuvwxyzž1234567890‘?’“!”(%)[#]{@}/&\<-+÷×=>®©$€£¥¢:;,.*"

# Loop through the characters needed and save to desired location
for character in desired_characters:
    
    # Get text size of character
    width, height = font.getsize(character)
    
    # Create PNG Image with that size
    img = Image.new("RGBA", (width, height))
    draw = ImageDraw.Draw(img)
    
    # Draw the character
    draw.text((-2, 0), str(character), font=font, fill=font_color)
    
    # Save the character as png
    try:
        img.save(out_path + str(ord(character)) + ".png")
    except:

        print(f"[-] Couldn't Save:\t{character}")

Ответы

▲ 0

использовал textwrap.wrap, чтобы многострочно нарисовать символы. Однако это позволяет разделить текст по выбранному количеству символов, то есть: 1 строка - 16 символов 2 строка - 16 символов ... последняя строка - оставшиеся символы Допустим, если символы широкие, то может случится такой момент, что символы выйдут за горизонт image.