web-dev-qa-db-fra.com

Python, PIL; Texte en image et polices

J'ai un problème avec l'écriture de texte sur une image sous Python et PIL - je suis capable d'écrire du texte dans un fichier png, mais pas en texte gras. Quelqu'un pourrait-il fournir un exemple de la façon d'atteindre ce?

Je pensais que la solution la plus simple peut-être était d'utiliser une variante en gras d'un texte, mais je ne vois rien dans le dossier Windows/font qui fournit cela - cela signifie-t-il que les types de polices ont un ' attribut gras 'qui est T/F ?:
quick look for bold-fonts under windows

Code que j'utilise:

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

# font = ImageFont.truetype("Arial-Bold.ttf",14)
font = ImageFont.truetype("Arial.ttf",14)
img=Image.new("RGBA", (500,250),(255,255,255))
draw = ImageDraw.Draw(img)
draw.text((0, 0),"This is a test",(0,0,0),font=font)
draw = ImageDraw.Draw(img)
img.save("a_test.png")
19
Harry Lime

Vous ne regardez pas les fichiers de polices réels dans le panneau de configuration (l'Explorateur se transforme comme par magie en panneau de configuration de la visionneuse de polices dans le dossier Windows/polices également), ils sont regroupés par famille pour votre commodité. Double-cliquez sur la famille pour voir les polices de la famille:

enter image description here

Cliquez ensuite avec le bouton droit et choisissez les propriétés pour trouver le nom du fichier:

enter image description here

9
Pavel Anossov

Une façon simple de le faire:

font = ImageFont.load_default().font

Vous pouvez également faire un recherche google pour 'verdana.ttf' et le télécharger le mettre dans le même répertoire que le fichier python:

Ensuite, ajoutez-le comme ceci:

font = ImageFont.truetype("Verdana.ttf",14)
12
snow