Вопрос

Я создаю изображения с помощью 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")

Однако полученное изображение (alt text) не отражает, какой шрифт должно выглядеть как.

Какую процедуру я должен использовать для преобразования и использования пиксельных шрифтов, чтобы они отображались так, как задумано?

Заранее благодарю.

Это было полезно?

Решение

Эврика!

Просто нужно было указать разрешение 72 dpi (по умолчанию 100) для otf2bdf:

otf2bdf -p 8 -r 72 -o fonts/slkscr.bdf fonts/slkscr.ttf

Сейчас, alt text выглядит великолепно!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top