5

什麼字體可用於App Engine上的PIL?Google App Engine上的PIL可以使用哪些系統字體?

我知道我可以上傳字體作爲應用程序的一部分,但我基本上需要的是提供sans-serif的系統,它將與unicode字符一起使用,這是一個很好看的Helvetica(或可選)。谷歌服務器可能已經安裝了一些字體,這是我想深入瞭解的內容。

我想找到一種字體使用的是unicode,因此日語和其他字符將使用PIL正確渲染。

我有一個網頁,使用font-family正確呈現unicode字符:'Helvetica Neue',Helvetica,Arial,sans-serif;

當我使用PIL呈現相同的Unicode字符時,它們不能正確呈現。我作爲應用程序的一部分上傳的字體在字體中沒有必要的unicode字符。

下面是我現在使用的相關python代碼行。

import Image, ImageDraw, ImageFont 

draw = ImageDraw.Draw(my_output) 
font = ImageFont.truetype("FontIAmUsing.otf", font_size, encoding="utf-8") 
draw.text((5, 51), 'abc', fill='#2A2A2A', font=font) 
+0

你是怎麼使用字體的?你有一些代碼片段? (我對PIL並不太熟悉,並試圖做一些事情來查看,例如'import os,PIL; print https.open.listdir(os.path.dirname(PIL .__ file __))'from https:// shell-27 .appspot.com) – bossylobster 2013-03-11 21:22:18

+0

「FontIAmUsing.otf」通常存在於哪裏? IIUC,它應該放在你要調用代碼的目錄中。你能不能只在你的應用程序中包含字體並且用這個文件進行部署? [本文](http://www.leancrew.com/all-this/2008/11/truetype-fonts-for-the-python-imaging-library/)似乎涵蓋了字體的保存位置以及如何包含他們在當地。 – bossylobster 2013-03-11 22:16:22

+0

沒錯。我讀過那篇文章,並且確實上傳了我的字體。我希望有一個系統字體可以像unicode字符一樣工作,就像sans-serif爲使用unicode字符的網頁一樣。在Mac上,我認爲無襯線字體可以迴歸到Helvetica。我沒有帶有unicode字符的Helvetica字體作爲應用程序的一部分上傳。我仍然希望Google可能會安裝一些我可以使用的系統安裝字體(Helvetica?)。 – philipfc 2013-03-11 22:30:50

回答

4

考慮到PIL只附帶了一個默認的位圖字體(醜陋的,可能不包含非常廣泛的Unicode字符),因爲你必須提供完整路徑的字體文件,你不能得到外界的您在GAE中的沙盒環境,您最好只是將您的字體與您的應用程序一起上傳。如果不指定路徑,它將查看Web應用程序的根目錄。我正在使用GoogleAppEngineLauncher for OSX,部署它時會上傳所有找到的文件(包括我用ImageDraw使用的.ttf文件)。

http://effbot.org/imagingbook/imagefont.htm的文檔聲明:(1.1.4新增功能)加載「比沒有更好」的默認字體。我剛剛確認在GAE上可以使用默認字體。

+0

我決定按照你的建議上傳一個字體。 – philipfc 2013-04-14 00:38:21

相關問題