如何将非抗锯齿字体渲染到内部图像?
用Python把不带抗锯齿的字体(比如.ttf字体)快速而准确地渲染到内部图像(比如PIL.Image
)的最佳方法是什么?我说准确是因为我之前用pygame试过,结果渲染出来的字体和我在Word或Paint中看到的字体大小不一样。
2 个回答
1
啊,这就是怎么做的...应该和Windows显示的一样,因为它使用了相同的算法。
9
Python图像库(PIL)可以把文字渲染到图片上——我觉得它的效果应该是准确的,不过我还没有完全测试过...
这是一个已有问题的例子:
from PIL import Image
from PIL import ImageFont, ImageDraw
image = Image.new("RGBA", (288,432), (255,255,255))
usr_font = ImageFont.truetype("resources/HelveticaNeueLight.ttf", 25)
d_usr = ImageDraw.Draw(image)
d_usr.fontmode = "1" # this apparently sets (anti)aliasing. See link below.
d_usr.text((105,280), "MYTEXT",(0,0,0), font=usr_font)
另外,您可以查看:
http://www.pythonware.com/products/pil/
http://mail.python.org/pipermail/image-sig/2005-August/003497.html