テキストアンカー

anchor パラメータは、描画されるテキストの xy パラメータに対する配置を決定します。デフォルトの配置は左上、具体的には横書きテキストの場合は la (左-アセンダー)、縦書きテキストの場合は lt (左-上) です。

このパラメータは、OpenType/TrueType フォントでのみサポートされています。他のフォントはパラメータを無視し、デフォルト (左上) の配置を使用する場合があります。

アンカーの指定

アンカーは2文字の文字列で指定します。最初の文字は水平方向の配置、2番目の文字は垂直方向の配置です。たとえば、横書きテキストのデフォルト値 la は、左-アセンダー揃えのテキストを意味します。

特定のアンカーを使用して PIL.ImageDraw.ImageDraw.text() でテキストを描画する場合、指定されたアンカーポイントが xy 座標になるようにテキストが配置されます。

たとえば、次の画像では、テキストは ms (中央-ベースライン) 揃えで、xy は2本の線の交点にあります。

ms (middle-baseline) aligned text.
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)

クイックリファレンス

Horizontal text Vertical text

水平アンカーの配置

l — 左

アンカーはテキストの左側にあります。

*水平* テキストの場合、これは FreeType チュートリアル に示すように、最初のグリフの原点です。

m — 中央

アンカーはテキストと水平方向に中央揃えされます。

*垂直* テキストの場合、指定されたテキストの特定のグリフに基づいて変化しないため、s (ベースライン) 配置を使用することをお勧めします。

r — 右

アンカーはテキストの右側にあります。

*水平* テキストの場合、これは FreeType チュートリアル に示すように、最後のグリフの高度な原点です。

s — ベースライン *(縦書きテキストのみ)*

アンカーはテキストのベースライン (中央) にあります。正確な配置はフォントによって異なります。

*垂直* テキストの場合、指定されたテキストの特定のグリフに基づいて変化しないため、これが推奨される配置です (上記の縦書きテキストの画像を参照)。

垂直アンカーの配置

a — アセンダー/上 *(横書きテキストのみ)*

アンカーは、フォントで定義されているテキストの最初の行のアセンダーライン (上) にあります。

詳細は、Wikipedia のフォントメトリクス を参照してください。

t — 上 *(単一行テキストのみ)*

アンカーはテキストの上部にあります。

*垂直* テキストの場合、これは FreeType チュートリアル に示すように、最初のグリフの原点です。

*水平* テキストの場合、指定されたテキストの特定のグリフに基づいて変化しないため、a (アセンダー) 配置を使用することをお勧めします。

m — 中央

アンカーはテキストと垂直方向に中央揃えされます。

*水平* テキストの場合、これは最初のアセンダーラインと最後のディセンダーラインの中点です。

s — ベースライン *(横書きテキストのみ)*

アンカーはテキストの最初の行のベースライン (下) にあり、ディセンダーのみがアンカーの下に伸びています。

詳細は、Wikipedia のフォントメトリクス を参照してください。

b — 下 *(単一行テキストのみ)*

アンカーはテキストの下部にあります。

*垂直* テキストの場合、これは FreeType チュートリアル に示すように、最後のグリフの高度な原点です。

*水平* テキストの場合、指定されたテキストの特定のグリフに基づいて変化しないため、d (ディセンダー) 配置を使用することをお勧めします。

d — ディセンダー/下 *(横書きテキストのみ)*

アンカーは、フォントで定義されているテキストの最後の行のディセンダーライン (下) にあります。

詳細は、Wikipedia のフォントメトリクス を参照してください。

次の画像は、横書きテキストのアンカーの例をいくつか示しています。各セクションで、xy パラメータは、2本の線の交点で示される中心に設定されています。

Text anchor examples