在PIL中使用像素字体

时间:2009-03-06 17:05:11

标签: python imaging

我使用PIL创建图像,其中包含许多精确放置的文本字符串。我的第一次尝试是将像素字体转换为pil兼容格式,如here所述。例如,我下载了Silksreen字体并将其转换为:

otf2bdf -p 8pt -o fonts/slkscr.bdf fonts/slkscr.ttf 
pilfont.py fonts/slkscr.bdf

然后我可以像这样在PIL中使用字体:

import Image, ImageDraw, os, sys, ImageFont
im = Image.new("RGB", (40,10))
draw = ImageDraw.Draw(im)
fn = ImageFont.load('fonts/slkscr.pil')
draw.text((0,0), "Hello", font=fn)
del draw
# write to stdout
im.save(sys.stdout, "PNG")

但是,生成的图片(alt text)不会反映字体should look like

我应该使用什么程序来转换和使用像素字体,以便它们按预期呈现?

提前致谢。

1 个答案:

答案 0 :(得分:3)

尤里卡!

只需要为otf2bdf指定72 dpi(默认值为100)的分辨率:

otf2bdf -p 8 -r 72 -o fonts/slkscr.bdf fonts/slkscr.ttf

现在,alt text看起来很棒!