2010-01-19 96 views
0

下面是我使用的代碼:如何找出PIL爲什麼不能正確繪製字體?

from PIL import Image 
import ImageFont, ImageDraw 
import sys 
import pdb 

img = Image.new("RGBA",(300,300)) 
draw = ImageDraw.Draw(img) 
font = ImageFont.truetype(sys.argv[1],30) 
draw.text((0,100),"world",font=font,fill="red") 
del draw 
img.save(sys.argv[2],"PNG") 

,這裏是導致圖像: img http://www.freeimagehosting.net/image.php?976a0d3eaa.png(出於某種原因,我不能讓它顯示在左右,這樣的鏈接是http://www.freeimagehosting.net/image.php?976a0d3eaa.png

事情是,我不明白爲什麼它不正確繪製字體?我應該能夠從中讀出「世界」這個詞。這就像圖片被削減了一半或其他東西。有沒有人有任何線索?

編輯:在balpha的評論後,我決定嘗試另一種字體。我只對ttf字體感興趣,所以我嘗試了另一種字體,並且工作。這有點奇怪。我試圖運行這個原始字體是Beautiful ES。我很好奇你們是否可以在計算機上再現相同的圖像,並且如果你碰巧知道這是爲什麼。

+1

工作很好 - 你嘗試過不同的字體嗎? – balpha 2010-01-19 16:58:41

+0

只限TTF試用。我會嘗試其他人併發布反饋。 – Geo 2010-01-19 17:06:17

+0

我試過Arial,Times和Calibri Bold(所有TrueType)。他們都很好看。 – balpha 2010-01-19 17:11:02

回答

1

PIL使用freetype2庫,所以很可能這是字體文件的問題;例如,它可能定義了不好的度量標準(例如,參見OS/2相關的用FontForge打開字體)。

相關問題