要机智:记事本被打开时,选择作为“Arial字体,大小11”的字体,词“这仅仅是一个测试”小心进入,截取的屏幕截图:为什么我的truetype字体的大小11呈现与Windows不同?
original http://i53.tinypic.com/200skuv.png
以下Python代码是进入并运行:
import ImageFont, ImageDraw, Image
im = Image.open("c:/textimg.png") #the above image
pilfont = ImageFont.truetype("arial.ttf", 11)
compimg = Image.new("RGB", im.size, (255, 255, 255))
draw = ImageDraw.Draw(compimg)
draw.text((0,0), "this is just a test", (0,0,0), font=pilfont)
compimg.save("c:/compimg.png")
然而结果令人失望的不同:
sad http://i56.tinypic.com/9h7x55.png
不仅它是错误的大小,但它也有点阴影,而记事本渲染是清晰的,没有跨越像素边界。
我怎样才能让它像记事本一样渲染呢?我对pygame也有这个确切的问题,所以我想我在这里错过了对TTF的一些基本理解。
更新:我再次用pygame试了一下。它做同样的事情。它可以选择关闭消除锯齿功能,但它看起来只是根据某个阈值来消除任何可能会反锯齿的像素。我是用大小15.最接近的代码是:
pygfont = pygame.font.Font(r"c:\windows\fonts\arial.ttf", 15)
surf = pygfont.render("this is just a test", False, (0,0,0), (255,255,255))
pygame.image.save(surf, r"c:\pygameimg.png")
和结果(在上面记事本原件比较):
KILL ME http://i56.tinypic.com/2r26mbs.png
尔加为什么我不能提供一个赏金马上?
更新:这是比较所有方法:
AIFEOIFEF http://i56.tinypic.com/51ybtg.png
PIL 15,然后记事本11,然后Pygame的15抗锯齿关闭,然后Pygame的15抗混叠上。
PIL 15实际上具有正确的比例,它只是反锯齿。所以:为什么15比11?如何使它像Windows一样进行操作? (和跆拳道pygame在做什么?)
此处的图片已删除,您可以更新链接吗? – shuttle87 2015-01-23 03:29:14