Zeichnen Sie fett / kursiv Text mit PIL?
-
06-07-2019 - |
Frage
Wie fett / kursiv Text mit PIL ziehen? ImageFont.truetype (Datei, Größe) hat eine Option nur Schriftgröße angeben.
Lösung
die fett / kursiv Version der Schriftart verwenden
Andere Tipps
Viele Schriften verwenden verschiedene TTF-Dateien für ihre fett / kursiv Versionen, so würde ich mich vorstellen, wenn man nur die Datei angeben, dass es funktionieren würde.
Eine ziemlich hacky Lösung eine Schrift fett zu machen, wenn (aus irgendeinem Grund) Sie keine separate fette Version der Schrift haben, ist der gleiche Text mehrmals mit einem leichten drucken ausgeglichen.
andaleMono = ImageFont.truetype(ANDALE_MONO_PATH,16)
text = "hello world"
mainOffset = (50,50)
xoff, yoff = mainOffset
draw.text(mainOffset,text,font=andaleMono,fill='black')
draw.text((xoff+1,yoff+1),text,font=andaleMono,fill='black')
draw.text((xoff-1,yoff-1),text,font=andaleMono,fill='black')
Nun, dies ist mein erster Kommentar. Hier gehen wir.
Ich werde versuchen, das Verfahren zu klären. Zuerst Was ich tat, war die „name“ der Schriftart wie folgt verwenden
font = ImageFont.truetype("C:\Windows\Fonts\\Arial Negrita.ttf",25)
bekam aber nur einige Fehler wie folgt aus:
Traceback (most recent call last):
File "C:/Users/555STi/PycharmProjects/PIL/img.py", line 8, in <module>
font = ImageFont.truetype("C:\Windows\Fonts\Arial negrita.ttf",25)
File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 262, in truetype
return FreeTypeFont(font, size, index, encoding)
File "C:\Python27\lib\site-packages\PIL\ImageFont.py", line 142, in __init__
self.font = core.getfont(font, size, index, encoding)
IOError: cannot open resource
Dann erinnerte ich mich, dass manchmal Schriftarten anderen „Namen“ oder „Dateinamen“ hat, also das, was ich tat, war, um Schriftart-Ordner gehen, dann ist die Schriftart Arial Wich öffnete alle Stile wie negrita (fett] angezeigt, cursiva (kursiv) etc.
Haben Sie einen Rechtsklick auf den „negrita“ -Stil, ausgewählt „Eigenschaften“ und dann war da noch die „echten Namen“ der Schrift.
In meinem Fall war der Name "ariblk"
Dann schließlich verwendete nur die Namen wie diese.
font = ImageFont.truetype("C:\Windows\Fonts\\ariblk.ttf",25)
Ich weiß, dass dieser Beitrag ist alt, aber heute hat mir geholfen, die Lösung zu bekommen. So hoffe ich, jemanden zu helfen.
=)