Использование пиксельных шрифтов в PIL
Вопрос
Я создаю изображения с помощью PIL, которые содержат множество точно размещенных текстовых строк.Моей первой попыткой было преобразовать пиксельные шрифты в pil-совместимый формат, как описано здесь.Например, я скачиваю шрифт Silksreen и конвертирую его:
otf2bdf -p 8pt -o fonts/slkscr.bdf fonts/slkscr.ttf
pilfont.py fonts/slkscr.bdf
Затем я могу использовать шрифт в PIL следующим образом:
import Image, ImageDraw, os, sys, ImageFont
im = Image.new("RGB", (40,10))
draw = ImageDraw.Draw(im)
fn = ImageFont.load('fonts/slkscr.pil')
draw.text((0,0), "Hello", font=fn)
del draw
# write to stdout
im.save(sys.stdout, "PNG")
Однако полученное изображение () не отражает, какой шрифт должно выглядеть как.
Какую процедуру я должен использовать для преобразования и использования пиксельных шрифтов, чтобы они отображались так, как задумано?
Заранее благодарю.
Решение
Эврика!
Просто нужно было указать разрешение 72 dpi (по умолчанию 100) для otf2bdf:
otf2bdf -p 8 -r 72 -o fonts/slkscr.bdf fonts/slkscr.ttf
Сейчас, выглядит великолепно!
Не связан с StackOverflow