如何找出PIL没有正确绘制字体的原因?

时间:2010-01-19 16:49:43

标签: python fonts python-imaging-library

这是我正在使用的代码:

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

问题是,我不明白为什么它没有正确绘制字体?我应该能够从中读出“世界”这个词。这就像图片被切成两半或者其他东西。有没有人有任何线索?

编辑:在balpha的评论之后,我决定尝试另一种字体。我只对ttf字体感兴趣,所以我尝试了另一个,它起作用了。这有点奇怪。我试图运行它的原始字体是Beautiful ES。我很好奇你们是否可以在你的计算机上重现相同的图像,如果你碰巧知道原因是什么。

1 个答案:

答案 0 :(得分:1)

PIL使用freetype2库,因此很可能是字体文件的问题;例如,它可能定义了错误的指标(例如,参见与FontForge打开字体的OS / 2相关指标)。