27

PILで太字/斜体のテキストを描画するには? ImageFont.truetype(file, size) には、フォント サイズのみを指定するオプションがあります。

4

5 に答える 5

23

太字/斜体バージョンのフォントを使用する

于 2009-11-29T10:19:17.777 に答える
9

(何らかの理由で) 別の太字バージョンのフォントを持っていない場合に、フォントを太字にするかなりハックな解決策は、同じテキストをわずかなオフセットで数回印刷することです。

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')
于 2016-09-06T17:38:29.923 に答える
6

多くのフォントは太字/斜体バージョンに異なる TTF ファイルを使用するため、そのファイルを指定するだけで機能すると思います。

于 2009-11-29T10:19:02.290 に答える
4

さて、これは私の最初のコメントです。どうぞ。

手順を明確にしようと思います。最初に私がしたことは、このようなフォントの「名前」を使用することでした

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

次に、フォントには他の「名前」または「ファイル名」がある場合があることを思い出したので、フォントフォルダーに移動してから、ネグリタ(太字)、クルシバ(イタリック)などのすべてのスタイルを表示する Arial フォントを開きました。

「ネグリタ」スタイルを右クリックし、「プロパティ」を選択すると、フォントの「本名」が表示されました。

私の場合、名前は「ariblk」でした

そして、最後に、このように名前を使用しました。

font = ImageFont.truetype("C:\Windows\Fonts\\ariblk.ttf",25)

この投稿が古いことは知っていますが、今日は解決策を見つけるのに役立ちました. だから私は誰かを助けることを願っています。

=)

于 2015-05-24T05:21:25.073 に答える