Draw bold/italic text with PIL?

左心房为你撑大大i 提交于 2019-12-01 03:05:14

Use the bold/italic version of the font

Many fonts use different TTF files for their bold/italic versions, so I'd imagine if you just specify that file it would work.

A rather hacky solution to make a font bold if (for whatever reason) you don't have a separate bold version of the font is to print the same text several times with a slight offset.

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

Well, this is my first comment. Here we go.

I'll try to clarify the procedure. At first What I did was use the "name" of the font like this

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

but only got some errors like this:

    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

Then I remembered that sometimes fonts has other "names" or "filenames", so, what I did was going to fonts folder, then opened the Arial Font wich displayed all the styles like negrita (bold], cursiva(italic), etc.

Did a right click on the "negrita" style, selected "properties" and then there was the "real name" of the font.

In my case, the name was "ariblk"

Then, finally, just used the name like this.

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

I know this post is old, but today helped me to get to the solution. So I hope to help anybody.

=)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!