0

我正在尝试使用 PIL 来渲染一些字符图像。出于某种原因,大约 1% 的渲染字符具有如下所示的奇怪伪影。第二个应该是“v”。

渲染不良 d

严重渲染 v

这是一个一贯的现象。对于相同的字体、字符和大小,工件看起来总是一样的。许多不同的字体都会发生这种情况。上面的例子是 20 pt “aakar-medium”。用于执行此渲染的代码如下。

def renderChar(char, font, size, dest):
    to_render = char
    txt_font  = ImageFont.truetype(font, size=size)
    dims      = txt_font.getsize(to_render)
    dims      = (dims[0] + 4, dims[1] + 4)
    image     = Image.new("RGBA", dims, (255, 255, 255))
    draw      = ImageDraw.Draw(image)

    draw.text((2, 2), to_render, (0, 0, 0), font=txt_font)
    image.save(dest)

如您所见,由于另一个问题,我还添加了一些填充。在某些情况下,角色会被切断。这似乎在 StackOverflow 上的另一个问题中得到了解决。虽然我也很感激这方面的帮助,但这不是我最关心的问题。我将这些图像保存为 *.bmp 文件。我也试过 *.png 和 *.jpg,它们都有更严重的伪影。我假设其中一些是由于压缩。我也尝试过使用“RGB”模式(而不是“RGBA”)的图像。这没什么区别。

编辑:根据 martineau 的建议,我已将此错误发布到https://github.com/python-pillow/Pillow/issues/4645

4

0 回答 0