Comment ajouter du texte sur une image avec PIL

Published: 11 février 2015

DMCA.com Protection Status

Dans cet article on va voir comment ajouter facilement du texte à une figure avec la librairie python sur le traitement d'image PIL. C'est un exercice intéressant et qui peut se révéler pratique dans de nombreuses situations. Notamment dans le cas où on souhaite, par exemple, modifier rapidement des figures générées avec matplotlib sans vouloir relancer l'ensemble des codes. Considérons un exemple simple (réalisé sous MAC: veuillez modifier le chemin vers "/Library/Fonts/Times New Roman.ttf" si nécessaire), on veut changer le titre de la figure suivante:

Ajouter du texte avec PIL (input image)
Ajouter du texte avec PIL (input image)

Ajouter du texte avec PIL (output image)
Ajouter du texte avec PIL (output image)

from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw

im = Image.open("AddText_01.png") #Can be many different formats.

#---------- Remove Old Title ----------#

pix = im.load()

x_ll = 300
x = x_ll
for i in range(100):
    y_ll = 0
    y = y_ll
    for j in range(28):
        pix[x,y] = (255, 255, 255, 255)
        y = y + 1
    x = x + 1

#---------- Add Text ----------#

font = ImageFont.truetype("/Library/Fonts/Times New Roman.ttf", 25)

draw = ImageDraw.Draw(im)
draw.text((300, 5),"Histogramme",(0,0,0),font=font)

#---------- Save Result ----------#

im.save("AddText_02.png", "PNG")

Autre exemple:

Comment ajouter du texte sur une image avec PIL
Comment ajouter du texte sur une image avec PIL

from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw

im = Image.open("lena.png")

font = ImageFont.truetype("/Library/Fonts/Times New Roman.ttf", 30)

draw = ImageDraw.Draw(im)
draw.text((10.0, 10.0),"LENA PICTURE...",(255,255,255),font=font)


im.save("lena_edited.png", "PNG")

Recherches associées

Image

of