Pillow 文本锚点

2021-07-12 14:55 更新

文本锚点

该​anchor​参数确定绘制文本相对于该​xy​参数的对齐方式。默认对齐方式是左上角,特别​la​是水平文本的 (left-ascender) 和​lt​垂直文本的 (left-top)。

此参数仅受 OpenType/TrueType 字体支持。其他字体可能会忽略该参数并使用默认(左上)对齐方式。

指定锚点

用两个字符的字符串指定锚点。第一个字符是水平对齐,第二个字符是垂直对齐。例如,la水平文本的默认值表示左升序对齐的文本。

PIL.ImageDraw.ImageDraw.text()​使用特定锚点绘制文本时,文本将被放置为使指定的锚点位于xy坐标处。

例如,在下图中,文本ms(中间基线)对齐, xy位于两条线的交点处:

ms(中间基线)对齐的文本。
from PIL import Image, ImageDraw, ImageFont

font = ImageFont.truetype("Tests/fonts/NotoSans-Regular.ttf", 48)
im = Image.new("RGB", (200, 200), "white")
d = ImageDraw.Draw(im)
d.line(((0, 100), (200, 100)), "gray")
d.line(((100, 0), (100, 200)), "gray")
d.text((100, 100), "Quick", fill="black", anchor="ms", font=font)

快速参考

横向文字 竖排文字

水平锚对齐

  • l - left

锚点在文本的左侧。

对于水平文本,这是第一个字形的起源。

  • m - middle

锚点与文本水平居中。

对于垂直文本,建议改用s(基线)对齐方式,因为它不会根据给定文本的特定字形而改变。

  • r - right

锚点在文本的右侧。

对于水平文本,这是最后一个字形的高级原点。

  • s-baseline (仅限垂直文本)

锚点位于文本的基线(中间)处。精确对齐取决于字体。

对于垂直文本,这是推荐的对齐方式,因为它不会根据给定文本的特定字形而改变(请参阅上面的垂直文本图像)。

垂直锚对齐

a- ascender / top (仅限水平文本)

锚点位于第一行文本的上升行(顶部),由字体定义。

t-top(仅限单行文本)

锚点位于文本的顶部。

对于垂直文本,这是第一个字形的起源。

对于水平文本,建议改用a(ascender) 对齐方式,因为它不会根据给定文本的特定字形而改变。

m - middle

锚点与文本垂直居中。

对于水平文本,这是第一条上升线和最后一条下降线的中点。

s-baseline(仅限横向文本)

锚点位于第一行文本的基线(底部),只有下行延伸到锚点下方。

b-bottom(仅限单行文本)

锚点位于文本的底部。

对于垂直文本,这是最后一个字形的高级原点。

对于水平文本,建议改用d(descender) 对齐方式,因为它不会根据给定文本的特定字形而改变。

d- descender / bottom(仅限水平文本)

锚点位于文本最后一行的下行线(底部),由字体定义。

例子

下图显示了水平文本锚点的几个示例。在每个部分中,xy参数设置为两条线的交点所示的中心。

文本锚点示例


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号