首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PIL ImageDraw.Text或ImageDraw.multiline_text对准

PIL ImageDraw.Text或ImageDraw.multiline_text对准
EN

Stack Overflow用户
提问于 2015-09-08 15:42:37
回答 2查看 3.5K关注 0票数 0

我想用fontsize=2x vor美元和fontsize=x来画一张价格为美分的画,如下所示:

我希望能够写1.90和19.90等等,这就是为什么我希望美元的数量是对齐的,而美分的数量是标准的左对齐。

编辑:我忘记了一个关键点:逗号是固定的(因为一个显示位置),我想写美元值,以便它扩展到左边,而分号值总是保持原样(00,05,10,19,99.)。所以,当我不写12,99,例如,123,99,我仍然希望,在相同的位置。到目前为止,我唯一的想法是使用单个字符,这些字符不太适合处理:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-08 19:02:08

使用ImageDraw模块,您可以获得文本字符串的大小。

代码语言:javascript
运行
复制
draw.textsize(string, options) ⇒ (width, height)

这是来自http://effbot.org/imagingbook/imagedraw.htm的文档。因此,您可以获得字符串"12“的宽度(以像素为单位)。现在,您可以从所需的结束位置减去宽度,以知道从何处开始。不幸的是,PIL似乎没有给出定位文本的方法,除非指定左上角,所以对于其他锚,您必须自己计算(据我所知)。

编辑:我刚看了一下http://pillow.readthedocs.org/reference/ImageDraw.html#functions的枕头文档

给定的函数的签名是

PIL.ImageDraw.Draw.text(xy,text,fill=None,font=None,anchor=None)

但是,在签名下面的评论中,没有解释“锚”,因此它可能只是计划中的未来增强。我自己的枕头医生的经验表明,这是一个真正的可能性。就我个人而言,我会尝试看看枕头的来源,并确定状态之前,从PIL转换为枕头只是为了这个。

票数 1
EN

Stack Overflow用户

发布于 2021-01-09 23:41:18

对于每个与PIL和锚挣扎的人来说,文档已经更新了。如今枕头支持锚的安放。

以下是文档:https://pillow.readthedocs.io/en/stable/handbook/text-anchors.html

在您的具体示例中,您可以放置一个相对于基线的文本元素,以及一个相对于上升层的文本元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32461981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档