用PIL绘制粗体/斜体文字?

jac*_*ack 15 python fonts text draw python-imaging-library

如何用PIL绘制粗体/斜体文字?ImageFont.truetype(文件,大小)有一个选项来指定字体大小.

Joh*_*ooy 14

使用字体的粗体/斜体版本

  • 只是为了澄清:每个版本的字体都有一个单独的文件,例如:Arial.ttf,ArialBold.ttf等. (5认同)

小智 11

到目前为止,还没有粗体功能作为参数,但您可以通过向具有相同颜色的文本的文本添加笔划来轻松解决。下一个代码详细说明如何使用笔画,这将是有意义的粗体字体

    draw.text((x, y), text, fill=color, font=font, stroke_width=2,
          stroke_fill="black")
Run Code Online (Sandbox Code Playgroud)


小智 8

如果(无论出于何种原因)您没有单独的粗体版本的字体,则使字体变粗的一个相当笨拙的解决方案是多次打印相同的文本并带有轻微偏移。

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')
Run Code Online (Sandbox Code Playgroud)


djc*_*djc 5

许多字体为其粗体/斜体版本使用不同的 TTF 文件,所以我想如果您只指定该文件它会起作用。