2013-04-06 16 views
16

Ho un problema con la scrittura di testo su un'immagine in Python e PIL - Sono in grado di scrivere testo in un file png, anche se non in grassetto. Qualcuno potrebbe fornire un esempio di come raggiungere questo obiettivo?Python, PIL; Testo su immagine e caratteri

ho pensato la soluzione più facile può essere era quella di utilizzare un audace-variante di un testo, ma non riesco a vedere nulla nella cartella/font di Windows che fornisce questo - questo significa tipi di font hanno un 'audace attributo' che è T/F ?:
quick look for bold-fonts under windows

codice che sto usando:

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") 

risposta

8

non sta guardando i file dei font effettivi nel pannello di controllo (esploratore si trasforma magicamente nel visualizzatore di font pannello di controllo quando nella cartella Windows/fonts come wel l), sono raggruppati per famiglia per comodità. Fare doppio clic sulla famiglia per vedere i tipi di carattere nella famiglia:

enter image description here

il tasto destro del mouse e scegliere le proprietà per trovare il nome del file:

enter image description here

+1

Grazie Pavel, che ha funzionato bene: font = ImageFont.truetype ("** ** Arialbd.ttf", 14) –

10

Un modo semplice per farlo:

font = ImageFont.load_default().font 

Inoltre è possibile fare un google search for 'verdana.ttf' e scaricarlo metterlo nella stessa directory del file di python:

Quindi aggiungere in questo modo:

font = ImageFont.truetype("Verdana.ttf",14) 
Problemi correlati