我已經成功地將一些Python代碼移植到使用PIL的ImageFont和ImageDraw生成動態圖像的App Engine。唯一剩下的問題是原來代碼中使用這樣的調用加載TrueType字體:如何在App Engine上加載PIL ImageFont的替代字體?
titlefont = ImageFont.truetype("Verdana Bold.ttf", titlefontsize)
我不能只上傳字體文件,並在GAE直接訪問它(至少我不認爲我能夠?!)。我想可能以某種方式將字體數據轉儲到數據存儲區blob中,加載並將其提供到PIL中,但這看起來不夠優雅,而且如果每個使用PIL生成圖像的人都做同樣的事情,那麼相當浪費。目前我與ImageFont.load_default()
卡住,雖然,這給了非常可怕的前瞻性結果。
是否有一些聰明的方式在GAE PIL中使用替代字體?我錯過了一些額外的API會返回可用的字體對象?
很酷。是的,它的作品 - 不知道爲什麼我認爲它不會。我實際上已經很快嘗試過了,但是我不知道爲什麼只有這個原因,路徑被破壞了,字體文件也沒有找到。感謝指針! – oliversturm
啊,是的,路徑 - 如果這有助於任何人 - 例如,我有我的GAE應用程序的根目錄中的我的字體文件在一個文件夾「字體」。然而,我的控制器代碼試圖訪問文件來加載字體,它本身就在一個子文件夾中。我**必須使用'字體/ Font.ttf'來訪問文件。不能有'/ fonts/Font.ttf'。奇怪的是,因爲路徑並非真的相對 - 至少與執行代碼無關。讓我困惑。無法訪問當前目錄中的文件。有一個基於根目錄的「相對」路徑。注意自我,現在記住這個:) – oliversturm
該應用程序的當前工作目錄是您的應用程序的根目錄,而不是您當前所在的模塊 - 因此爲什麼相對於您的應用程序根目錄的路徑有效。絕對路徑不起作用,因爲您的應用程序不在服務器的根目錄中。 –