Pillow 文本錨點

2021-07-12 14:55 更新

文本錨點

該?anchor?參數(shù)確定繪制文本相對于該?xy?參數(shù)的對齊方式。默認對齊方式是左上角,特別?la?是水平文本的 (left-ascender) 和?lt?垂直文本的 (left-top)。

此參數(shù)僅受 OpenType/TrueType 字體支持。其他字體可能會忽略該參數(shù)并使用默認(左上)對齊方式。

指定錨點

用兩個字符的字符串指定錨點。第一個字符是水平對齊,第二個字符是垂直對齊。例如,la水平文本的默認值表示左升序?qū)R的文本。

?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

錨點在文本的左側(cè)。

對于水平文本,這是第一個字形的起源。

  • m - middle

錨點與文本水平居中。

對于垂直文本,建議改用s(基線)對齊方式,因為它不會根據(jù)給定文本的特定字形而改變。

  • r - right

錨點在文本的右側(cè)。

對于水平文本,這是最后一個字形的高級原點。

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

錨點位于文本的基線(中間)處。精確對齊取決于字體。

對于垂直文本,這是推薦的對齊方式,因為它不會根據(jù)給定文本的特定字形而改變(請參閱上面的垂直文本圖像)。

垂直錨對齊

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

錨點位于第一行文本的上升行(頂部),由字體定義。

t-top(僅限單行文本)

錨點位于文本的頂部。

對于垂直文本,這是第一個字形的起源。

對于水平文本,建議改用a(ascender) 對齊方式,因為它不會根據(jù)給定文本的特定字形而改變。

m - middle

錨點與文本垂直居中。

對于水平文本,這是第一條上升線和最后一條下降線的中點。

s-baseline(僅限橫向文本)

錨點位于第一行文本的基線(底部),只有下行延伸到錨點下方。

b-bottom(僅限單行文本)

錨點位于文本的底部。

對于垂直文本,這是最后一個字形的高級原點。

對于水平文本,建議改用d(descender) 對齊方式,因為它不會根據(jù)給定文本的特定字形而改變。

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

錨點位于文本最后一行的下行線(底部),由字體定義。

例子

下圖顯示了水平文本錨點的幾個示例。在每個部分中,xy參數(shù)設(shè)置為兩條線的交點所示的中心。

文本錨點示例


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號