【发布时间】:2018-12-23 15:52:29
【问题描述】:
我花了很多时间使用 Python 制作我的第一个 Web 应用程序,并且我使用 pil 来生成图像。经过大量阅读,我设法实现了正确的文本对齐、换行、生成具有许多扩展名的文件等。
但是,PIL 生成的所有文本都在顶部被截断。这是一个示例。
应该以多种字体显示ŻÓĆjygpq(字体名称在左侧)。
我在这里找到了一些帖子:fonts clipping with PIL, 但我想避免使用另一个模块(aggdraw);因为我已经在 PIL 中找到了很多东西,所以我想坚持下去。
我尝试了许多不同大小的字体,但文字仍然被截断。我什至尝试使用 PIL 字体,但它仍然不起作用。 [还将 OTF 转换为 BDF 和 PIL]。
这是在 Ubuntu 上。接下来我应该尝试什么?
【问题讨论】:
-
有趣的问题,如果不进入 PIL 的 C 部分就可以解决这个问题,我会感到惊讶。
-
您能否提供用于打印这些文本的示例代码?我已经修补了 _imagingft.c,它似乎适用于我测试的字体。
-
感谢您的回答。我稍微简化了一点,但方法是一样的:
color_text = 'black' text2 = 'DejaVuSans.ttf' font1 = ImageFont.truetype('/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf', 34) draw.text((20,50), text2, color_text, font=font1)它没有什么花哨的,只是用于包装、居中等的一些计算,所以它只是 pil 提供的基本 draw.text。理论上它应该开箱即用,尤其是那些 PIL 类型的字体。
标签: pil python fonts python-imaging-library text-rendering