В настоящее время я использую команду преобразования ImageMagick для создания предварительного просмотра текста (.png) из файла шрифта .ttf. В целом, автоматическое позиционирование текста лучше, несмотря на то, что иногда не удается прочитать какой-либо действительный файл .ttf. Скорость не велика, но приемлема.
ImageFont PIL выглядит плохо для выравнивания текста, часто печатает левый нижний угол первого символа вне холста.
Кто-нибудь знает какой-нибудь лучший выбор, кроме двух выше? Интересно, какие технологии нужны для предварительного просмотра текста на таких сайтах, как myfonts.com с таким большим трафиком.
EDIT
Пример шрифта PIL не смог правильно нарисовать шрифты. В этом примере используется шрифт Hanford script
import Image, ImageDraw, ImageFont
font = ImageFont.truetype('HANFORD_.TTF', 122)
text_width, text_height = font.getsize('Hanford script')
print text_width, text_height
>>> 833 47
img = Image.new('RGBA', (text_width, text_height))
draw = ImageDraw.Draw(img)
draw.text((0, 0), 'Hanford script', font=font, fill=(0, 0, 0))
img.save('output.png')
Выходное изображение содержит только верхнюю половину «сценария Хэнфорда».
Я попытался с помощью команды конвертации imagemagick:
convert -font "HANFORD_.TTF" -background transparent -gravity center -size 830x80 label:'Hanford script' output.png
Выходное изображение было таким же, как у PIL.
Это не единственный шрифт, который PIL или imagemagick не могут получить правильный размер текста. С некоторыми другими шрифтами, такими как Ginga , они просто увеличивают высоту текста, в результате чего верхняя половина выходных изображений остается пустой. Кто-нибудь знает причину?