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:
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:
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
Liens | Site |
---|---|
PIL | PIL WebSite |
Python, PIL; Text to Image and fonts | stackoverflow |
Add Text on Image using PIL. | stackoverflow |
Mac OS X: Font locations and their purposes | Mac OS X Doc |