Pillow ImageFont方法

2021-07-14 14:01 更新
?classPIL.ImageFont.ImageFont?

PIL字體包裝器

?getmask(textmode=''*args**kwargs)?

為文本創(chuàng)建位圖。

如果字體使用抗鋸齒,則位圖應(yīng)具有模式 L 并使用最大值255。否則,它應(yīng)該有模式 1 .

參數(shù)
  • text -- 要渲染的文本。

  • mode -- 某些圖形驅(qū)動(dòng)程序使用它來(lái)指示驅(qū)動(dòng)程序喜歡哪種模式;如果為空,渲染器可能返回任一模式。請(qǐng)注意,模式始終是字符串,以簡(jiǎn)化C級(jí)實(shí)現(xiàn)。

添加的版本:1.1.5
返回

PIL.Image.core接口模塊定義的內(nèi)部 PIL 存儲(chǔ)內(nèi)存實(shí)例 。

?getsize(text*args**kwargs)?

返回給定文本的寬度和高度(以像素為單位)。

參數(shù)

text -- 要測(cè)量的文本。

返回

(寬度,高度)

classPIL.ImageFont.FreeTypeFont(font=Nonesize=10index=0encoding=''layout_engine=None)

FreeType字體包裝器(需要“imagingft”服務(wù))

?font_variant(font=Nonesize=Noneindex=Noneencoding=Nonelayout_engine=None)?

創(chuàng)建此FreeTypeFont對(duì)象的副本,使用任何指定的參數(shù)覆蓋設(shè)置。

參數(shù)與用于初始化此對(duì)象的參數(shù)相同。

返回

FreeTypeFont對(duì)象。

?get_variation_axes()?
返回

變體字體中的軸列表。

引發(fā)

?OSError ?-- 如果字體不是變體字體。

get_variation_names()
返回

變體字體中命名樣式的列表。

引發(fā)

?OSError ?-- 如果字體不是變體字體。

getbbox ( text , mode = '' , direction = None , features = None , language = None , stroke_width = 0 , anchor = None )

當(dāng)以具有提供的方向、特征和語(yǔ)言的字體呈現(xiàn)時(shí),返回給定文本相對(duì)于給定錨點(diǎn)的邊界框(以像素為單位)。

用于getlength()以 1/64 像素精度獲取后續(xù)文本的偏移量。邊界框包括一些字體的額外邊距,例如斜體或加粗。

8.0.0 版中的新功能。

參數(shù)
  • text – 要呈現(xiàn)的文本。

  • mode– 被一些圖形驅(qū)動(dòng)程序用來(lái)指示驅(qū)動(dòng)程序喜歡哪種模式;如果為空,渲染器可能會(huì)返回任一模式。請(qǐng)注意,模式始終是一個(gè)字符串,以簡(jiǎn)化 C 級(jí)實(shí)現(xiàn)。

  • direction- 文本的方向。它可以是“rtl”(從右到左)、“l(fā)tr”(從左到右)或“ttb”(從上到下)。需要 libraqm庫(kù)支持。

  • features – 要在文本布局期間使用的 OpenType 字體功能列表。這通常用于打開默認(rèn)情況下未啟用的可選字體功能,例如“dlig”或“ss01”,但也可用于關(guān)閉默認(rèn)字體功能,例如“-liga”以禁用連字或“- kern' 禁用字距調(diào)整。 需要 libraqm庫(kù)的支持。

  • language- 文本的語(yǔ)言。不同的語(yǔ)言可能使用不同的字形形狀或連字。此參數(shù)告訴字體文本使用的語(yǔ)言,并根據(jù)需要應(yīng)用正確的替換(如果可用)。它應(yīng)該是BCP 47 語(yǔ)言代碼 需要 libraqm。

  • stroke_width – 文本筆觸的寬度。

  • anchor – 文本錨對(duì)齊方式。確定錨點(diǎn)與文本的相對(duì)位置。默認(rèn)對(duì)齊方式是左上角。有關(guān)有效值,請(qǐng)參閱文本錨點(diǎn)。

返回

(left, top, right, bottom) 邊界框

getlength ( text , mode = '' , direction = None , features = None , language = None )

當(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 = font.getlength("Hello")
world = font.getlength("World")
hello_world = hello + world  # not adjusted for kerning
assert hello_world == font.getlength("HelloWorld")  # may fail

hello = font.getlength("HelloW") - font.getlength("W")  # adjusted for kerning
world = font.getlength("World")
hello_world = hello + world  # adjusted for kerning
assert hello_world == font.getlength("HelloWorld")  # 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"])

8.0.0 版中的新功能。

參數(shù)
  • text – 要測(cè)量的文本。

  • mode– 被一些圖形驅(qū)動(dòng)程序用來(lái)指示驅(qū)動(dòng)程序喜歡哪種模式;如果為空,渲染器可能會(huì)返回任一模式。請(qǐng)注意,模式始終是一個(gè)字符串,以簡(jiǎn)化 C 級(jí)實(shí)現(xiàn)。

  • direction- 文本的方向。它可以是“rtl”(從右到左)、“l(fā)tr”(從左到右)或“ttb”(從上到下)。需要 libraqm。

  • features – 要在文本布局期間使用的 OpenType 字體功能列表。這通常用于打開默認(rèn)情況下未啟用的可選字體功能,例如“dlig”或“ss01”,但也可用于關(guān)閉默認(rèn)字體功能,例如“-liga”以禁用連字或“- kern' 禁用字距調(diào)整。需要 libraqm庫(kù)支持。

  • language -文本的語(yǔ)言。不同的語(yǔ)言可能使用不同的字形形狀或連字。此參數(shù)告訴字體文本使用的語(yǔ)言,并根據(jù)需要應(yīng)用正確的替換(如果可用)。它應(yīng)該是BCP 47 語(yǔ)言代碼 需要 libraqm庫(kù)支持。

返回

水平文本寬度,垂直文本高度。

getmask(textmode=''direction=Nonefeatures=Nonelanguage=Nonestroke_width=0)

為文本創(chuàng)建位圖。

如果字體使用抗鋸齒,則位圖應(yīng)具有模式 L 并使用最大值255。否則,它應(yīng)該有模式 1 .

參數(shù)
  • text -- 要渲染的文本。

  • mode -- 某些圖形驅(qū)動(dòng)程序使用它來(lái)指示驅(qū)動(dòng)程序喜歡哪種模式;如果為空,渲染器可能返回任一模式。請(qǐng)注意,模式始終是字符串,以簡(jiǎn)化C級(jí)實(shí)現(xiàn)。

添加的版本:1.1.5
  • direction -- 文本的方向。它可以是“rtl”(從右到左)、“l(fā)tr”(從左到右)或“ttb”(從上到下)。需要libraqm庫(kù)支持。

添加的版本:4.2.0
  • features -- 文本布局期間要使用的OpenType字體功能列表。這通常用于打開默認(rèn)情況下未啟用的可選字體功能,例如“dlig”或“ss01”,但也可用于關(guān)閉默認(rèn)字體功能,例如“-liga”禁用連字,或“-kern”禁用緊排。需要 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

  • anchor –文本錨對(duì)齊方式。確定錨點(diǎn)與文本的相對(duì)位置。默認(rèn)對(duì)齊方式是左上角。有關(guān)有效值,請(qǐng)參閱文本錨點(diǎn)。
    8.0.0 版中的新功能。
  • ink –用于在 RGBA 模式下渲染的前景墨跡。

    8.0.0 版中的新功能。

返回

內(nèi)部PIL存儲(chǔ)內(nèi)存實(shí)例由 PIL.Image.core 接口模塊。

getmask2(textmode=''fill=<built-in function fill>direction=Nonefeatures=Nonelanguage=Nonestroke_width=0*args**kwargs)

為文本創(chuàng)建位圖。

如果字體使用抗鋸齒,則位圖應(yīng)具有模式 L 并使用最大值255。否則,它應(yīng)該有模式 1 .

參數(shù)
  • text -- 要渲染的文本。

  • mode -- 某些圖形驅(qū)動(dòng)程序使用它來(lái)指示驅(qū)動(dòng)程序喜歡哪種模式;如果為空,渲染器可能返回任一模式。請(qǐng)注意,模式始終是字符串,以簡(jiǎn)化C級(jí)實(shí)現(xiàn)。

添加的版本:1.1.5
  • direction -- 文本的方向。它可以是“rtl”(從右到左)、“l(fā)tr”(從左到右)或“ttb”(從上到下)。需要libraqm庫(kù)支持。

添加的版本:4.2.0
  • features -- 文本布局期間要使用的OpenType字體功能列表。這通常用于打開默認(rèn)情況下未啟用的可選字體功能,例如“dlig”或“ss01”,但也可用于關(guān)閉默認(rèn)字體功能,例如“-liga”禁用連字,或“-kern”禁用緊排。需要 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

  • anchor –文本錨對(duì)齊方式。確定錨點(diǎn)與文本的相對(duì)位置。默認(rèn)對(duì)齊方式是左上角。有關(guān)有效值,請(qǐng)參閱文本錨點(diǎn)。

8.0.0 版中的新功能。

  • ink –用于在 RGBA 模式下渲染的前景墨跡。

8.0.0 版中的新功能。

返回

內(nèi)部PIL存儲(chǔ)內(nèi)存實(shí)例由 PIL.Image.core 接口模塊。以及文本偏移量,起始坐標(biāo)和第一個(gè)標(biāo)記之間的間隙

?getmetrics()?
返回

字體上升(從基線到最高輪廓點(diǎn)的距離)和下降(從基線到最低輪廓點(diǎn)的距離,負(fù)值)的元組

?getname()?
返回

字體系列的元組(例如Helvetica)和字體樣式(例如粗體)

getoffset(text)

返回給定文本的偏移量。這是起始坐標(biāo)和第一個(gè)標(biāo)記之間的間隙。請(qǐng)注意,此間隙包含在 getsize() 的結(jié)果中。

參數(shù)

text -- 要測(cè)量的文本。

返回

x和y偏移量的元組

?getsize(textdirection=Nonefeatures=Nonelanguage=Nonestroke_width=0)?

如果以提供方向、功能和語(yǔ)言的字體呈現(xiàn),則返回給定文本的寬度和高度(以像素為單位)。用于?getlength()?以 1/64 像素精度測(cè)量后續(xù)文本的偏移量。使用?getbbox()?獲得基于錨的確切邊界框。

由于歷史原因,此函數(shù)從上升行而不是頂部測(cè)量文本高度,請(qǐng)參閱文本錨點(diǎn)。如果您希望從頂部測(cè)量文本高度,建議使用?anchor='lt'?代替?getbbox()?的底部值。

參數(shù)
  • text -- 要測(cè)量的文本。

  • direction -- 文本的方向。它可以是“rtl”(從右到左)、“l(fā)tr”(從左到右)或“ttb”(從上到下)。需要libraqm庫(kù)的支持。

添加的版本:4.2.0
  • features -- 文本布局期間要使用的OpenType字體功能列表。這通常用于打開默認(rèn)情況下未啟用的可選字體功能,例如“dlig”或“ss01”,但也可用于關(guān)閉默認(rèn)字體功能,例如“-liga”禁用連字,或“-kern”禁用緊排。要獲取所有支持的功能,需要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

返回

(寬度,高度)

getsize_multiline(textdirection=Nonespacing=4features=Nonelanguage=Nonestroke_width=0)

返回給定文本的寬度和高度(以像素為單位),如果以提供的方向、功能和語(yǔ)言的字體呈現(xiàn),同時(shí)考慮換行符。

參數(shù)
  • text -- 要測(cè)量的文本。

  • direction -- 文本的方向。它可以是“rtl”(從右到左)、“l(fā)tr”(從左到右)或“ttb”(從上到下)。需要libraqm庫(kù)的支持。

  • spacing -- 線之間的垂直間距,默認(rèn)為4像素。

  • features -- 文本布局期間要使用的OpenType字體功能列表。這通常用于打開默認(rèn)情況下未啟用的可選字體功能,例如“dlig”或“ss01”,但也可用于關(guān)閉默認(rèn)字體功能,例如“-liga”禁用連字,或“-kern”禁用緊排。需要libraqm庫(kù)的支持。

  • language -- 文本的語(yǔ)言。不同的語(yǔ)言可以使用不同的字形或連字。此參數(shù)告訴文本使用哪種語(yǔ)言的字體,并根據(jù)需要應(yīng)用正確的替換(如果可用)。應(yīng)該是一個(gè) BCP 47 語(yǔ)言代碼。需要libraqm的支持。

添加的版本:6.0.0
  • stroke_width -- 文本筆劃的寬度。

添加的版本:6.2.0
返回

(寬度,高度)

?set_variation_by_axes(axes)?
參數(shù)

axes -- 每個(gè)軸的值列表。

引發(fā)

?OSError ?-- 如果字體不是變體字體。

?set_variation_by_name(name)?
參數(shù)

name -- 樣式的名稱。

引發(fā)

?OSError ?-- 如果字體不是變體字體。

?classPIL.ImageFont.TransposedFont(fontorientation=None)?

用于寫入旋轉(zhuǎn)或鏡像文本的包裝器


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)