PILで太字/斜体のテキストを描画しますか?
-
06-07-2019 - |
質問
PILで太字/斜体のテキストを描画する方法は? ImageFont.truetype(file、size)には、フォントサイズのみを指定するオプションがあります。
解決
太字/斜体のフォントを使用する
他のヒント
多くのフォントは太字/斜体のバージョンに異なるTTFファイルを使用しているため、そのファイルを指定するだけで機能すると思います。
(何らかの理由で)フォントの太字バージョンが別にない場合に、フォントを太字にするためのややハッキングなソリューションは、わずかなオフセットで同じテキストを数回印刷することです。
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')
まあ、これは私の最初のコメントです。ここに行きます。
手順を明確にしようとします。最初は「名前」を使用しましたこのようなフォントの
font = ImageFont.truetype("C:\Windows\Fonts\\Arial Negrita.ttf",25)
ただし、次のようなエラーのみが表示されます:
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
その後、時々フォントには他の「名前」があることを思い出しました。または「ファイル名」というように、フォントフォルダーに移動して、ネグリタ(太字)、cursiva(イタリック)などのすべてのスタイルを表示するArialフォントを開きました。
「negrita」を右クリックしましたスタイル、選択された「プロパティ」そして、「本名」がありました。フォントの
私の場合、名前は&quot; ariblk&quot;
でしたそして最後に、このような名前を使用しました。
font = ImageFont.truetype("C:\Windows\Fonts\\ariblk.ttf",25)
この投稿が古いことは知っていますが、今日は解決策を見つけるのに役立ちました。だから私は誰でも助けたいと思っています。
=)
所属していません StackOverflow