2010-01-19 59 views
0

下面是我使用的代码:如何找出PIL为什么不能正确绘制字体?

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(出于某种原因,我不能让它显示在左右,这样的链接是http://www.freeimagehosting.net/image.php?976a0d3eaa.png

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

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

+1

工作很好 - 你尝试过不同的字体吗? – balpha 2010-01-19 16:58:41

+0

只限TTF试用。我会尝试其他人并发布反馈。 – Geo 2010-01-19 17:06:17

+0

我试过Arial,Times和Calibri Bold(所有TrueType)。他们都很好看。 – balpha 2010-01-19 17:11:02

回答

1

PIL使用freetype2库,所以很可能这是字体文件的问题;例如,它可能定义了不好的度量标准(例如,参见OS/2相关的用FontForge打开字体)。

相关问题