python输出大小不同的字体_python – 为什么我的truetype字体大小为11渲染与windows不同?…

即:打开记事本,将字体选为”Arial,Size 11″,仔细输入”这只是一个测试”字样,截图如下:

输入并运行以下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”)

但结果却令人失望地不同:

它不仅尺寸错误,而且还略微阴影,而记事本渲染很清晰,没有像素边界.

我怎样才能让它像记事本一样呈现?我也遇到了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”)

和结果(记事本原件在上面进行比较):

Gah为什么我不能马上提供赏金?

更新:这里比较所有方法:

PIL 15,然后记事本11,然后pygame 15反别名关闭,然后pygame 15反别名开启.

PIL 15实际上具有正确的比例,它只是消除锯齿.所以:为什么15对11?如何让它像Windows一样做到这一点? (和wtf是pygame吗?)

Original: https://blog.csdn.net/weixin_29062671/article/details/113991471
Author: AMD中国
Title: python输出大小不同的字体_python – 为什么我的truetype字体大小为11渲染与windows不同?…

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/782253/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球