Frage

Betrachten Sie den folgenden Code:     von PIL Import Bild, 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')

Hier sind die Eingangs- und die Ausgangsdateien Dies ist der Eingang

Eingang http://img16.imageshack.us/img16/8229/73936270. png

und das ist der Ausgang

Ausgang http://img94.imageshack.us/img94/531/outj. png

Wie Sie sehen können, enthält das Ausgangsbild eine Menge rötlichen Lärm um den Text. Wie kann ich diese Dithering?

beseitigen
War es hilfreich?

Lösung

Ich schlage vor, die Zwischentextbilder zu Datei zu schreiben (der Text, dann die gedrehten Text), zu isolieren, wo die Artefakte zuerst erscheinen.

Eine andere Möglichkeit könnte sein, dass die png-Codierung eine Palette ohne Grauwerte verwendet, so dass dieser Rottöne in der Nähe zur Verfügung steht. Ich überprüfte die Codierung der Dateien auf Images aber, und es schien in Ordnung, so dass ich glaube nicht, dass dies das Problem ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top