pyglet.font
加载字体。
Pyglet将自动加载任何系统安装的字体。您可以使用以下命令添加其他字体(例如,从您的程序资源) add_file()
或 add_directory()
。这些字体的可用方式与系统安装的字体相同:
from pyglet import font
font.add_file('action_man.ttf')
action_man = font.load('Action Man', 16)
# or
from pyglet import resource
resource.add_font('action_man.ttf')
action_man = font.load('Action Man')
请参阅 pyglet.font.base
模块,以获取有关此包使用的基类的文档。
- add_directory(directory: str) None
将字体目录添加到pyglet的搜索路径。
此函数简单地调用
pyglet.font.add_file()
对于每个具有.ttf
给定目录中的扩展名。不搜索子目录。
- add_file(font: str | BinaryIO) None
将字体添加到pyglet的搜索路径。
为了加载系统上未安装的字体,您必须调用此方法来告诉pyglet它存在。您可以提供文件名或任何类似文件的对象。
字体格式取决于平台,但通常是包含单个字体的TrueType字体文件。请注意,要使用通过此方法添加的字体,应将Face名称(而不是文件名)传递给 :meth:
pyglet.font.load()
或通常指定字体的任何其他位置。
- add_user_font(font: UserDefinedFontBase) None
添加用户创建的自定义字体。
需要对字体对象应用强引用,否则侏儒以后可能找不到该字体。
- 参数:
font (
UserDefinedFontBase
) -- 用户定义的字体类实例。- 抛出:
Exception -- 如果提供的字体不是源自
UserDefinedFontBase
。- 返回类型:
- load(
- name: str | Iterable[str] | None = None,
- size: float | None = None,
- bold: bool | str = False,
- italic: bool | str = False,
- stretch: bool | str = False,
- dpi: int | None = None,
加载用于呈现的字体。
- 参数:
name (
str
|Iterable
[str
] |None
) -- 字体系列,例如“Times New Roman”。 如果提供了名称列表,则使用与已知字体匹配的第一个名称。 如果没有字体可以与名称匹配,则使用默认字体。默认字体将取决于平台。bold (
bool
|str
) -- 如果为True,则返回一个粗体变体(如果给定系列和规模存在)。对于某些字体渲染器,粗体是字体的权重,并且可以提供一个字符串来指定权重。例如,“半粗体”或“浅色”。italic (
bool
|str
) -- 如果为True,则返回一个Italian变体(如果给定的族和规模存在)。对于某些字体渲染器,Italian可能有“倾斜”变体,可以指定为字符串。stretch (
bool
|str
) -- 如果为True,则返回拉伸变体(如果给定族和大小存在)。 目前仅通过Windows支持DirectWrite
字体渲染器。例如,“浓缩”或“扩展”。
- 返回类型:
Font
pyglet.font.user
该模块定义了Pyglet中用户定义字体的使用和创建。
此前,pyglet仅支持内置在操作系统中的字体渲染器,例如 FreeType
, DirectWrite
,或 Quartz
.然而,在某些情况下,用户可能不想要或不需要字体可以提供的所有功能。他们只需要将字符按特定顺序放置,而无需麻烦地输出到单独的文件中。
这个 UserDefinedMappingFont
为大多数用例提供,这将允许您制作可用于 font_name
需要识别字体。
用户定义的字体也通过其名称来标识。您选择的名称应该是唯一的,以确保它不会与系统字体冲突。例如,不要使用 Arial ,因为这会与Windows系统发生冲突。
使用 UserDefinedMappingFont
您可以传递指向您的字符映射 ImageData
。
mappings={'c': my_image_data, 'b': my_image_data, 'a': my_image_data}
对于更多自定义行为,可以使用类似于dict的对象,例如类。
class MyCustomMapping:
def get(self, char: str) -> ImageData | None:
# return ImageData if a character is found.
# return None if no character is found
mappings = MyCustomMapping()
- 创建字体后,您还必须在pyglet中注册它才能使用它。这可以通过
add_user_font()
功能。
当您注册用户定义的字体时,仅使用这些参数来识别字体。如果您有字体,但想要有 bold
启用版本。您必须创建字体的新实例,但要使用 bold
参数设置为 True
.同样适用于 size
参数。
结垢
默认情况下,用户字体不会被缩放。在大多数用例中,您需要使用特定大小的单一字体。
在某些情况下,用户可能想要缩放其字体以使用任何尺寸。我们提供以下功能: get_scaled_user_font()
.通过提供用户定义的字体实例和新大小,您将获得一个扩展到新大小的新字体实例。此新实例也必须以与基本字体相同的方式注册。
指定url时 size
参数,该值用于确定新大小之间的缩放比例。因此,如果您的基本字体大小为12,则创建24大小的缩放版本将是基本字体大小的两倍。
警告
这个 PIL
库是使用扩展功能所需的依赖项。
Added in version 2.0.15.
- exception UserDefinedFontException
与用户字体创建相关的异常。
- class UserDefinedFontBase
用作所有用户定义字体的基础。
Added in version 2.0.15.
- glyph_renderer_class
UserDefinedGlyphRenderer
的别名
- __init__(
- name: str,
- default_char: str,
- size: int,
- ascent: int | None = None,
- descent: int | None = None,
- bold: bool = False,
- italic: bool = False,
- stretch: bool = False,
- dpi: int = 96,
- locale: str | None = None,
初始化用户定义的字体。
- 参数:
name (
str
) -- 字体名称。用于识别字体。必须是唯一的,以确保它不会与任何系统字体冲突。default_char (
str
) -- 如果字体中找不到字符串中的字符,它将使用此作为后备。size (
int
) -- 字体大小,通常以像素为单位。bold (
bool
) -- 如果为True,则将在以下情况下使用此字体bold
为字体名称启用。italic (
bool
) -- 如果为True,则将在以下情况下使用此字体italic
为字体名称启用。stretch (
bool
) -- 如果为True,则将在以下情况下使用此字体stretch
为字体名称启用。dpi (
int
) -- 显示设备的假设分辨率,用于确定字体的像素大小。对于标准大小,使用默认值96。
- class UserDefinedMappingFont
该类允许从一组映射创建用户定义的字体。
Added in version 2.0.15.
- __init__(
- name: str,
- default_char: str,
- size: int,
- mappings: DictLikeObject,
- ascent: int | None = None,
- descent: int | None = None,
- bold: bool = False,
- italic: bool = False,
- stretch: bool = False,
- dpi: int = 96,
- locale: str | None = None,
初始化字体的默认参数。
- 参数:
name (
str
) -- 字体名称。必须是唯一的,以确保它不会与任何系统字体冲突。default_char (
str
) -- 如果字体中找不到字符串中的字符,它将使用此作为后备。size (
int
) -- 字体大小。应该以像素为单位。如果启用,此值将影响扩展。mappings (
DictLikeObject
) -- 带有get
功能。这个get
函数必须接受字符串字符并输出ImageData
如果找到的话。它也必须返回None
如果没有找到字符。bold (
bool
) -- 如果True
,此字体将用于bold
为字体名称启用。italic (
bool
) -- 如果True
,此字体将用于italic
为字体名称启用。stretch (
bool
) -- 如果True
,此字体将用于stretch
为字体名称启用。dpi (
int
) -- 显示设备的假设分辨率,用于确定字体的像素大小。对于标准大小,使用默认值96。
- get_scaled_user_font(
- font_base: UserDefinedMappingFont,
- size: int,
此函数将返回一个新的字体实例,该实例可以根据原始基本字体缩放其大小。
备注
扩展功能需要安装PIL库。
Added in version 2.0.15.
- 参数:
font_base (
UserDefinedMappingFont
) -- 要创建新大小的基本字体对象。size (
int
) -- 新的字体大小。这将根据基本大小和新大小之间的比例进行缩放。
- 返回类型: