用PIL剪切字体

pri*_*stc 6 python fonts text-rendering python-imaging-library

此图像是使用PIL创建的.看看这张图片中的g和y是如何被截断的?我怎么能阻止这个?

http://img109.imageshack.us/img109/8874/screenshotep.png

创建此图像的代码非常简单(缩写):

import Image, ImageDraw, ImageFont

im = Image.new("RGBA", (200, 200), 'white')
draw = ImageDraw.Draw(im)

font = ImageFont.truetype("VeraSe.ttf", 12)

draw.text(
           (1, 1),
           " %s: " % "ggjyfFwe__",
           font=font,
           fill='black'
)

draw.text(
           (1, 30),
           " %s" % 15,
           font=font,
           fill='black'
)

im.show()
Run Code Online (Sandbox Code Playgroud)

我尝试使用几种不同的字体,它总是被剪裁.令人惊讶; y,googleing"PIL字体剪辑"返回很少有用的命中...我在Ubuntu 9.10上使用python 2.6.4和PIL 1.1.6

gnu*_*nud 0

我的建议是,在创建图像对象之前,获取文本所需的大小。

\n\n

这是使用font.getsize("text")文档)完成的。

\n\n

在我制作的图像生成脚本中,我首先通过调用 的等价项找到一行文本的最大高度font.getsize("\xc3\x85j")(如果您只需要 US-ASCII,则可以找到 的高度"Aj")。然后我计算了所需的图像高度和行偏移,包括边距和行距。

\n