matplotlib.ft2font
#
- class matplotlib.ft2font.FT2Font(self: matplotlib.ft2font.FT2Font, filename: object, hinting_factor: int = 8, *, _fallback_list: list[matplotlib.ft2font.FT2Font] | None = None, _kerning_factor: int = 0)#
基类
表示单个字体面(font face)的对象。
除了字体本身和查询其属性外,此对象还提供了将文本字符串处理成字形形状的方法。
通常,可以使用
FT2Font.set_text
加载一些字形度量和轮廓。然后可以使用FT2Font.draw_glyphs_to_bitmap
和FT2Font.get_image
获取已加载字符串的渲染形式。对于单个字符,可以直接使用
FT2Font.load_char
或FT2Font.load_glyph
的返回值,或者使用FT2Font.draw_glyph_to_bitmap
或FT2Font.get_path
。可以通过
Glyph
返回值或FT2Font.get_kerning
检查有用的度量。大多数尺寸以 26.6 或 16.6 定点整数表示亚像素。将这些值除以 64 可得到浮点像素。- 参数:
- filenamestr 或类文件对象
FreeType 可读取的字体数据源文件(ttf 或 ttc 格式)。
- hinting_factorint, 可选
必须为正值。用于缩放 x 方向的字形微调。
- _fallback_listFT2Font 列表, 可选
用于查找缺失字形的 FT2Font 对象列表。
警告
此 API 为私有且暂定:请勿直接使用。
- _kerning_factorint, 可选
用于调整字距调整(kerning)的程度。
警告
此 API 为私有:请勿直接使用。
- property ascender#
升部线(Ascender),以 26.6 单位表示。
- property bbox#
字面全局包围盒 (xmin, ymin, xmax, ymax)。
- clear(self: matplotlib.ft2font.FT2Font) None #
清除所有字形,为新的
set_text
调用重置。
- property descender#
降部线(Descender),以 26.6 单位表示。
- draw_glyph_to_bitmap(self: matplotlib.ft2font.FT2Font, image: matplotlib.ft2font.FT2Image, x: float | int, y: float | int, glyph: matplotlib.ft2font.Glyph, *, antialiased: bool = True) None #
在像素位置 x, y 处将单个字形绘制到位图。
请注意,在调用此函数之前,您有责任手动创建正确大小的图像。
如果您想要自动布局,请结合使用
set_text
和draw_glyphs_to_bitmap
。此函数旨在用于希望在精确位置渲染单个字形(例如,由load_char
返回)的人。- 参数:
- imageFT2Image
用于绘制字形的图像缓冲区。
- x, yint
绘制字形的像素位置。
- glyphGlyph
要绘制的字形。
- antialiasedbool, 默认: True
是否以 8 位抗锯齿或纯黑白方式渲染字形。
- draw_glyphs_to_bitmap(self: matplotlib.ft2font.FT2Font, *, antialiased: bool = True) None #
将由
set_text
加载的字形绘制到位图。位图大小将自动设置以包含这些字形。
- 参数:
- antialiasedbool, 默认: True
是否以 8 位抗锯齿或纯黑白方式渲染字形。
另请参阅
- property family_name#
字面族名。
- property fname#
此对象的原始文件名。
- get_bitmap_offset(self: matplotlib.ft2font.FT2Font) tuple #
如果墨水向左或向下悬挂在 (0, 0) 处,则获取位图的 (x, y) 偏移量。
由于 Matplotlib 仅支持从左到右的文本,y 始终为 0。
- 返回:
- x, yfloat
位图的 x 和 y 偏移量,以 26.6 亚像素表示。要获得像素为单位的 x 和 y,请将这些值除以 64。
- get_char_index(self: matplotlib.ft2font.FT2Font, codepoint: int) int #
返回字符码点对应的字形索引。
- 参数:
- codepointint
当前字符映射表(默认为 Unicode)中的字符码点。
- 返回:
- int
对应的字形索引。
- get_charmap(self: matplotlib.ft2font.FT2Font) dict #
返回字体中字符代码到字形索引的映射。
字符映射表默认为 Unicode,但可以通过
set_charmap
或select_charmap
更改。- 返回:
- dict[int, int]
所选字符映射表的字典,映射字符代码到其对应的字形索引。
- get_descent(self: matplotlib.ft2font.FT2Font) int #
获取由
set_text
设置的当前字符串的降部值。考虑了字符串的旋转。
- 返回:
- int
位图的降部值,以 26.6 亚像素表示。要获取像素为单位的降部值,请将这些值除以 64。
- get_glyph_name(self: matplotlib.ft2font.FT2Font, index: int) str #
检索给定字体面中字形 index 的 ASCII 名称。
由于 Matplotlib 的内部设计,对于不包含字形名称的字体(根据
FT_FACE_FLAG_GLYPH_NAMES
),此函数返回一个虚构的名称,该名称无法通过get_name_index
进行往返转换。- 参数:
- index整数
要查询的字形编号。
- 返回:
- str
字形的名称,如果字体不包含名称,则为 Matplotlib 合成的名称。
另请参阅
- get_image(self: matplotlib.ft2font.FT2Font) numpy.ndarray #
返回此字体对象的基础图像缓冲区。
- 返回:
- np.ndarray[int]
另请参阅
- get_kerning(self: matplotlib.ft2font.FT2Font, left: int, right: int, mode: Kerning | int) int #
获取两个字形之间的字距调整(kerning)。
- 参数:
- left, rightint
字形索引。请注意,这些不是字符或字符代码。使用
get_char_index
将字符代码转换为字形索引。- modeKerning
字距调整模式常量
DEFAULT
- 返回缩放并网格拟合的字距调整距离。UNFITTED
- 返回缩放但未网格拟合的字距调整距离。UNSCALED
- 返回原始字体单位的字距调整向量。
3.10 版本中已更改: 现在接受
ft2font.Kerning
值而不是int
。
- 返回:
- int
两个字形之间的字距调整值。
- get_name_index(self: matplotlib.ft2font.FT2Font, name: str) int #
返回给定字形 name 的字形索引。
- 参数:
- namestr
要查询的字形名称。
- 返回:
- int
对应的字形索引;0 表示“未定义字符代码”。
- get_num_glyphs(self: matplotlib.ft2font.FT2Font) int #
返回已加载字形的数量。
- get_path(self: matplotlib.ft2font.FT2Font) tuple #
从当前加载的字形获取路径数据。
- 返回:
- verticesnp.ndarray[double]
(N, 2) 顶点数组,描述当前字形。
- codesnp.ndarray[np.uint8]
(N,) 代码数组,对应于顶点。
- get_ps_font_info(self: matplotlib.ft2font.FT2Font) tuple #
返回 PS 字体信息结构中的信息。
有关更多信息,请参阅 FreeType 关于此结构的文档。
- 返回:
- versionstr
- noticestr
- full_namestr
- family_namestr
- weightstr
- italic_angleint
- is_fixed_pitchbool
- underline_positionint
- underline_thicknessint
- get_sfnt(self: matplotlib.ft2font.FT2Font) dict #
加载整个 SFNT 名称表。
- 返回:
- dict[tuple[int, int, int, int], bytes]
SFNT 名称表;字典键是以下元组:
(平台 ID,ISO 编码方案,语言代码,描述)
值是字体表中的直接信息。
- get_sfnt_table(self: matplotlib.ft2font.FT2Font, name: str) dict | None #
返回其中一个 SFNT 表。
- 参数:
- name{"head", "maxp", "OS/2", "hhea", "vhea", "post", "pclt"}
要返回的表。
- 返回:
- dict[str, Any]
对应的表;有关更多信息,请参阅 FreeType 文档。
- get_width_height(self: matplotlib.ft2font.FT2Font) tuple #
获取由
set_text
设置的当前字符串的尺寸。考虑了字符串的旋转。
- 返回:
- width, heightfloat
当前字符串的宽度和高度,以 26.6 亚像素表示。要获取像素为单位的宽度和高度,请将这些值除以 64。
- property height#
高度,以 26.6 单位表示;用于计算默认行距(基线到基线的距离)。
- load_char(self: matplotlib.ft2font.FT2Font, charcode: int, flags: Union[LoadFlags, int] = <LoadFlags.FORCE_AUTOHINT: 32>) matplotlib.ft2font.Glyph #
加载当前字体文件中的字符并设置字形。
- 参数:
- charcodeint
要准备渲染信息的字符代码。此代码必须存在于字符映射表中,否则可能会返回
.notdef
字形。- flagsLoadFlags, 默认:
LoadFlags.FORCE_AUTOHINT
LoadFlags
标志的任何按位或组合。3.10 版本中已更改: 现在接受
ft2font.LoadFlags
而不是 int。
- 返回:
- Glyph
对应于指定字符的字形信息。
- load_glyph(self: matplotlib.ft2font.FT2Font, glyph_index: int, flags: Union[LoadFlags, int] = <LoadFlags.FORCE_AUTOHINT: 32>) matplotlib.ft2font.Glyph #
加载当前字体文件中的字形索引并设置字形。
请注意,字形索引是字体特有的,不像 Unicode 码点那样通用。
- 参数:
- glyph_indexint
要准备渲染信息的字形索引。
- flagsLoadFlags, 默认:
LoadFlags.FORCE_AUTOHINT
LoadFlags
标志的任何按位或组合。3.10 版本中已更改: 现在接受
ft2font.LoadFlags
而不是 int。
- 返回:
- Glyph
对应于指定索引的字形信息。
另请参阅
- property max_advance_height#
所有字形的最大垂直光标前进量。
- property max_advance_width#
所有字形的最大水平光标前进量。
- property num_charmaps#
字面中字符映射表的数量。
- property num_faces#
文件中的字面数量。
- property num_fixed_sizes#
字面中的位图数量。
- property num_glyphs#
字面中的字形数量。
- property num_named_instances#
字面中命名实例的数量。
- property postscript_name#
字体的 PostScript 名称。
- property scalable#
字面是否可伸缩;此后的属性仅针对可伸缩字面定义。
- select_charmap(self: matplotlib.ft2font.FT2Font, i: int) None #
根据其 FT_Encoding 编号选择字符映射表。
有关字符映射的更多详细信息,请参阅 FreeType 文档。
- 参数:
- iint
字符映射表的格式由 FreeType 定义:https://freetype.org/freetype2/docs/reference/ft2-character_mapping.html#ft_encoding
另请参阅
- set_charmap(self: matplotlib.ft2font.FT2Font, i: int) None #
将第 i 个字符映射表设为当前。
有关字符映射的更多详细信息,请参阅 FreeType 文档。
- 参数:
- iint
字符映射表编号范围为 [0,
num_charmaps
)。
- set_size(self: matplotlib.ft2font.FT2Font, ptsize: float, dpi: float) None #
设置文本大小。
- 参数:
- ptsizefloat
文本大小(以点为单位)。
- dpifloat
用于渲染文本的 DPI。
- set_text(self: matplotlib.ft2font.FT2Font, string: str, angle: float = 0.0, flags: Union[LoadFlags, int] = <LoadFlags.FORCE_AUTOHINT: 32>) numpy.ndarray[numpy.float64] #
设置文本 *string* 和 *angle*。
在调用
draw_glyphs_to_bitmap
之前,必须先调用此方法。- 参数:
- stringstr
要准备渲染信息的文本。
- angle浮点数
渲染所提供文本的角度。
- flagsLoadFlags, 默认:
LoadFlags.FORCE_AUTOHINT
LoadFlags
标志的任何按位或组合。3.10 版本中已更改: 现在接受
ft2font.LoadFlags
而不是 int。
- 返回:
- np.ndarray[double]
以 26.6 子像素表示的 x,y 字形位置序列;除以 64 可得到像素值。
- property style_flags#
样式标志;请参阅
StyleFlags
。
- property style_name#
样式名称。
- property underline_position#
下划线的垂直位置。
- property underline_thickness#
下划线的粗细。
- property units_per_EM#
EM 所覆盖的字体单位数量。
- class matplotlib.ft2font.FT2Image(self: matplotlib.ft2font.FT2Image, width: float | int, height: float | int)#
基类
用于绘制字形的图像缓冲区。
- 参数:
- width, heightint
图像缓冲区的尺寸。
- class matplotlib.ft2font.FaceFlags(*values)#
基类:
Flag
由
FT2Font.face_flags
返回的标志。有关更多信息,请参阅 FreeType 文档。
自 3.10 版本新增。
- CID_KEYED = 4096#
- COLOR = 16384#
- EXTERNAL_STREAM = 1024#
- FAST_GLYPHS = 128#
- FIXED_SIZES = 2#
- FIXED_WIDTH = 4#
- GLYPH_NAMES = 512#
- HINTER = 2048#
- HORIZONTAL = 16#
- KERNING = 64#
- MULTIPLE_MASTERS = 256#
- SCALABLE = 1#
- SFNT = 8#
- TRICKY = 8192#
- VERTICAL = 32#
- class matplotlib.ft2font.Glyph(self: matplotlib.ft2font.Glyph)#
基类
单个字形的信息。
您不能自行创建此对象的实例,而必须使用
FT2Font.load_char
或FT2Font.load_glyph
来生成。此对象可用于调用FT2Font.draw_glyph_to_bitmap
。有关各种度量的更多信息,请参阅 FreeType 文档。
- property bbox#
字形的控制框。
- property height#
字形的高度。
- property horiAdvance#
水平布局的预进宽度。
- property horiBearingX#
水平布局的左侧轴承。
- property horiBearingY#
水平布局的顶部轴承。
- property linearHoriAdvance#
未提示字形的预进宽度。
- property vertAdvance#
垂直布局的预进高度。
- property vertBearingX#
垂直布局的左侧轴承。
- property vertBearingY#
垂直布局的顶部轴承。
- property width#
字形的宽度。
- class matplotlib.ft2font.Kerning(*values)#
基类:
Enum
FT2Font.get_kerning
的字距调整模式。有关更多信息,请参阅 FreeType 文档。
自 3.10 版本新增。
- DEFAULT = 0#
- UNFITTED = 1#
- UNSCALED = 2#
- class matplotlib.ft2font.LoadFlags(*values)#
基类:
Flag
FT2Font.load_char
、FT2Font.load_glyph
和FT2Font.set_text
的标志。有关更多信息,请参阅 FreeType 文档。
自 3.10 版本新增。
- COLOR = 1048576#
- COMPUTE_METRICS = 2097152#
- CROP_BITMAP = 64#
- DEFAULT = 0#
- FORCE_AUTOHINT = 32#
- IGNORE_GLOBAL_ADVANCE_WIDTH = 512#
- IGNORE_TRANSFORM = 2048#
- LINEAR_DESIGN = 8192#
- MONOCHROME = 4096#
- NO_AUTOHINT = 32768#
- NO_BITMAP = 8#
- NO_HINTING = 2#
- NO_RECURSE = 1024#
- NO_SCALE = 1#
- PEDANTIC = 128#
- RENDER = 4#
- TARGET_LCD = 196608#
- TARGET_LCD_V = 262144#
- TARGET_LIGHT = 65536#
- TARGET_MONO = 131072#
- TARGET_NORMAL = 0#
- VERTICAL_LAYOUT = 16#
- class matplotlib.ft2font.StyleFlags(*values)#
基类:
Flag
由
FT2Font.style_flags
返回的标志。有关更多信息,请参阅 FreeType 文档。
自 3.10 版本新增。
- BOLD = 2#
- ITALIC = 1#
- NORMAL = 0#