Pour fixer la police de la méthode text() du module ImageDraw, importer le module suivant :
>>> import ImageFont
On peut créer un objet ImageFont à partir de n'importe quelle police TrueType en utilisant le constructeur :
ImageFont.truetype(file,size)
Qui renvoie un objet ImageFont représentant la police TrueType dont le nom de fichier est fournis en argument, et dont la hauteur est fixée par l'argument size.
Sur les systèmes Unix, les polices se trouvent à cet emplacement :
/usr/share/fonts/
Voici un programme complet qui crée une image 200x50 en niveaux de gris, écrits du texte en rouge, et le sauvegarde dans runaway.jpg. Le fichier DejaVuSansCondensed-Bold.ttf contient la police sans-serif, condensé, et gras de la famille Deja Vu.
#!/usr/local/bin/python import Image import ImageDraw import ImageFont fontPath = "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Bold.ttf" sans16 = ImageFont.truetype ( fontPath, 16 ) im = Image.new ( "RGB", (200,50), "#ddd" ) draw = ImageDraw.Draw ( im ) draw.text ( (10,10), "Run awayyyy!", font=sans16, fill="red" ) im.save ( "runaway.jpg" )
Sur un système Windows, tout se passe dans C:\WINDOWS\Fonts.