文本锚点¶
The anchor
参数决定绘制的文本相对于 xy
参数的对齐方式。默认对齐方式为左上角,具体而言,对于水平文本为 la
(左上升),对于垂直文本为 lt
(左上角)。
此参数仅受 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
— 左边锚点位于文本的左侧。
对于水平文本,这是第一个字形的原点,如 FreeType 教程 中所示。
m
— 中间锚点与文本水平居中。
对于垂直文本,建议使用
s
(基线) 对齐方式,因为它不会根据给定文本的特定字形而改变。r
— 右边锚点位于文本的右侧。
对于水平文本,这是最后一个字形的推进原点,如 FreeType 教程 中所示。
s
— 基线 (仅限垂直文本)锚点位于文本的基线 (中间)。精确的对齐方式取决于字体。
对于垂直文本,这是建议的对齐方式,因为它不会根据给定文本的特定字形而改变 (请参见上方的垂直文本图像)。
垂直锚点对齐方式¶
a
— 上升/顶部 (仅限水平文本)锚点位于文本第一行的上升线 (顶部),如字体定义所示。
请参见 维基百科上的字体指标,以获取更多信息。
t
— 顶部 (仅限单行文本)锚点位于文本的顶部。
对于垂直文本,这是第一个字形的原点,如 FreeType 教程 中所示。
对于水平文本,建议使用
a
(上升) 对齐方式,因为它不会根据给定文本的特定字形而改变。m
— 中间锚点与文本垂直居中。
对于水平文本,这是第一个上升线和最后一个下降线的中间点。
s
— 基线 (仅限水平文本)锚点位于文本第一行的基线 (底部),只有下降线延伸到锚点下方。
请参见 维基百科上的字体指标,以获取更多信息。
b
— 底部 (仅限单行文本)锚点位于文本的底部。
对于垂直文本,这是最后一个字形的推进原点,如 FreeType 教程 中所示。
对于水平文本,建议使用
d
(下降) 对齐方式,因为它不会根据给定文本的特定字形而改变。d
— 下降/底部 (仅限水平文本)锚点位于文本最后一行下降线 (底部),如字体定义所示。
请参见 维基百科上的字体指标,以获取更多信息。
示例¶
下图显示了水平文本的几个锚点示例。在每个部分中,xy
参数设置为两条线交点所示的中心。