Domanda

Si consideri il seguente codice:dal PIL importare Immagini, 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')

Qui sono l'input e l'output dei file Questo è l'ingresso

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

e questo è il risultato

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

Come si può vedere, l'immagine di output contiene un sacco di rossastro rumore intorno al testo.Come posso eliminare questo il dithering?

È stato utile?

Soluzione

Suggerisco di scrivere intermedio le immagini di testo in un file (di testo, quindi il testo ruotato), per isolare i reperti appaiono.

Un'altra possibilità potrebbe essere che il png codifica utilizza una tavolozza senza valori in scala di grigio, in modo che quelli rossi sono i più vicini a disposizione.Ho controllato la codifica del file su imageshack, però, e mi sembrava ok, quindi non credo che questo è il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top