我想用fontsize=2x vor美元和fontsize=x来画一张价格为美分的画,如下所示:
我希望能够写1.90和19.90等等,这就是为什么我希望美元的数量是对齐的,而美分的数量是标准的左对齐。
编辑:我忘记了一个关键点:逗号是固定的(因为一个显示位置),我想写美元值,以便它扩展到左边,而分号值总是保持原样(00,05,10,19,99.)。所以,当我不写12,99,例如,123,99,我仍然希望,在相同的位置。到目前为止,我唯一的想法是使用单个字符,这些字符不太适合处理:
发布于 2015-09-08 19:02:08
使用ImageDraw模块,您可以获得文本字符串的大小。
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转换为枕头只是为了这个。
发布于 2021-01-09 23:41:18
对于每个与PIL和锚挣扎的人来说,文档已经更新了。如今枕头支持锚的安放。
以下是文档:https://pillow.readthedocs.io/en/stable/handbook/text-anchors.html
在您的具体示例中,您可以放置一个相对于基线的文本元素,以及一个相对于上升层的文本元素。
https://stackoverflow.com/questions/32461981
复制相似问题