Pillow中的字体抗锯齿化

4

我正在使用Pillow 3.1.1图像库和Python 3.5.1。

我尝试在图像上使用Pillow绘制字体,但结果看起来非常难看和不可接受。

第一个例子:看起来字体没有抗锯齿处理。但文档中完全没有关于字体抗锯齿的内容。我已经尝试了一些更改(例如设置fonttype),但文字仍然看起来很糟糕。 第一个例子

第二个例子。有时字符会重叠在一起。我不知道该如何解决这个问题。 第二个例子

我对我的经验感到非常沮丧。在Pillow中是否有可能解决抗锯齿问题,还是我应该寻求ImageMagick的帮助?

抗锯齿问题是我最关心的问题,我无法使用这种方式渲染的字体。

谢谢您的关注!

代码示例:

from PIL import Image, ImageDraw, ImageFont

DEFAULT_OFFSET = (100, 160, )


def draw_text(image, text):
    base = Image.open(image).convert('RGBA')

    txt_image = Image.new('RGBA', base.size, (255, 255, 255, 0))

    ttf = get_font()
    fnt = ImageFont.truetype(ttf, 40)
    d = ImageDraw.Draw(txt_image)

    # just return some string in format 'blah-blah\nblah-blah'
    multiline = generate_multiline(txt_image, text)

    d.multiline_text(DEFAULT_OFFSET, multiline, align='left', font=fnt, fill=(40, 40, 40, 200))

    out = Image.alpha_composite(base, txt_image)

    out.show()

PIL/Pillow 不支持抗锯齿。可以使用其他软件包或者尝试解决方法 - martineau
@martineau 哦,很遗憾。文档应该在这个主题上更直接一些。 现在我会尝试找到一些解决方法。我已经测试了ImageMagick,它可以工作。感谢您的回答! - prokaktus
首先将文本放大3倍,然后使用图像抗锯齿缩小它是一种解决方法,Pillow支持这种方法,可能是最简单的方法。ImageMagick(以及其他更好的软件包)通常有大量依赖项,安装过程繁琐且困难。它们也经常不支持Python的最新版本。 - martineau
1个回答

1
根据martineau的评论,Pillow不支持字体抗锯齿。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接