Python 图像库 - 文本渲染

标签 python python-imaging-library imaging

我正在尝试使用 PIL 渲染一些文本,但坦率地说,结果很糟糕。

例如,这是我在 Photoshop 中写的一些文字:

PhotoShop

以及 PIL 的结果:

PIL

如您所见,PIL 的结果并不令人满意。也许我只是挑剔,但是有什么方法可以使用 PIL 绘制文本,从而获得更接近我的引用图像的结果?

这是我在 Python 2.7 和 PIL 1.1.7 上使用的代码

image = Image.new("RGBA", (288,432), (255,255,255))
usr_font = ImageFont.truetype("resources/HelveticaNeueLight.ttf", 25)
d_usr = ImageDraw.Draw(image)
d_usr = d_usr.text((105,280), "Travis L.",(0,0,0), font=usr_font)

最佳答案

我想出了我自己认为可以接受的解决方案。

我所做的是使文本变大,例如需要放大 3 倍,然后通过抗锯齿将其缩小,这不是 100% 完美,但它比默认值要好得多,而且不会需要 cairo 或 pango。

例如,

image = Image.new("RGBA", (600,150), (255,255,255))
draw = ImageDraw.Draw(image)
font = ImageFont.truetype("resources/HelveticaNeueLight.ttf", fontsize)

draw.text((10, 0), txt, (0,0,0), font=font)
img_resized = image.resize((188,45), Image.ANTIALIAS)

你最终得到了这个结果,

final result

这比我以前用相同字体得到的要好得多。

关于Python 图像库 - 文本渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414639/

相关文章:

delphi - Delphi 的图像编辑器控件

Python - 绘制具有不均匀误差(高和低)的误差条形图

python - 为什么使用 importlib.resources 而不是 __file__?

Python - 使用 PIL 绘制不同颜色的簇

python - PIL : Generating Vertical Gradient Image

memory - jpeg无损转换-内存消耗?

python (PIL) : Lighten transparent image and paste to another one

python - 如何在此递归函数中更快地查找列表

python - tastypie get_list 过滤器查询集

python - 如何在 mac os x 10.7.2 Lion 上安装 PIL