Pillow 文本锚点
文本锚点
该anchor
参数确定绘制文本相对于该xy
参数的对齐方式。默认对齐方式是左上角,特别la
是水平文本的 (left-ascender) 和lt
垂直文本的 (left-top)。
此参数仅受 OpenType/TrueType 字体支持。其他字体可能会忽略该参数并使用默认(左上)对齐方式。
指定锚点
用两个字符的字符串指定锚点。第一个字符是水平对齐,第二个字符是垂直对齐。例如,la
水平文本的默认值表示左升序对齐的文本。
PIL.ImageDraw.ImageDraw.text()
使用特定锚点绘制文本时,文本将被放置为使指定的锚点位于xy
坐标处。
例如,在下图中,文本ms
(中间基线)对齐, xy
位于两条线的交点处:
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
参数设置为两条线的交点所示的中心。
更多建议: