相关疑难解决方法(0)

为什么我的 11 号 truetype 字体呈现的效果与 Windows 不同?

即:打开记事本,字体选择为“Arial,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")
Run Code Online (Sandbox Code Playgroud)

然而结果却大相径庭:

伤心

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

我怎样才能让它像记事本一样呈现?我在 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")
Run Code Online (Sandbox Code Playgroud)

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

杀了我 http://tinypic.com/images/404.gif

Gah 为什么我不能立即提供赏金?

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

艾菲奥菲夫

PIL 15,然后是记事本 11,然后是 pygame 15 anti-alias-off,然后是 pygame 15 anti-alias-on。

PIL 15 …

python fonts truetype font-size font-face

6
推荐指数
1
解决办法
3612
查看次数

python将非消除锯齿的字体渲染到内部图像

什么是最快捷的方式和准确的呈现使用Python非反锯齿字体(如TTF字体)到内部的图像(例如一个PIL.Image,即我并不需要显示它)?我说准确,因为我用pygame尝试了一段时间后,我给它的大小的渲染字体与Word或Paint中渲染的窗口不匹配.

python fonts image render truetype

1
推荐指数
1
解决办法
3701
查看次数

标签 统计

fonts ×2

python ×2

truetype ×2

font-face ×1

font-size ×1

image ×1

render ×1