ImageDraw.
getfont
()
?獲取當(dāng)前默認(rèn)字體。
圖像字體。
ImageDraw.
arc
(xy, start, end, fill=None, width=0)
?在給定的邊界框內(nèi),在起始角和結(jié)束角之間繪制圓?。▓A輪廓的一部分)。
xy -- 定義邊界框的兩點(diǎn)。序列 [(x0, y0), (x1, y1)]
或 [x0, y0, x1, y1]
其中 x1 >= x0
和 y1 >= y0
.
start -- 起始角度,以度為單位。角度從3點(diǎn)鐘開(kāi)始測(cè)量,順時(shí)針增加。
end -- 結(jié)束角度,以度為單位。
fill -- 用于弧的顏色。
width -- 線條寬度,以像素為單位。
添加的版本:5.3.0
ImageDraw.
bitmap
(xy, bitmap, fill=None)
?使用非零部分的當(dāng)前填充顏色在給定位置繪制位圖(遮罩)。位圖應(yīng)該是有效的透明蒙版(模式“1”)或蒙版(模式“l(fā)”或“rgba”)。
這相當(dāng)于 image.paste(xy, color, bitmap)
.
要將像素?cái)?shù)據(jù)粘貼到圖像中,請(qǐng)使用 paste()
方法。
ImageDraw.
chord
(xy, start, end, fill=None, outline=None, width=1)
?等同于 arc()
,但用直線連接端點(diǎn)。
xy -- 定義邊界框的兩點(diǎn)。序列 [(x0, y0), (x1, y1)]
或 [x0, y0, x1, y1]
其中x1 >= x0
和 y1 >= y0
.
outline -- 用于輪廓的顏色。
fill -- 用于填充的顏色。
width -- 線條寬度,以像素為單位
?添加的版本:5.3.0
ImageDraw.
ellipse
(xy, fill=None, outline=None, width=1)
?在給定的邊界框內(nèi)繪制橢圓。
xy -- 定義邊界框的兩點(diǎn)。任何一個(gè)的序列 [(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)
?在xy
列表中的坐標(biāo)之間畫(huà)一條線。
xy -- 兩個(gè)元組的序列 [(x, y), (x, y), ...]
或類(lèi)似的數(shù)值 [x, y, x, y, ...]
.
fill -- 用于線條的顏色。
width -- 線條寬度,以像素為單位。
添加的版本:1.1.5
注意:此選項(xiàng)在1.1.6版之前已被破壞。
joint -- 一系列線之間的連接類(lèi)型。它可以 "curve"
,對(duì)于圓邊,或 None
版本添加::5.3.0
ImageDraw.
pieslice
(xy, start, end, fill=None, outline=None, width=1)
?與arc相同,但也在端點(diǎn)和邊界框中心之間繪制直線。
xy -- 定義邊界框的兩點(diǎn)。序列 [(x0, y0), (x1, y1)]
或 [x0, y0, x1, y1]
其中x1 >= x0
和 y1 >= y0
.
start -- 起始角度,以度為單位。角度從3點(diǎn)鐘開(kāi)始測(cè)量,順時(shí)針增加。
end -- 結(jié)束角度,以度為單位。
fill -- 用于填充的顏色。
outline -- 用于輪廓的顏色。
width -- 線條寬度,以像素為單位。
添加的版本:5.3.0
ImageDraw.
point
(xy, fill=None)
?在給定坐標(biāo)處繪制點(diǎn)(單個(gè)像素)。
xy -- 兩個(gè)元組的序列 [(x, y), (x, y), ...]
或類(lèi)似的數(shù)值 [x, y, x, y, ...]
.
fill -- 用于點(diǎn)的顏色。
ImageDraw.
polygon
(xy, fill=None, outline=None)
?繪制多邊形。
多邊形輪廓由給定坐標(biāo)之間的直線以及最后一個(gè)坐標(biāo)和第一個(gè)坐標(biāo)之間的直線組成。
xy -- 兩個(gè)元組的序列 [(x, y), (x, y), ...]
或類(lèi)似的數(shù)值 [x, y, x, y, ...]
.
outline -- 用于輪廓的顏色。
fill -- 用于填充的顏色。
ImageDraw.
regular_polygon
(bounding_circle, n_sides, rotation=0, fill=None, outline=None)
繪制一個(gè)內(nèi)接于bounding_circle
、帶有n_sides
和旋轉(zhuǎn)rotation
度數(shù)的正多邊形。
bounding_circle -- 邊界圓是由點(diǎn)和半徑定義的元組。(例如。 bounding_circle=(x, y, r)
或 ((x, y), r)
). 多邊形內(nèi)接在這個(gè)圓內(nèi)。
n_sides -- 邊數(shù)(例如。 n_sides=3
對(duì)于三角形, 6
六邊形)。
rotation -- 對(duì)多邊形應(yīng)用任意旋轉(zhuǎn)(例如。 rotation=90
,應(yīng)用90度旋轉(zhuǎn))。
fill -- 用于填充的顏色。
outline -- 用于輪廓的顏色。
ImageDraw.
rectangle
(xy, fill=None, outline=None, width=1)
?繪制矩形。
xy -- 定義邊界框的兩點(diǎn)。任何一個(gè)的序列 [(x0, y0), (x1, y1)]
或 [x0, y0, x1, y1]
. 第二個(gè)點(diǎn)正好在繪制的矩形之外。
outline -- 用于輪廓的顏色。
fill -- 用于填充的顏色。
width -- 線條寬度,以像素為單位。
添加的版本:5.3.0
ImageDraw.
shape
(shape, fill=None, outline=None)
?這種方法是實(shí)驗(yàn)性的。
畫(huà)一個(gè)形狀。
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)
在給定位置繪制字符串。
xy -- 文本的左上角。
text -- 要繪制的文本。如果它包含任何換行符,則文本將傳遞給 multiline_text()
.
fill -- 用于文本的顏色。
font -- 一個(gè)ImageFont
實(shí)例。
anchor –文本錨對(duì)齊方式。確定錨點(diǎn)與文本的相對(duì)位置。默認(rèn)對(duì)齊方式是左上角。有關(guān)有效值,請(qǐng)參閱文本錨點(diǎn)。對(duì)于非 TrueType 字體,將忽略此參數(shù)。
此參數(shù)存在于 Pillow 的早期版本中,但僅在 8.0.0 版中實(shí)現(xiàn)。
spacing -- 如果文本傳遞給 multiline_text()
,行之間的像素?cái)?shù)。
align -- 如果文本傳遞給 multiline_text()
, "left"
, "center"
或 "right"
.
direction -- 文本的方向。它可以 "rtl"
(從右到左), "ltr"
(從左到右)或 "ttb"
(從上到下)。需要libraqm庫(kù)支持。
添加的版本:4.2.0
features -- 文本布局期間使用的OpenType字體功能的列表。例如,這通常用于打開(kāi)默認(rèn)情況下未啟用的可選字體功能 "dlig"
或 "ss01"
,但也可以用于關(guān)閉默認(rèn)字體功能,例如 "-liga"
禁用連字或 "-kern"
禁用字距調(diào)整。要獲取所有支持的功能,請(qǐng)參閱 OpenType
docs . 需要libraqm庫(kù)支持。
添加的版本:4.2.0
language -- 文本的語(yǔ)言。不同的語(yǔ)言可以使用不同的字形或連字。此參數(shù)告訴文本使用哪種語(yǔ)言的字體,并根據(jù)需要應(yīng)用正確的替換(如果可用)。應(yīng)該是一個(gè) BCP 47 語(yǔ)言代碼 . 需要libraqm庫(kù)支持。
添加的版本:6.0.0
stroke_width -- 文本筆劃的寬度。
添加的版本:6.2.0
stroke_fill -- 用于文本筆劃的顏色。如果未給出,將默認(rèn)為 fill
參數(shù)。
添加的版本:6.2.0
ImageDraw.
multiline_text
(xy, text, fill=None, font=None, anchor=None, spacing=4, align='left', direction=None, features=None, language=None)
?在給定位置繪制字符串。xy -- 文本的左上角。
text -- 要繪制的文本。
fill -- 用于文本的顏色。
font -- 一個(gè) ImageFont
實(shí)例。
spacing -- 行與行之間的像素?cái)?shù)。
align -- "left"
, "center"
或 "right"
.
direction -- 文本的方向。它可以 "rtl"
(從右到左), "ltr"
(從左到右)或 "ttb"
(從上到下)。需要libraqm庫(kù)支持。
添加的版本:4.2.0
features -- 文本布局期間使用的OpenType字體功能的列表。例如,這通常用于打開(kāi)默認(rèn)情況下未啟用的可選字體功能 "dlig"
或 "ss01"
,但也可以用于關(guān)閉默認(rèn)字體功能,例如 "-liga"
禁用連字或 "-kern"
禁用字距調(diào)整。要獲取所有支持的功能,請(qǐng)參閱 OpenType
docs 。 需要libraqm庫(kù)支持。
添加的版本:4.2.0
language -- 文本的語(yǔ)言。不同的語(yǔ)言可以使用不同的字形或連字。此參數(shù)告訴文本使用哪種語(yǔ)言的字體,并根據(jù)需要應(yīng)用正確的替換(如果可用)。應(yīng)該是一個(gè) BCP 47 語(yǔ)言代碼。 需要libraqm庫(kù)支持。
添加的版本:6.0.0
ImageDraw.
textsize
(text, font=None, spacing=4, direction=None, features=None, language=None, stroke_width=0)
返回給定字符串的大?。ㄏ袼兀?。用于?textlength()
?以 1/64 像素精度測(cè)量后續(xù)文本的偏移量。使用?textbbox()
?獲得基于錨的確切邊界框。
由于歷史原因,此函數(shù)從上升行而不是頂部測(cè)量文本高度,請(qǐng)參閱文本錨點(diǎn)。如果您希望從頂部測(cè)量文本高度,建議使用??
anchor='lt'
?代替?textbbox()
?。
text -- 要測(cè)量的文本。如果它包含任何換行符,則文本將傳遞給 multiline_textsize()
.
font -- 一個(gè) ImageFont
實(shí)例。
spacing -- 如果文本傳遞給 multiline_textsize()
,行之間的像素?cái)?shù)。
direction -- 文本的方向。它可以 "rtl"
(從右到左), "ltr"
(從左到右)或 "ttb"
(從上到下)。需要libraqm庫(kù)支持。
添加的版本:4.2.0
features -- 文本布局期間使用的OpenType字體功能的列表。例如,這通常用于打開(kāi)默認(rèn)情況下未啟用的可選字體功能 "dlig"
或 "ss01"
,但也可以用于關(guān)閉默認(rèn)字體功能,例如 "-liga"
禁用連字或 "-kern"
禁用字距調(diào)整。要獲取所有支持的功能,請(qǐng)參閱 OpenType
docs . 需要libraqm庫(kù)支持。
添加的版本:4.2.0
language -- 文本的語(yǔ)言。不同的語(yǔ)言可以使用不同的字形或連字。此參數(shù)告訴文本使用哪種語(yǔ)言的字體,并根據(jù)需要應(yīng)用正確的替換(如果可用)。應(yīng)該是一個(gè) BCP 47 語(yǔ)言代碼。 需要libraqm庫(kù)支持。
添加的版本:6.0.0
stroke_width -- 文本筆劃的寬度
添加的版本:6.2.0
ImageDraw.
multiline_textsize
(text, font=None, spacing=4, direction=None, features=None, language=None, stroke_width=0)
返回給定字符串的大?。ㄏ袼兀S糜?span style="background-color: rgb(255, 255, 255);">?textlength()
?以 1/64 像素精度測(cè)量后續(xù)文本的偏移量。使用?textbbox()
?獲得基于錨的確切邊界框。
由于歷史原因,此函數(shù)將文本高度測(cè)量為頂部上升線和底部下降線之間的距離,而不是文本的頂部和底部,請(qǐng)參閱文本錨點(diǎn)。如果您想測(cè)量從文本頂部到底部的文本高度,建議使用?
multiline_textbbox()
?。
text -- 要測(cè)量的文本。
font -- 一個(gè) ImageFont
實(shí)例。
spacing -- 行與行之間的像素?cái)?shù)。
direction -- 文本的方向。它可以 "rtl"
(從右到左), "ltr"
(從左到右)或 "ttb"
(從上到下)。需要libraqm庫(kù)支持。
添加的版本:4.2.0
features -- 文本布局期間使用的OpenType字體功能的列表。例如,這通常用于打開(kāi)默認(rèn)情況下未啟用的可選字體功能 "dlig"
或 "ss01"
,但也可以用于關(guān)閉默認(rèn)字體功能,例如 "-liga"
禁用連字或 "-kern"
禁用字距調(diào)整。要獲取所有支持的功能,請(qǐng)參閱 OpenType
docs . 需要libraqm庫(kù)支持。
添加的版本:4.2.0
language -- 文本的語(yǔ)言。不同的語(yǔ)言可以使用不同的字形或連字。此參數(shù)告訴文本使用哪種語(yǔ)言的字體,并根據(jù)需要應(yīng)用正確的替換(如果可用)。應(yīng)該是一個(gè) BCP 47 語(yǔ)言代碼。 需要libraqm庫(kù)支持。
添加的版本:6.2.0
stroke_width -- 文本筆劃的寬度。
添加的版本:6.2.0
ImageDraw.textlength(text, font=None, direction=None, features=None, language=None, embedded_color=False)
當(dāng)以提供方向、特征和語(yǔ)言的字體呈現(xiàn)時(shí),返回給定文本的長(zhǎng)度(以像素為單位,精度為 1/64)。
這是以下文本應(yīng)偏移的量。文本邊界框可能會(huì)超出某些字體的長(zhǎng)度,例如使用斜體或加粗時(shí)。
結(jié)果作為浮點(diǎn)數(shù)返回;如果使用基本布局,則為整數(shù)。
請(qǐng)注意,由于字距調(diào)整,兩個(gè)長(zhǎng)度的總和可能不等于連接字符串的長(zhǎng)度。如果您需要調(diào)整字距,請(qǐng)包含以下字符并減去其長(zhǎng)度。
例如,代替
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
或禁用字距調(diào)整(需要 libraqm庫(kù)支持)
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 – 要測(cè)量的文本??赡懿话魏螕Q行符。
字體- 一個(gè)?ImageFont
?實(shí)例。
方向- 文本的方向。它可以是"rtl"
(從右到左)、"ltr"
(從左到右)或"ttb"
(從上到下)。需要 libraqm庫(kù)支持。
features – 要在文本布局期間使用的 OpenType 字體功能列表。這通常用于打開(kāi)默認(rèn)情況下未啟用的可選字體功能,例如"dlig"
或"ss01"
,但也可用于關(guān)閉默認(rèn)字體功能,例如"-liga"
禁用連字或"-kern"
禁用字距調(diào)整。要獲取所有支持的功能,請(qǐng)參閱OpenType 文檔。需要 libraqm庫(kù)支持。
language- 文本的語(yǔ)言。不同的語(yǔ)言可能使用不同的字形形狀或連字。此參數(shù)告訴字體文本使用的語(yǔ)言,并根據(jù)需要應(yīng)用正確的替換(如果可用)。它應(yīng)該是BCP 47 語(yǔ)言代碼。需要 libraqm庫(kù)支持。
Embedded_color – 是否使用字體嵌入顏色字形(COLR、CBDT、SBIX)。
ImageDraw.textbbox(xy, text, font=None, anchor=None, spacing=4, align='left', direction=None, features=None, language=None, stroke_width=0, embedded_color=False)
當(dāng)以具有提供的方向、特征和語(yǔ)言的字體呈現(xiàn)時(shí),返回給定文本相對(duì)于給定錨點(diǎn)的邊界框(以像素為單位)。僅支持 TrueType 字體。
用于textlength()
以 1/64 像素精度獲取后續(xù)文本的偏移量。邊界框包括一些字體的額外邊距,例如斜體或加粗。
8.0.0 版中的新功能。
xy – 文本的錨點(diǎn)坐標(biāo)。
text – 要測(cè)量的文本。如果它包含任何換行符,則文本將傳遞給 multiline_textbbox()
。
font- 一個(gè)FreeTypeFont
實(shí)例。
anchor – 文本錨對(duì)齊方式。確定錨點(diǎn)與文本的相對(duì)位置。默認(rèn)對(duì)齊方式是左上角。有關(guān)有效值,請(qǐng)參閱文本錨點(diǎn)。對(duì)于非 TrueType 字體,將忽略此參數(shù)。
spacing– 如果文本傳遞到multiline_textbbox()
,則為 行之間的像素?cái)?shù)。
align-如果文本被傳遞到 multiline_textbbox()
, "left"
,"center"
或"right"
。確定線條的相對(duì)對(duì)齊方式。使用anchor
參數(shù)指定對(duì)齊到xy
。
direction- 文本的方向。它可以是"rtl"
(從右到左)、"ltr"
(從左到右)或"ttb"
(從上到下)。需要 libraqm庫(kù)支持。
features – 要在文本布局期間使用的 OpenType 字體功能列表。這通常用于打開(kāi)默認(rèn)情況下未啟用的可選字體功能,例如"dlig"
或"ss01"
,但也可用于關(guān)閉默認(rèn)字體功能,例如"-liga"
禁用連字或"-kern"
禁用字距調(diào)整。要獲取所有支持的功能,請(qǐng)參閱OpenType 文檔。需要 libraqm庫(kù)支持。
language- 文本的語(yǔ)言。不同的語(yǔ)言可能使用不同的字形形狀或連字。此參數(shù)告訴字體文本使用的語(yǔ)言,并根據(jù)需要應(yīng)用正確的替換(如果可用)。它應(yīng)該是BCP 47 語(yǔ)言代碼。需要 libraqm庫(kù)支持。
stroke_width – 文本筆觸的寬度。
Embedded_color – 是否使用字體嵌入顏色字形(COLR、CBDT、SBIX)。
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)
當(dāng)以具有提供的方向、特征和語(yǔ)言的字體呈現(xiàn)時(shí),返回給定文本相對(duì)于給定錨點(diǎn)的邊界框(以像素為單位)。僅支持 TrueType 字體。
用于?textlength()
?以 1/64 像素精度獲取后續(xù)文本的偏移量。邊界框包括一些字體的額外邊距,例如斜體或加粗。
8.0.0 版中的新功能。
xy – 文本的錨點(diǎn)坐標(biāo)。
text – 要測(cè)量的文本。
字體- 一個(gè)FreeTypeFont
實(shí)例。
anchor – 文本錨對(duì)齊方式。確定錨點(diǎn)與文本的相對(duì)位置。默認(rèn)對(duì)齊方式是左上角。有關(guān)有效值,請(qǐng)參閱文本錨點(diǎn)。對(duì)于非 TrueType 字體,將忽略此參數(shù)。
spacing- 行之間的像素?cái)?shù)。
align– "left"
,"center"
或"right"
。確定線條的相對(duì)對(duì)齊方式。使用anchor
參數(shù)指定對(duì)齊到xy
。
direction- 文本的方向。它可以是"rtl"
(從右到左)、"ltr"
(從左到右)或"ttb"
(從上到下)。需要 libraqm庫(kù)支持。
features – 要在文本布局期間使用的 OpenType 字體功能列表。這通常用于打開(kāi)默認(rèn)情況下未啟用的可選字體功能,例如"dlig"
或"ss01"
,但也可用于關(guān)閉默認(rèn)字體功能,例如"-liga"
禁用連字或"-kern"
禁用字距調(diào)整。要獲取所有支持的功能,請(qǐng)參閱OpenType 文檔。需要 libraqm庫(kù)支持。
language- 文本的語(yǔ)言。不同的語(yǔ)言可能使用不同的字形形狀或連字。此參數(shù)告訴字體文本使用的語(yǔ)言,并根據(jù)需要應(yīng)用正確的替換(如果可用)。它應(yīng)該是BCP 47 語(yǔ)言代碼。需要 libraqm庫(kù)支持。
stroke_width – 文本筆觸的寬度。
Embedded_color – 是否使用字體嵌入顏色字形(COLR、CBDT、SBIX)。
PIL.ImageDraw.
getdraw
(im=None, hints=None)
?這種方法是實(shí)驗(yàn)性的。
基于WCK接口的PIL圖像更高級(jí)的二維繪圖接口。
im -- 要繪制的圖像。
hints -- 提示的可選列表。
(繪圖上下文、繪圖資源工廠)元組。
PIL.ImageDraw.
floodfill
(image, xy, value, border=None, thresh=0)
?這種方法是實(shí)驗(yàn)性的。
用給定顏色填充有界區(qū)域。
image -- 目標(biāo)圖像。
xy -- 種子位置(2項(xiàng)坐標(biāo)元組)。
value -- 填充顏色。
border -- 可選邊框值。如果給定,該區(qū)域由顏色與邊框顏色不同的像素組成。如果沒(méi)有給出,該區(qū)域由與種子像素顏色相同的像素組成。
thresh -- 可選閾值,指定像素值與“背景”的最大允許差異,以便替換。用于填充顏色不均勻但相似的區(qū)域。
更多建議: