3

Hy,我正在使用没有lib-freetype的PIL(Python图像库)。在没有freetype的情况下在PIL中使用字体

在没有安装freetype的情况下,是否可以使用字体(我只需调整文本大小,而不是更多!)?

或者是否可以设置字体大小,而不设置字体的真实类型,所以使用默认的truetype?

这是一个服务器上的项目,我可以安装纯PIL,没有任何支持truetypes的扩展!

+0

你能更详细地描述你的项目吗? “我只需调整文字大小”是什么意思? –

+0

我在python中创建了一个带PIL的.png。使用draw-lib,我将图像添加到文本中。为此,我不需要freetype,truetypes或其他。 现在我想设置这个文本的(字体)大小。我可以用font = ImageFont.truetype(文件名,大小,索引,编码)来做到这一点......但要使用它,我需要freetype,因为第一个参数! 所以我的问题是,如果可以避免这个参数和freetype!也许PIL中有其他尺寸选项? – user1665232

+0

试试此码: font = ImageFont.truetype('Arial.ttf',20) 我收到以下错误:ImportError:_imagingft C模块未安装 我认为这是因为我没有安装freetype – user1665232

回答

3

如果您阅读manual for the ImageFont module,您会发现Python Imaging Library支持格式为位图字体的PILFont

因此,在您自己的计算机上,以您想要的尺寸呈现TrueType字体,以PILFont格式保存位图,然后在服务器上使用PILFont。您可以使用otf2bdf将TrueType字体转换为BDF(Bitmap Distribution Format),然后PIL's pilfont utility将BDF转换为PILFont。见this question and its answers

+1

非常感谢,我会试试这个。所以我不能“缩放”或设置文本的大小,而不提供Fonttype或使用默认值? – user1665232

+0

PILFont是[**位图**字体](http://en.wikipedia.org/wiki/Computer_font#Bitmap_fonts)等(与TrueType字体不同),它不可缩放。您需要分别以您想要绘制的每个尺寸呈现您的字体。我想你可能会尝试渲染一次你需要的最大尺寸,并使用['Image.transform'](http://www.pythonware.com/library/pil/handbook/image.htm#Image.transform)来缩小它。但结果不如TrueType自己的缩放比例。 –

+0

为什么我得到错误:当我尝试使用truetypefont时_imagingft C模块未安装? 我已经在Pil文件夹中找到了_imagingft.pyd,为什么它不起作用? – user1665232

相关问题