2009-11-29 607 views

回答

8

使用字體的粗體/斜體版

+3

只是爲了澄清:字體的每個版本是在一個單獨的文件,如:ARIAL.TTF,ArialBold.ttf等。 – btk 2012-02-29 16:43:48

4

許多字體爲粗體/斜體版本使用不同的TTF文件,所以我會想象如果您只是指定該文件,它將起作用。

1

嗯,這是我的第一條評論。開始了。

我會試着澄清一下程序。起初,我所做的就是用「名」的字體像這樣

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 

然後我記得,有時字體有其他的「名」或「文件名」,所以,我做的是去字體文件夾,然後打開顯示所有樣式的陰影字體,如negrita(粗體),cursiva(斜體)等。

右鍵單擊「negrita 「樣式,選中」屬性「,然後出現字體的」真實名稱「。

在我的情況下,名字是「ariblk」

然後,最後,只是使用的名字是這樣的。

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

我知道這篇文章是舊的,但今天幫我找到解決方案。所以我希望能夠幫助任何人。

=)

+0

這是否回答OP的問題嗎? – Nilambar 2015-05-24 05:29:26

+0

@Nilambar,你是什麼意思?對不起,我在這裏有點新鮮。 – 2015-05-24 05:33:40

+0

@NikolaiMilos他意味着原始海報(OP)詢問了一些相當具體的東西。您正在回答這個問題:「當我加載Arial Negrita字體時,爲什麼會出現錯誤?」如果你重新閱讀這個問題,你會發現它完全不同。 – Paragon 2015-07-17 19:05:48

3

一個相當哈克解決方案,使字體加粗,如果(無論何種原因)你沒有字體的一個單獨的粗體版本是幾次有輕微的偏移打印相同的文字。

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') 
相關問題