Question

Considérez le code suivant:     de l'image d'importation 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')

Voici l'entrée et les fichiers de sortie Ceci est l'entrée

entrée http://img16.imageshack.us/img16/8229/73936270. PNG

et c'est la sortie

sortie http://img94.imageshack.us/img94/531/outj. PNG

Comme vous pouvez le voir, l'image de sortie contient beaucoup de bruit rouge autour du texte. Comment puis-je éliminer ce tramage?

Était-ce utile?

La solution

Je suggère d'écrire les images de texte intermédiaires à déposer (le texte, le texte pivotée), pour isoler où les objets apparaissent d'abord.

Une autre possibilité pourrait être que le codage de .png utilise une palette sans valeurs en niveaux de gris, de sorte que les rouges sont les plus proches disponibles. J'ai vérifié l'encodage des fichiers sur ImageShack cependant, et il avait l'air correct, donc je ne pense pas que ce soit le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top