ImageDraw モジュール

ImageDraw モジュールは、Image オブジェクトに対するシンプルな 2D グラフィックスを提供します。このモジュールを使用して、新しい画像を作成したり、既存の画像に注釈を付けたり、修正したり、Web 使用のためにグラフィックスを動的に生成したりできます。

PIL のより高度な描画ライブラリについては、aggdraw モジュール を参照してください。

例:画像上に灰色の十字を描く

import sys
from PIL import Image, ImageDraw

with Image.open("hopper.jpg") as im:

    draw = ImageDraw.Draw(im)
    draw.line((0, 0) + im.size, fill=128)
    draw.line((0, im.size[1], im.size[0], 0), fill=128)

    # write to stdout
    im.save(sys.stdout, "PNG")

概念

座標

グラフィックスインターフェースは、PIL 自体と同じ座標系を使用し、左上が (0, 0) となります。画像の境界外に描画されたピクセルは破棄されます。

PIL.Image.new() または PIL.Image.Image.putpixel() と同様に、数値またはタプルを使用して色を指定できます。「1」、「L」、および「I」画像の場合は、整数を使用します。「RGB」画像の場合は、整数値を含む 3 タプルを使用します。「F」画像の場合は、整数または浮動小数点値を使用します。

パレット画像(モード「P」)の場合は、整数を行番号として使用します。1.1.4 以降では、RGB 3 タプルまたはカラー名(下記参照)も使用できます。描画レイヤーは、256 色を超えて描画しない限り、自動的にカラーインデックスを割り当てます。

カラー名

Pillow でサポートされているカラー名については、カラー名 を参照してください。

フォント

PIL は、ビットマップフォントまたは OpenType/TrueType フォントを使用できます。

ビットマップフォントは PIL 独自の形式で保存され、各フォントは通常 .pil という名前のファイルと、通常 .pbm という名前のファイルの 2 つのファイルで構成されます。前者にはフォントメトリクスが、後者にはラスターデータが含まれています。

ビットマップフォントを読み込むには、ImageFont モジュールのロード関数を使用します。

OpenType/TrueType フォントを読み込むには、ImageFont モジュールの truetype 関数を使用します。この関数はサードパーティライブラリに依存しており、すべての PIL ビルドで使用できるわけではないことに注意してください。

例:部分的な不透明度を持つテキストを描く

from PIL import Image, ImageDraw, ImageFont

# get an image
with Image.open("Pillow/Tests/images/hopper.png").convert("RGBA") as base:

    # make a blank image for the text, initialized to transparent text color
    txt = Image.new("RGBA", base.size, (255, 255, 255, 0))

    # get a font
    fnt = ImageFont.truetype("Pillow/Tests/fonts/FreeMono.ttf", 40)
    # get a drawing context
    d = ImageDraw.Draw(txt)

    # draw text, half opacity
    d.text((10, 10), "Hello", font=fnt, fill=(255, 255, 255, 128))
    # draw text, full opacity
    d.text((10, 60), "World", font=fnt, fill=(255, 255, 255, 255))

    out = Image.alpha_composite(base, txt)

    out.show()

例:複数行のテキストを描く

from PIL import Image, ImageDraw, ImageFont

# create an image
out = Image.new("RGB", (150, 100), (255, 255, 255))

# get a font
fnt = ImageFont.truetype("Pillow/Tests/fonts/FreeMono.ttf", 40)
# get a drawing context
d = ImageDraw.Draw(out)

# draw multiline text
d.multiline_text((10, 10), "Hello\nWorld", font=fnt, fill=(0, 0, 0))

out.show()

関数

PIL.ImageDraw.Draw(im, mode=None)[source]

指定された画像に描画するために使用できるオブジェクトを作成します。

画像はインプレースで変更されることに注意してください。

パラメータ:
  • im – 描画する画像。

  • mode – 色値に使用するオプションのモード。「RGB」画像の場合、この引数は「RGB」または「RGBA」(描画を画像にブレンドするため)にすることができます。他のすべてのモードの場合、この引数は画像モードと同じである必要があります。省略した場合、モードは画像のモードにデフォルト設定されます。

属性

ImageDraw.fill: bool = False

ImageDraw.ink を塗りつぶしの色として使用するかどうかを選択します。

ImageDraw.font

現在のデフォルトフォント。

インスタンスごとに設定できます。

from PIL import ImageDraw, ImageFont
draw = ImageDraw.Draw(image)
draw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")

または、将来のすべての ImageDraw インスタンスに対してグローバルに設定できます。

from PIL import ImageDraw, ImageFont
ImageDraw.ImageDraw.font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")
ImageDraw.fontmode

現在のフォント描画モード。

アンチエイリアシングを無効にするには "1" に、有効にするには "L" に設定します。

ImageDraw.ink: int

現在のデフォルトカラーの内部表現。

メソッド

ImageDraw.getfont()[source]

現在のデフォルトフォントである ImageDraw.font を取得します。

現在のデフォルトフォントが None の場合、ImageFont.load_default() で初期化されます。

戻り値:

イメージフォント。

ImageDraw.arc(xy, start, end, fill=None, width=0)[source]

指定された境界ボックス内で、開始角度と終了角度の間の円弧(円の一部)を描画します。

パラメータ:
  • xy – バウンディングボックスを定義する2点。 [(x0, y0), (x1, y1)] または [x0, y0, x1, y1] のシーケンス。ここで、x1 >= x0 かつ y1 >= y0

  • start – 開始角度(度)。角度は3時の方向から時計回りに増加します。

  • end – 終了角度(度)。

  • fill – アークに使用する色。

  • width

    線の幅(ピクセル)。

    バージョン5.3.0で追加。

ImageDraw.bitmap(xy, bitmap, fill=None)[source]

指定された位置にビットマップ(マスク)を描画します。非ゼロの部分には現在の塗りつぶし色を使用します。ビットマップは有効な透過マスク(モード「1」)またはマット(モード「L」または「RGBA」)である必要があります。

これは image.paste(xy, color, bitmap) を実行することと同じです。

ピクセルデータを画像に貼り付けるには、画像自体の paste() メソッドを使用します。

ImageDraw.chord(xy, start, end, fill=None, outline=None, width=1)[source]

arc() と同じですが、端点を直線で接続します。

パラメータ:
  • xy – バウンディングボックスを定義する2点。 [(x0, y0), (x1, y1)] または [x0, y0, x1, y1] のシーケンス。ここで、x1 >= x0 かつ y1 >= y0

  • outline – アウトラインに使用する色。

  • fill – 塗りつぶしに使用する色。

  • width

    線の幅(ピクセル)。

    バージョン5.3.0で追加。

ImageDraw.circle(xy, radius, fill=None, outline=None, width=1)[source]

点を中心とした指定された半径の円を描画します。

バージョン10.4.0で追加。

パラメータ:
  • xy – 円の中心の座標(例:(x, y))。

  • radius – 円の半径。

  • outline – アウトラインに使用する色。

  • fill – 塗りつぶしに使用する色。

  • width – 線の幅(ピクセル)。

ImageDraw.ellipse(xy, fill=None, outline=None, width=1)[source]

指定されたバウンディングボックス内に楕円を描画します。

パラメータ:
  • xy – バウンディングボックスを定義する2点。 [(x0, y0), (x1, y1)] または [x0, y0, x1, y1] のシーケンス。ここで、x1 >= x0 かつ y1 >= y0

  • outline – アウトラインに使用する色。

  • fill – 塗りつぶしに使用する色。

  • width

    線の幅(ピクセル)。

    バージョン5.3.0で追加。

ImageDraw.line(xy, fill=None, width=0, joint=None)[source]

xy リスト内の座標間に線を引きます。座標ピクセルは描画された線に含まれます。

パラメータ:
  • xy[(x, y), (x, y), ...] のような2タプルのシーケンス、または [x, y, x, y, ...] のような数値のシーケンス。

  • fill – 線に使用する色。

  • width

    線の幅(ピクセル)。

    バージョン1.1.5で追加。

    注記

    このオプションはバージョン1.1.6まで動作していませんでした。

  • joint

    一連の線間の結合タイプ。丸みを帯びたエッジの場合は "curve"、または None

    バージョン5.3.0で追加。

ImageDraw.pieslice(xy, start, end, fill=None, outline=None, width=1)[source]

arc と同じですが、端点とバウンディングボックスの中心間に直線も描画します。

パラメータ:
  • xy – バウンディングボックスを定義する2点。 [(x0, y0), (x1, y1)] または [x0, y0, x1, y1] のシーケンス。ここで、x1 >= x0 かつ y1 >= y0

  • start – 開始角度(度)。角度は3時の方向から時計回りに増加します。

  • end – 終了角度(度)。

  • fill – 塗りつぶしに使用する色。

  • outline – アウトラインに使用する色。

  • width

    線の幅(ピクセル)。

    バージョン5.3.0で追加。

ImageDraw.point(xy, fill=None)[source]

指定された座標に点(個々のピクセル)を描画します。

パラメータ:
  • xy[(x, y), (x, y), ...] のような2タプルのシーケンス、または [x, y, x, y, ...] のような数値のシーケンス。

  • fill – 点に使用する色。

ImageDraw.polygon(xy, fill=None, outline=None, width=1)[source]

多角形を描画します。

多角形のアウトラインは、指定された座標間の直線と、最後と最初の座標間の直線で構成されます。座標ピクセルは描画された多角形に含まれます。

パラメータ:
  • xy[(x, y), (x, y), ...] のような2タプルのシーケンス、または [x, y, x, y, ...] のような数値のシーケンス。

  • fill – 塗りつぶしに使用する色。

  • outline – アウトラインに使用する色。

  • width – 線の幅(ピクセル)。

ImageDraw.regular_polygon(bounding_circle, n_sides, rotation=0, fill=None, outline=None, width=1)[source]

bounding_circleに内接する正多角形を描画します。n_sides は辺の数、rotation は回転角度(度)です。

パラメータ:
  • bounding_circle – バウンディングサークルは、点と半径で定義されるタプルです。(例:bounding_circle=(x, y, r) または ((x, y), r))。多角形はこの円に内接します。

  • n_sides – 辺の数(例:三角形の場合は n_sides=3、六角形の場合は 6)。

  • rotation – 多角形に任意の回転を適用します(例:rotation=90 は90度の回転を適用します)。

  • fill – 塗りつぶしに使用する色。

  • outline – アウトラインに使用する色。

  • width – 線の幅(ピクセル)。

ImageDraw.rectangle(xy, fill=None, outline=None, width=1)[source]

長方形を描画します。

パラメータ:
  • xy – バウンディングボックスを定義する2点。 [(x0, y0), (x1, y1)] または [x0, y0, x1, y1] のシーケンス。ここで、x1 >= x0 かつ y1 >= y0 となります。バウンディングボックスは両方の端点を包含します。

  • fill – 塗りつぶしに使用する色。

  • outline – アウトラインに使用する色。

  • width

    線の幅(ピクセル)。

    バージョン5.3.0で追加。

ImageDraw.rounded_rectangle(xy, radius=0, fill=None, outline=None, width=1, corners=None)[source]

角丸長方形を描画します。

パラメータ:
  • xy – バウンディングボックスを定義する2点。 [(x0, y0), (x1, y1)] または [x0, y0, x1, y1] のシーケンス。ここで、x1 >= x0 かつ y1 >= y0 となります。バウンディングボックスは両方の端点を包含します。

  • radius – 角の半径。

  • fill – 塗りつぶしに使用する色。

  • outline – アウトラインに使用する色。

  • width – 線の幅(ピクセル)。

  • corners – 各角を丸めるかどうかを示すタプル、(top_left, top_right, bottom_right, bottom_left)。キーワード引数。

バージョン 8.2.0 で追加されました。

ImageDraw.shape(shape, fill=None, outline=None)[source]

警告

このメソッドは実験的なものです。

図形を描画します。

ImageDraw.text(xy, text, fill=None, font=None, anchor=None, spacing=4, align='left', direction=None, features=None, language=None, stroke_width=0, stroke_fill=None, embedded_color=False, font_size=None)[source]

指定した位置に文字列を描画します。

パラメータ:
  • xy – テキストのアンカー座標。

  • text – 描画する文字列。改行文字が含まれている場合、テキストはmultiline_text()に渡されます。

  • fill – テキストに使用する色。

  • fontImageFont インスタンス。

  • anchor

    テキストアンカーの配置。アンカーとテキストの相対的な位置を決定します。デフォルトの配置は左上、水平テキストの場合はla、垂直テキストの場合はltです。テキストアンカーを参照してください。このパラメータは、TrueType以外のフォントでは無視されます。

    注記

    このパラメータはPillowの以前のバージョンにも存在しましたが、バージョン8.0.0で初めて実装されました。

  • spacing – テキストがmultiline_text()に渡される場合、行間のピクセル数。

  • align – テキストがmultiline_text()に渡される場合、"left""center"、または"right"。行の相対的な配置を決定します。xyへの配置を指定するにはanchorパラメータを使用します。

  • direction

    テキストの方向。"rtl"(右から左)、"ltr"(左から右)、または"ttb"(上から下)にすることができます。libraqmが必要です。

    バージョン 4.2.0 で追加されました。

  • features

    テキストレイアウト中に使用するOpenTypeフォント機能のリスト。これは通常、デフォルトでは有効になっていないオプションのフォント機能(例:"dlig"または"ss01")を有効にするために使用されますが、デフォルトのフォント機能を無効にするためにも使用できます(例:リガチャを無効にする"-liga"またはカーニングを無効にする"-kern")。サポートされているすべての機能を取得するには、OpenTypeドキュメントを参照してください。libraqmが必要です。

    バージョン 4.2.0 で追加されました。

  • language

    テキストの言語。言語が異なると、グリフの形状やリガチャが異なる場合があります。このパラメータは、テキストの言語をフォントに伝え、必要に応じて適切な置換を適用します(使用可能な場合)。BCP 47言語コードである必要があります。libraqmが必要です。

    バージョン 6.0.0 で追加されました。

  • stroke_width

    テキストストロークの幅。

    バージョン 6.2.0 で追加されました。

  • stroke_fill

    テキストストロークに使用する色。指定しない場合、fillパラメータのデフォルト値が使用されます。

    バージョン 6.2.0 で追加されました。

  • embedded_color

    フォントに埋め込まれたカラーグリフ(COLR、CBDT、SBIX)を使用するかどうか。

    バージョン 8.0.0 で追加されました。

  • font_size

    fontが指定されていない場合、デフォルトフォントに使用するサイズ。

    キーワード引数。

    バージョン 10.1.0 で追加されました。

ImageDraw.multiline_text(xy, text, fill=None, font=None, anchor=None, spacing=4, align='left', direction=None, features=None, language=None, stroke_width=0, stroke_fill=None, embedded_color=False, font_size=None)[source]

指定した位置に文字列を描画します。

パラメータ:
  • xy – テキストのアンカー座標。

  • text – 描画する文字列。

  • fill – テキストに使用する色。

  • fontImageFont インスタンス。

  • anchor

    テキストアンカーの配置。アンカーとテキストの相対的な位置を決定します。デフォルトの配置は左上、水平テキストの場合はla、垂直テキストの場合はltです。テキストアンカーを参照してください。このパラメータは、TrueType以外のフォントでは無視されます。

    注記

    このパラメータはPillowの以前のバージョンにも存在しましたが、バージョン8.0.0で初めて実装されました。

  • spacing – 行間のピクセル数。

  • align"left", "center", または "right"。行の相対的な配置を決定します。xyに対する配置を指定するには、anchorパラメータを使用します。

  • direction

    テキストの方向。"rtl"(右から左)、"ltr"(左から右)、または"ttb"(上から下)にすることができます。libraqmが必要です。

    バージョン 4.2.0 で追加されました。

  • features

    テキストレイアウト中に使用するOpenTypeフォント機能のリスト。これは通常、デフォルトでは有効になっていないオプションのフォント機能(例:"dlig"または"ss01")を有効にするために使用されますが、デフォルトのフォント機能を無効にするためにも使用できます(例:リガチャを無効にする"-liga"またはカーニングを無効にする"-kern")。サポートされているすべての機能を取得するには、OpenTypeドキュメントを参照してください。libraqmが必要です。

    バージョン 4.2.0 で追加されました。

  • language

    テキストの言語。言語が異なると、グリフの形状やリガチャが異なる場合があります。このパラメータは、テキストの言語をフォントに伝え、必要に応じて適切な置換を適用します(使用可能な場合)。BCP 47言語コードである必要があります。libraqmが必要です。

    バージョン 6.0.0 で追加されました。

  • stroke_width

    テキストストロークの幅。

    バージョン 6.2.0 で追加されました。

  • stroke_fill

    テキストの輪郭に使用する色。指定しない場合、

    fillパラメータの値が使用されます。

    バージョン 6.2.0 で追加されました。

  • embedded_color

    フォントに埋め込まれたカラーグリフ(COLR、CBDT、SBIX)を使用するかどうか。

    バージョン 8.0.0 で追加されました。

  • font_size

    fontが指定されていない場合、デフォルトフォントに使用するサイズ。

    キーワード引数。

    バージョン 10.1.0 で追加されました。

ImageDraw.textlength(text, font=None, direction=None, features=None, language=None, embedded_color=False, font_size=None)[source]

指定されたフォント、方向、機能、言語でレンダリングされた場合の、指定されたテキストの長さ(ピクセル単位で1/64の精度)を返します。

これは、後続のテキストをオフセットする必要がある量です。テキストの境界ボックスは、イタリック体やアクセントを使用する場合など、一部のフォントでは長さを超える可能性があります。

結果は浮動小数点数として返されます。基本レイアウトを使用している場合は整数になります。

カーニングのため、2つの長さの合計が連結された文字列の長さと等しくない場合があります。カーニングを調整する必要がある場合は、次の文字を含めてその長さを引きます。

例えば、

hello = draw.textlength("Hello", font)
world = draw.textlength("World", font)
hello_world = hello + world  # not adjusted for kerning
assert hello_world == draw.textlength("HelloWorld", font)  # may fail

の代わりに

hello = draw.textlength("HelloW", font) - draw.textlength(
    "W", font
)  # adjusted for kerning
world = draw.textlength("World", font)
hello_world = hello + world  # adjusted for kerning
assert hello_world == draw.textlength("HelloWorld", font)  # True

を使用するか、(libraqmが必要)カーニングを無効にします。

hello = draw.textlength("Hello", font, features=["-kern"])
world = draw.textlength("World", font, features=["-kern"])
hello_world = hello + world  # kerning is disabled, no need to adjust
assert hello_world == draw.textlength("HelloWorld", font, features=["-kern"])  # True

バージョン 8.0.0 で追加されました。

パラメータ:
  • text – 測定するテキスト。改行文字を含めることはできません。

  • fontImageFont インスタンス。

  • direction – テキストの方向。 "rtl"(右から左)、"ltr"(左から右)、または"ttb"(上から下)にすることができます。libraqmが必要です。

  • features – テキストレイアウト中に使用するOpenTypeフォント機能のリスト。これは通常、デフォルトでは有効になっていないオプションのフォント機能(例:「dlig」または「ss01」)を有効にするために使用されますが、デフォルトのフォント機能を無効にするためにも使用できます(例:「-liga」で合字を無効化、「-kern」でカーニングを無効化)。サポートされているすべての機能を取得するには、[OpenTypeドキュメント](https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist)を参照してください。libraqmが必要です。

  • language – テキストの言語。言語によっては、異なるグリフ形状や合字が使用される場合があります。このパラメータは、テキストの言語をフォントに伝え、必要に応じて適切な置換を適用します(利用可能な場合)。[BCP 47言語コード](https://www.w3.org/International/articles/language-tags/)である必要があります。libraqmが必要です。

  • embedded_color – フォントに埋め込まれたカラーグリフ(COLR、CBDT、SBIX)を使用するかどうか。

  • font_size

    fontが指定されていない場合、デフォルトフォントに使用するサイズ。

    キーワード引数。

    バージョン 10.1.0 で追加されました。

戻り値:

水平方向のテキストの場合は幅、垂直方向のテキストの場合は高さを返します。

ImageDraw.textbbox(xy, text, font=None, anchor=None, spacing=4, align='left', direction=None, features=None, language=None, stroke_width=0, embedded_color=False, font_size=None)[source]

指定されたフォント、方向、機能、言語でレンダリングされた場合の、指定されたアンカーを基準としたテキストの境界ボックス(ピクセル単位)を返します。TrueTypeフォントでのみサポートされます。

1/64ピクセルの精度で後続のテキストのオフセットを取得するには、textlength()を使用します。境界ボックスには、イタリック体やアクセントなど、一部のフォントの余分なマージンが含まれています。

バージョン 8.0.0 で追加されました。

パラメータ:
  • xy – テキストのアンカー座標。

  • text – 測定するテキスト。改行文字が含まれている場合、テキストはmultiline_textbbox()に渡されます。

  • fontFreeTypeFontインスタンス。

  • anchor – テキストアンカーの配置。アンカーとテキストの相対的な位置を決定します。デフォルトの配置は左上、水平テキストの場合はla、垂直テキストの場合はltです。詳細は、[テキストアンカー](../handbook/text-anchors.html#text-anchors)を参照してください。このパラメータは、TrueType以外のフォントでは無視されます。

  • spacing – テキストがmultiline_textbbox()に渡される場合、行間のピクセル数。

  • align – テキストがmultiline_textbbox()に渡される場合、"left""center"、または"right"。行の相対的な配置を決定します。xyに対する配置を指定するには、anchorパラメータを使用します。

  • direction – テキストの方向。 "rtl"(右から左)、"ltr"(左から右)、または"ttb"(上から下)にすることができます。libraqmが必要です。

  • features – テキストレイアウト中に使用するOpenTypeフォント機能のリスト。これは通常、デフォルトでは有効になっていないオプションのフォント機能(例:「dlig」または「ss01」)を有効にするために使用されますが、デフォルトのフォント機能を無効にするためにも使用できます(例:「-liga」で合字を無効化、「-kern」でカーニングを無効化)。サポートされているすべての機能を取得するには、[OpenTypeドキュメント](https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist)を参照してください。libraqmが必要です。

  • language – テキストの言語。言語によっては、異なるグリフ形状や合字が使用される場合があります。このパラメータは、テキストの言語をフォントに伝え、必要に応じて適切な置換を適用します(利用可能な場合)。[BCP 47言語コード](https://www.w3.org/International/articles/language-tags/)である必要があります。libraqmが必要です。

  • stroke_width – テキストの輪郭の幅。

  • embedded_color – フォントに埋め込まれたカラーグリフ(COLR、CBDT、SBIX)を使用するかどうか。

  • font_size

    fontが指定されていない場合、デフォルトフォントに使用するサイズ。

    キーワード引数。

    バージョン 10.1.0 で追加されました。

戻り値:

(left, top, right, bottom) 境界ボックス

ImageDraw.multiline_textbbox(xy, text, font=None, anchor=None, spacing=4, align='left', direction=None, features=None, language=None, stroke_width=0, embedded_color=False, font_size=None)[source]

指定されたフォント、方向、機能、言語でレンダリングされた場合の、指定されたアンカーを基準としたテキストの境界ボックス(ピクセル単位)を返します。TrueTypeフォントでのみサポートされます。

1/64ピクセルの精度で後続のテキストのオフセットを取得するには、textlength()を使用します。境界ボックスには、イタリック体やアクセントなど、一部のフォントの余分なマージンが含まれています。

バージョン 8.0.0 で追加されました。

パラメータ:
  • xy – テキストのアンカー座標。

  • text – 測定するテキスト。

  • fontFreeTypeFontインスタンス。

  • anchor – テキストアンカーの配置。アンカーとテキストの相対的な位置を決定します。デフォルトの配置は左上、水平テキストの場合はla、垂直テキストの場合はltです。詳細は、[テキストアンカー](../handbook/text-anchors.html#text-anchors)を参照してください。このパラメータは、TrueType以外のフォントでは無視されます。

  • spacing – 行間のピクセル数。

  • align"left", "center", または "right"。行の相対的な配置を決定します。xyに対する配置を指定するには、anchorパラメータを使用します。

  • direction – テキストの方向。 "rtl"(右から左)、"ltr"(左から右)、または"ttb"(上から下)にすることができます。libraqmが必要です。

  • features – テキストレイアウト中に使用するOpenTypeフォント機能のリスト。これは通常、デフォルトでは有効になっていないオプションのフォント機能(例:「dlig」または「ss01」)を有効にするために使用されますが、デフォルトのフォント機能を無効にするためにも使用できます(例:「-liga」で合字を無効化、「-kern」でカーニングを無効化)。サポートされているすべての機能を取得するには、[OpenTypeドキュメント](https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist)を参照してください。libraqmが必要です。

  • language – テキストの言語。言語によっては、異なるグリフ形状や合字が使用される場合があります。このパラメータは、テキストの言語をフォントに伝え、必要に応じて適切な置換を適用します(利用可能な場合)。[BCP 47言語コード](https://www.w3.org/International/articles/language-tags/)である必要があります。libraqmが必要です。

  • stroke_width – テキストの輪郭の幅。

  • embedded_color – フォントに埋め込まれたカラーグリフ(COLR、CBDT、SBIX)を使用するかどうか。

  • font_size

    fontが指定されていない場合、デフォルトフォントに使用するサイズ。

    キーワード引数。

    バージョン 10.1.0 で追加されました。

戻り値:

(left, top, right, bottom) 境界ボックス

PIL.ImageDraw.getdraw(im=None, hints=None)[source]

警告

このメソッドは実験的なものです。

PIL画像のための、WCKインターフェースに基づいた、より高度な2D描画インターフェースです。

パラメータ:
  • im – 描画する画像。

  • hints – オプションのヒントのリストです。

戻り値:

(描画コンテキスト、描画リソースファクトリ)のタプルを返します。

PIL.ImageDraw.floodfill(image: Image, xy: tuple[int, int], value: float | tuple[int, ...], border: float | tuple[int, ...] | None = None, thresh: float = 0) None[source]

警告

このメソッドは実験的なものです。

指定された色で境界のある領域を塗りつぶします。

パラメータ:
  • image – 対象の画像。

  • xy – シードの位置(2要素の座標タプル)。座標系を参照してください。

  • value – 塗りつぶしの色。

  • border – オプションの境界値。指定した場合、領域は境界色とは異なる色のピクセルで構成されます。指定しない場合、領域はシードピクセルと同じ色のピクセルで構成されます。

  • thresh – オプションの閾値。ピクセル値と「背景」との許容される最大差を指定し、置き換えるかどうかを決定します。不均一だが類似した色の領域を塗りつぶすのに役立ちます。