当前位置: 首页 > 工具软件 > Fonty Python > 使用案例 >

python中font模块详解

公羊光明
2023-12-01

目录

系统方法

        pygame.font.init()

        pygame.font.quit()

        pygame.font.get_init()

        pygame.font.get_default_font()

        pygame.font.get_fonts()

        pygame.font.match_font()

        pygame.font.SysFont()

pygame.font.Font

        pygame.font.Font.render()

        pygame.font.Font.size()

        pygame.font.Font.set_underline()

        pygame.font.Font.get_underline()

        pygame.font.Font.set_bold()

        pygame.font.Font.get_bold()

        pygame.font.Font.set_italic()

        pygame.font.Font.metrics()

        pygame.font.Font.get_italic()

        pygame.font.Font.get_linesize()

        pygame.font.Font.get_height()

        pygame.font.Font.get_ascent()


系统方法

        pygame.font.init()


功能:初始化字体模块

属性:init() -> None

此方法由 pygame.init()自动调用,初始化字体模块。在任何其他函数工作之前,必须初始化模块。
多次调用此函数是安全的。


        pygame.font.quit()


功能:取消字体模块的初始化

属性:quit() -> None

手动取消初始化 SDL_ttf 的字体系统,由 pygame.quit()自动调用。
即使字体当前未初始化,也可以安全地调用此函数。

        pygame.font.get_init()


功能:测试字体模块是否已初始化【如果字体模块已初始化,则为true】

属性:get_init() -> bool

        pygame.font.get_default_font()


功能:获取默认字体的文件名

属性:get_default_font() -> string

返回系统字体的文件名,但不是文件的完整路径。此文件通常与字体模块位于同一目录中,但也可以捆绑在单独的存档中。

        pygame.font.get_fonts()


功能:获取所有可用字体

属性:get_fonts() -> list of strings

返回系统上所有可用字体的列表。字体名称将设置为小写,并删除所有空格和标点符号。这在大多数系统上都有效,但如果找不到字体,有些系统会返回空列表。

        pygame.font.match_font()


功能:在系统上查找特定字体

属性:match_font(name, bold=False, italic=False) -> path

返回系统上字体文件的完整路径。如果粗体(bold)或斜体(italic)设置为true,则将尝试查找正确的字体系列。
字体名实际上可以是一个逗号分隔的字体名列表。如果没有找到给定的名称,则不返回任何名称。


        pygame.font.SysFont()


功能:从系统字体创建字体对象

属性:SysFont(name, size, bold=False, italic=False) -> Font

返回从系统字体加载的新字体对象。字体将与请求的粗体和斜体标志匹配。如果找不到合适的系统字体,这将取决于加载默认的pygame字体。字体名可以是要查找的以逗号分隔的字体名列表。

pygame.font.Font


功能:从文件创建新字体对象

属性:

Font(filename, size) -> Font
Font(object, size) -> Font
从给定的文件名或python文件对象加载新字体。大小是字体的高度(以像素为单位)。如果文件名为None,则将加载pygame默认字体。如果无法从参数加载字体,将引发异常。一旦字体被创建,大小就不能改变。
字体对象主要用于将文本呈现为新的Surface对象。渲染可以模拟粗体或斜体功能,但最好从具有实际斜体或粗体标志符号的字体加载。呈现的文本可以是常规字符串或unicode。


        pygame.font.Font.render()


功能:在新Surface上绘制文本

属性:render(text, antialias, color, background=None) -> Surface

创建一个新Surface,并在其上呈现指定的文本。pygame不提供直接在现有surface上绘制文本的方法:若要创建文本的图像(Surface)必须使用 Font.render(),然后将此图像blit到另一个surface上。
文本只能是单独一行:换行符不能呈现。空字符('x00') 会引发TypeError。Unicode和字符(byte)字符串都可以。对于Unicode字符串,只能识别UCS-2字符('u0001' to 'uFFFF')。任何更大的值都会引发UnicodeError。对于字符字符串,假定采用 LATIN1 编码。抗锯齿参数(antialias)是布尔值:如果为真,字符将具有平滑的边。颜色参数是文本的颜色[例如:(0,0255)表示蓝色]。可选的背景参数是用于文本背景的颜色。如果没有传递背景,文本外部的区域将是透明的。
返回的Surface应保存文本所需尺寸。(与Font.size()一致)。如果为文本传递空字符串,则将返回零像素宽和高的空白surface。
根据背景和抗锯齿使用的类型,返回不同类型的曲面。出于性能原因,最好知道将使用哪种类型的图像。如果不使用抗锯齿,则返回图像将始终是带有双调色板的8-bit图像。如果背景是透明的,则设置colorkey。抗锯齿图像被渲染为24-bit RGB图像。如果背景是透明的,将包括像素alpha。
优化:

如果已知文本的最终目标(在屏幕上)将始终有一个实心的背景,并且文本是抗锯齿的,则可以通过指定背景颜色来提高性能。这将导致生成的图像通过colorkey值而不是alpha值来维护透明度信息。
如果呈现'\n',将呈现未知字符,通常是一个长方形。需要自己处理。
字体呈现不是线程安全的:任何时候只有一个线程可以呈现文本。


        pygame.font.Font.size()


功能:确定呈现文本所需的空间量

属性:size(text) -> (width, height)

返回呈现文本所需的维度。这可用于帮助确定文本在呈现之前所需的位置。它还可以用于换行和其他布局效果。
请注意,大多数字体使用字距调整来调整特定字母对的宽度。例如,“ae”的宽度并不总是与“a”“e”的宽度匹配。


        pygame.font.Font.set_underline()


功能:控制文本是否用下划线呈现

属性:set_underline(bool) -> None

启用后,所有呈现的字体都将包含下划线。无论字体大小,下划线总是一个像素厚。可以与粗体和斜体模式混合使用。

        pygame.font.Font.get_underline()


功能:检查文本是否将用下划线呈现【启用字体下划线时返回True】

属性:get_underline() -> bool

        pygame.font.Font.set_bold()


功能:启用文本的粗体呈现

属性:set_bold(bool) -> None

是对字体的假拉伸。在许多字体类型上看起来不太好。如果可能,从真正的粗体字体文件加载字体。粗体字体的宽度将与正常字体的宽度不同。可以与斜体和下划线模式混合使用。

        pygame.font.Font.get_bold()


功能:检查文本是否显示为粗体【启用字体粗体呈现模式时返回True】

属性:get_bold() -> bool

        pygame.font.Font.set_italic()


功能:启用文本的斜体呈现

set_italic(bool) -> None

是一个伪造的字体倾斜。在许多字体类型上看起来不太好。如果可能的话,从一个真正的斜体字体文件加载字体。斜体字体的宽度将不同于普通字体。可以与粗体和下划线模式混合使用。

        pygame.font.Font.metrics()


功能:获取传递字符串中每个字符的度量

属性:metrics(text) -> list

该列表包含每个字符的元组,其中包含字符的最小X偏移量、最大X偏移量、最小Y偏移量、最大Y偏移量和前进偏移量(方向角加宽度)。[(minx, maxx, miny, maxy, advance), (minx, maxx, miny, maxy, advance), ...]。列表中为每个无法识别的字符输入None。

        pygame.font.Font.get_italic()


功能:检查文本是否将呈现为斜体

属性:get_italic() -> bool

启用字体斜体呈现模式时返回True。

        pygame.font.Font.get_linesize()


功能:获取字体文本的行间距

属性:get_linesize() -> int

返回带有字体的文本行的高度(以像素为单位)。当呈现多行文本时,这是行间距的建议值(recommended amount)。

        pygame.font.Font.get_height()


功能:获取字体的高度

属性:get_height() -> int

返回实际文本的高度(以像素为单位)。这是字体中每个字形的平均大小。

        pygame.font.Font.get_ascent()


功能:获取字体的上升高度

属性:get_ascent() -> int

返回字体上升的高度(以像素为单位)。上升高度是从字体基线到字体顶部的像素数。

 类似资料: