要機智:記事本被打開時,選擇作爲「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