Pillow ImageFont方法
-
class
PIL.ImageFont.
ImageFont
PIL字体包装器
-
getmask
(text, mode='', *args, **kwargs) 为文本创建位图。
如果字体使用抗锯齿,则位图应具有模式
L
并使用最大值255。否则,它应该有模式1
.- 参数
text -- 要渲染的文本。
mode -- 某些图形驱动程序使用它来指示驱动程序喜欢哪种模式;如果为空,渲染器可能返回任一模式。请注意,模式始终是字符串,以简化C级实现。
添加的版本:1.1.5
- 返回
由
PIL.Image.core
接口模块定义的内部 PIL 存储内存实例 。
-
getsize
(text, *args, **kwargs) 返回给定文本的宽度和高度(以像素为单位)。
- 参数
text -- 要测量的文本。
- 返回
(宽度,高度)
-
class
PIL.ImageFont.
FreeTypeFont
(font=None, size=10, index=0, encoding='', layout_engine=None)FreeType字体包装器(需要“imagingft”服务)
-
font_variant
(font=None, size=None, index=None, encoding=None, layout_engine=None) 创建此FreeTypeFont对象的副本,使用任何指定的参数覆盖设置。
参数与用于初始化此对象的参数相同。
- 返回
FreeTypeFont对象。
-
get_variation_axes
() - 返回
变体字体中的轴列表。
- 引发
OSError
-- 如果字体不是变体字体。
get_variation_names
()- 返回
变体字体中命名样式的列表。
- 引发
OSError
-- 如果字体不是变体字体。
getbbox ( text , mode = '' , direction = None , features = None , language = None , stroke_width = 0 , anchor = None )
当以具有提供的方向、特征和语言的字体呈现时,返回给定文本相对于给定锚点的边界框(以像素为单位)。
用于
getlength()
以 1/64 像素精度获取后续文本的偏移量。边界框包括一些字体的额外边距,例如斜体或加粗。8.0.0 版中的新功能。
- 参数
text – 要呈现的文本。
mode– 被一些图形驱动程序用来指示驱动程序喜欢哪种模式;如果为空,渲染器可能会返回任一模式。请注意,模式始终是一个字符串,以简化 C 级实现。
direction- 文本的方向。它可以是“rtl”(从右到左)、“ltr”(从左到右)或“ttb”(从上到下)。需要 libraqm库支持。
features – 要在文本布局期间使用的 OpenType 字体功能列表。这通常用于打开默认情况下未启用的可选字体功能,例如“dlig”或“ss01”,但也可用于关闭默认字体功能,例如“-liga”以禁用连字或“- kern' 禁用字距调整。 需要 libraqm库的支持。
language- 文本的语言。不同的语言可能使用不同的字形形状或连字。此参数告诉字体文本使用的语言,并根据需要应用正确的替换(如果可用)。它应该是BCP 47 语言代码 需要 libraqm。
stroke_width – 文本笔触的宽度。
anchor – 文本锚对齐方式。确定锚点与文本的相对位置。默认对齐方式是左上角。有关有效值,请参阅文本锚点。
- 返回
(left, top, right, bottom)
边界框
getlength ( text , mode = '' , direction = None , features = None , language = None )
当以提供方向、特征和语言的字体呈现时,返回给定文本的长度(以像素为单位,精度为 1/64)。
这是以下文本应偏移的量。文本边界框可能会超出某些字体的长度,例如使用斜体或加粗时。
结果作为浮点数返回;如果使用基本布局,则为整数。
请注意,由于字距调整,两个长度的总和可能不等于连接字符串的长度。如果您需要调整字距,请包含以下字符并减去其长度。
例如,代替
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
或禁用字距调整(需要 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"])
8.0.0 版中的新功能。
- 参数
text – 要测量的文本。
mode– 被一些图形驱动程序用来指示驱动程序喜欢哪种模式;如果为空,渲染器可能会返回任一模式。请注意,模式始终是一个字符串,以简化 C 级实现。
direction- 文本的方向。它可以是“rtl”(从右到左)、“ltr”(从左到右)或“ttb”(从上到下)。需要 libraqm。
features – 要在文本布局期间使用的 OpenType 字体功能列表。这通常用于打开默认情况下未启用的可选字体功能,例如“dlig”或“ss01”,但也可用于关闭默认字体功能,例如“-liga”以禁用连字或“- kern' 禁用字距调整。需要 libraqm库支持。
language -文本的语言。不同的语言可能使用不同的字形形状或连字。此参数告诉字体文本使用的语言,并根据需要应用正确的替换(如果可用)。它应该是BCP 47 语言代码 需要 libraqm库支持。
- 返回
水平文本宽度,垂直文本高度。
为文本创建位图。
如果字体使用抗锯齿,则位图应具有模式
L
并使用最大值255。否则,它应该有模式1
.- 参数
text -- 要渲染的文本。
mode -- 某些图形驱动程序使用它来指示驱动程序喜欢哪种模式;如果为空,渲染器可能返回任一模式。请注意,模式始终是字符串,以简化C级实现。
添加的版本:1.1.5
direction -- 文本的方向。它可以是“rtl”(从右到左)、“ltr”(从左到右)或“ttb”(从上到下)。需要libraqm库支持。
添加的版本:4.2.0
features -- 文本布局期间要使用的OpenType字体功能列表。这通常用于打开默认情况下未启用的可选字体功能,例如“dlig”或“ss01”,但也可用于关闭默认字体功能,例如“-liga”禁用连字,或“-kern”禁用紧排。需要 libraqm库支持。
添加的版本:4.2.0
language -- 文本的语言。不同的语言可以使用不同的字形或连字。此参数告诉文本使用哪种语言的字体,并根据需要应用正确的替换(如果可用)。应该是一个 BCP 47 语言代码。需要libraqm库支持。
添加的版本:6.0.0
stroke_width -- 文本笔划的宽度。
添加的版本:6.2.0
- anchor –文本锚对齐方式。确定锚点与文本的相对位置。默认对齐方式是左上角。有关有效值,请参阅文本锚点。
8.0.0 版中的新功能。
- ink –用于在 RGBA 模式下渲染的前景墨迹。
8.0.0 版中的新功能。
- anchor –文本锚对齐方式。确定锚点与文本的相对位置。默认对齐方式是左上角。有关有效值,请参阅文本锚点。
- 返回
内部PIL存储内存实例由
PIL.Image.core
接口模块。
getmask
(text, mode='', direction=None, features=None, language=None, stroke_width=0)getmask2
(text, mode='', fill=<built-in function fill>, direction=None, features=None, language=None, stroke_width=0, *args, **kwargs)为文本创建位图。
如果字体使用抗锯齿,则位图应具有模式
L
并使用最大值255。否则,它应该有模式1
.- 参数
text -- 要渲染的文本。
mode -- 某些图形驱动程序使用它来指示驱动程序喜欢哪种模式;如果为空,渲染器可能返回任一模式。请注意,模式始终是字符串,以简化C级实现。
添加的版本:1.1.5
direction -- 文本的方向。它可以是“rtl”(从右到左)、“ltr”(从左到右)或“ttb”(从上到下)。需要libraqm库支持。
添加的版本:4.2.0
features -- 文本布局期间要使用的OpenType字体功能列表。这通常用于打开默认情况下未启用的可选字体功能,例如“dlig”或“ss01”,但也可用于关闭默认字体功能,例如“-liga”禁用连字,或“-kern”禁用紧排。需要 libraqm 库支持。
添加的版本:4.2.0
language -- 文本的语言。不同的语言可以使用不同的字形或连字。此参数告诉文本使用哪种语言的字体,并根据需要应用正确的替换(如果可用)。应该是一个 BCP 47语言代码。需要libraqm库支持。
添加的版本:6.0.0
stroke_width -- 文本笔划的宽度。
添加的版本:6.2.0
anchor –文本锚对齐方式。确定锚点与文本的相对位置。默认对齐方式是左上角。有关有效值,请参阅文本锚点。
8.0.0 版中的新功能。
ink –用于在 RGBA 模式下渲染的前景墨迹。
8.0.0 版中的新功能。
返回
内部PIL存储内存实例由 PIL.Image.core 接口模块。以及文本偏移量,起始坐标和第一个标记之间的间隙
-
getmetrics
() - 返回
字体上升(从基线到最高轮廓点的距离)和下降(从基线到最低轮廓点的距离,负值)的元组
-
getname
() - 返回
字体系列的元组(例如Helvetica)和字体样式(例如粗体)
getoffset
(text)返回给定文本的偏移量。这是起始坐标和第一个标记之间的间隙。请注意,此间隙包含在
getsize()
的结果中。- 参数
text -- 要测量的文本。
- 返回
x和y偏移量的元组
-
getsize
(text, direction=None, features=None, language=None, stroke_width=0) 如果以提供方向、功能和语言的字体呈现,则返回给定文本的宽度和高度(以像素为单位)。用于
getlength()
以 1/64 像素精度测量后续文本的偏移量。使用getbbox()
获得基于锚的确切边界框。由于历史原因,此函数从上升行而不是顶部测量文本高度,请参阅文本锚点。如果您希望从顶部测量文本高度,建议使用
anchor='lt'
代替getbbox()
的底部值。- 参数
text -- 要测量的文本。
direction -- 文本的方向。它可以是“rtl”(从右到左)、“ltr”(从左到右)或“ttb”(从上到下)。需要libraqm库的支持。
添加的版本:4.2.0
features -- 文本布局期间要使用的OpenType字体功能列表。这通常用于打开默认情况下未启用的可选字体功能,例如“dlig”或“ss01”,但也可用于关闭默认字体功能,例如“-liga”禁用连字,或“-kern”禁用紧排。要获取所有支持的功能,需要libraqm的库支持。
添加的版本:4.2.0
language -- 文本的语言。不同的语言可以使用不同的字形或连字。此参数告诉文本使用哪种语言的字体,并根据需要应用正确的替换(如果可用)。应该是一个 BCP 47 语言代码 。需要libraqm库的支持。
添加的版本:6.0.0
stroke_width -- 文本笔划的宽度。
添加的版本:6.2.0
- 返回
(宽度,高度)
getsize_multiline
(text, direction=None, spacing=4, features=None, language=None, stroke_width=0)返回给定文本的宽度和高度(以像素为单位),如果以提供的方向、功能和语言的字体呈现,同时考虑换行符。
- 参数
text -- 要测量的文本。
direction -- 文本的方向。它可以是“rtl”(从右到左)、“ltr”(从左到右)或“ttb”(从上到下)。需要libraqm库的支持。
spacing -- 线之间的垂直间距,默认为4像素。
features -- 文本布局期间要使用的OpenType字体功能列表。这通常用于打开默认情况下未启用的可选字体功能,例如“dlig”或“ss01”,但也可用于关闭默认字体功能,例如“-liga”禁用连字,或“-kern”禁用紧排。需要libraqm库的支持。
language -- 文本的语言。不同的语言可以使用不同的字形或连字。此参数告诉文本使用哪种语言的字体,并根据需要应用正确的替换(如果可用)。应该是一个 BCP 47 语言代码。需要libraqm的支持。
添加的版本:6.0.0
stroke_width -- 文本笔划的宽度。
添加的版本:6.2.0
- 返回
(宽度,高度)
-
set_variation_by_axes
(axes) - 参数
axes -- 每个轴的值列表。
- 引发
OSError
-- 如果字体不是变体字体。
-
set_variation_by_name
(name) - 参数
name -- 样式的名称。
- 引发
OSError
-- 如果字体不是变体字体。
-
-
class
PIL.ImageFont.
TransposedFont
(font, orientation=None) 用于写入旋转或镜像文本的包装器
更多建议: