5

App Engine 上的 PIL 可以使用哪些字体?

我知道我可以将字体作为应用程序的一部分上传,但我基本上想要的是一个系统提供的无衬线字体,它可以处理 unicode 字符,这是一个好看的 Helvetica(或替代)。谷歌服务器可能已经安装了一些字体,这就是我想要了解的内容。

我想找到一种可以使用 unicode 的字体,以便使用 PIL 正确呈现日语和其他字符。

我有一个使用字体系列正确呈现 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)
4

1 回答 1

4

考虑到 PIL 仅附带默认的位图字体(丑陋且可能不包含非常广泛的 unicode 字符),并且由于您必须提供字体文件的完整路径并且您无法在 GAE 中脱离沙盒环境,因此您最好将您的字体与您的应用程序一起上传。如果您不指定路径,它将查看您的 Web 应用程序的根目录。我正在使用适用于 OSX 的 GoogleAppEngineLauncher,并且在部署它时会上传找到的所有文件(包括我与 ImageDraw 一起使用的 .ttf)。

http://effbot.org/imagingbook/imagefont.htm上的文档指出:(1.1.4 中的新功能)加载“总比没有好”的默认字体。我刚刚确认 GAE 上提供了默认字体。

于 2013-04-13T03:50:01.473 回答