Как я могу узнать, почему PIL не рисует шрифт правильно? - PullRequest
0 голосов
/ 19 января 2010

Вот код, который я использую:

from PIL import Image
import ImageFont, ImageDraw
import sys
import pdb

img = Image.new("RGBA",(300,300))
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(sys.argv[1],30)
draw.text((0,100),"world",font=font,fill="red")
del draw
img.save(sys.argv[2],"PNG")

и вот изображение, которое получается: img http://www.freeimagehosting.net/image.php?976a0d3eaa.png (по какой-то причине я не могу показать его на SO, поэтому ссылка http://www.freeimagehosting.net/image.php?976a0d3eaa.png)

Дело в том, что я не понимаю, почему он не правильно рисует шрифт? Я должен быть в состоянии прочитать слово «мир» из него. Это как картинка была разрезана пополам или что-то. У кого-нибудь есть подсказка?

РЕДАКТИРОВАТЬ: после комментария Бальфы я решил попробовать другой шрифт. Меня интересуют только шрифты ttf, поэтому я попробовал другой, и это сработало. Это немного странно. Исходный шрифт, с которым я пытался запустить это Beautiful ES . Мне любопытно, можете ли вы, ребята, воспроизвести одно и то же изображение на ваших компьютерах, и знаете ли вы причину, почему это так.

1 Ответ

1 голос
/ 19 января 2010

PIL использует библиотеку freetype2, поэтому, скорее всего, это проблема с файлом шрифта; например, для него могут быть определены неверные метрики (например, см. связанные с OS / 2, открывающие шрифт с помощью FontForge).

...