考虑下面的代码:     从进口PIL图片ImageDraw,ImageFont

def addText(img, lTxt):
    FONT_SIZE = 10
    INTERLINE_DISTANCE = FONT_SIZE + 1
    font = ImageFont.truetype('arial.ttf', FONT_SIZE)
    lTxtImageHeight = INTERLINE_DISTANCE * len(lTxt)
    # create text image 
    lTxtImg = Image.new('RGBA', (img.size[1], lTxtImageHeight), 255)
    lTxtImgDraw = ImageDraw.Draw(lTxtImg, )
    for (i, line) in enumerate(lTxt):
      lTxtImgDraw.text((5, i * INTERLINE_DISTANCE), line, font=font, fill='#000000')
    # rotate text image
    lTxtImg = lTxtImg.rotate(90)
    # create new transparent image ret
    ret = Image.new('RGBA', (img.size[0] + lTxtImageHeight, img.size[1]), 255)
    # paste the image to ret
    ret.paste(img, (0,0))
    # paste the text to ret
    ret.paste(lTxtImg, (img.size[0], 0), lTxtImg)
    return ret

img = Image.open('in.png')
addText(img, ['lorem', 'ipsum', 'dolores']).save('out.png')

下面是输入和输出文件 这是输入

输入http://img16.imageshack.us/img16/8229/73936270。 PNG

和此是输出

输出http://img94.imageshack.us/img94/531/outj。 PNG

可以看到,输出图像包含大量文本周围微红噪音。我怎样才能消除这种抖动?

有帮助吗?

解决方案

我建议写入中间文本图象到文件(文本,则旋转的文本),以分离其中伪影首先出现。

其他

一种可能性可能是该PNG编码是使用无灰度值的调色板,因此那些红色是最接近可用。我查了ImageShack的文件的编码,虽然,它似乎好了,所以我不认为这是问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top