繁体   English   中英

在 Python 上使用 PIL 的文本

[英]Text using PIL on Python

我正在尝试使用 PIL 模块和 ImageDraw 在图像上添加文本。 我想在给定的横坐标处添加此文本,但我想使用 2 个不同的 fonts。 问题是我没有设法在 draw.text 中使用 2 种类型的前端。 想象一下这种情况,我想在同一个显示器中使用 2 个不同的 fonts 获得如下图所示的东西。 你有什么想法吗?

在此处输入图像描述

您可以使用 PIL 加载和引用不同的 fonts

font1 = ImageFont.truetype("/usr/share/fonts/gnu-free/FreeMono.otf", size=20)
font2 = ImageFont.truetype("/usr/share/fonts/gnu-free/FreeMono.otf", size=25)

并在单个绘图调用中使用它,例如

draw.text((5, 5), "Hello", font=font1)

您可以使用font1.getsize("Text contents")font1.getsize_multiline("Multiline \n text")来找出使用该字体渲染文本需要多少空间。 使用它,您应该能够在该偏移处继续使用新字体。 这样做不太符合人体工程学,并且可能需要处理很多边缘情况。

使用可以呈现标记文本的不同库可能会更好。 也许像 pango 或 cairo,甚至 LaTeX 如果你想要它花哨的话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM