如何在App Engine上为PIL ImageFont加载替代字体?

时间:2012-11-04 16:12:02

标签: google-app-engine

我已成功将一些Python代码移植到App Engine,后者使用PIL的ImageFont和ImageDraw生成动态图像。唯一剩下的问题是原始代码使用如下调用加载TrueType字体:

titlefont = ImageFont.truetype("Verdana Bold.ttf", titlefontsize)

我无法上传字体文件并直接在GAE中访问它(至少我不认为我可以?!)。我想有可能以某种方式将字体数据转储到数据存储区blob中,加载并将其提供给PIL,但这似乎不太优雅,如果每个使用PIL进行图像生成的人都做同样的事情,那就太浪费了。目前我仍然坚持使用ImageFont.load_default(),这会产生非常可怕的结果。

是否有一些巧妙的方法在GAE PIL中使用替代字体?缺少一些可以返回可用字体对象的其他API?

1 个答案:

答案 0 :(得分:2)

应用程序目录中的任何文件都将在部署时与应用程序一起上载。

所以,是的,您应该能够“只”访问您需要的任何文件,方法是将其保存在应用程序目录中或下面,必要时将其移动到那里。

如果你想提供这些文件,那就不一样了。 https://developers.google.com/appengine/docs/python/gettingstarted/staticfiles

但是请尝试将您的.ttf文件包含在您的应用可以找到它的位置,它应该可以正常工作。