这个 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
-左-
锚在文本的左边。
为 水平 text这是第一个字形的原点,如 FreeType tutorial 。
m
-中间-
锚点与文本水平居中。
为 垂直 文本建议使用
s
改为(基线)对齐,因为它不会根据给定文本的特定字形进行更改。 r
-对-
锚在文本的右边。
为 水平 text这是最后一个字形的高级原点,如 FreeType tutorial 。
s
-基线 (仅限直排文本)-
锚点位于文本的基线(中间)。精确对齐方式取决于字体。
为 垂直 text这是推荐的对齐方式,因为它不会根据给定文本的特定字形进行更改(请参见上面的直排文本的图像)。
垂直锚点对齐
a
-上升/顶部 (仅限横排文本)-
锚点位于第一行文本的上升行(顶部),由字体定义。
看见 Font metrics on Wikipedia 了解更多信息。
t
-顶部 (single-line text only)-
锚在文本的顶部。
为 垂直 text这是第一个字形的原点,如 FreeType tutorial 。
为 水平 文本建议使用
a
(升序)改为对齐,因为它不会根据给定文本的特定字形进行更改。 m
-中间-
锚点与文本垂直居中。
为 水平 文本这是第一条上升线和最后一条下降线的中点。
s
-基线 (仅限横排文本)-
锚点位于第一行文本的基线(底部),只有向下延伸到锚点下方。
看见 Font metrics on Wikipedia 了解更多信息。
b
-底部 (single-line text only)-
锚在文本的底部。
为 垂直 text这是最后一个字形的高级原点,如 FreeType tutorial 。
为 水平 文本建议使用
d
改为(降序)对齐,因为它不会根据给定文本的特定字形进行更改。 d
-下降/底部 (仅限横排文本)-
锚点位于最后一行文本的下行(底部),由字体定义。
看见 Font metrics on Wikipedia 了解更多信息。
示例
下图显示了几个水平文本锚点的示例。在每个部分中, xy
参数设置为两条直线的交点所示的中心。
讨论区