matplotlib.ft2font#
- class matplotlib.ft2font.FT2Font(self: matplotlib.ft2font.FT2Font, filename: object, hinting_factor: SupportsInt | SupportsIndex | None = None, *, face_index: SupportsInt | SupportsIndex = 0, _fallback_list: collections.abc.Sequence[matplotlib.ft2font.FT2Font] | None = None, _kerning_factor: SupportsInt | SupportsIndex | None = None, _warn_if_used: bool = False)#
基类
表示单个字体外观(face)的对象。
除了字体本身及其属性查询之外,该对象还提供了将文本字符串处理为字形(glyph)形状的方法。
通常,可以使用
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, bytes, os.PathLike, 或 io.BinaryIO
FreeType 可以读取的格式(ttf 或 ttc)的字体数据源。
- face_indexint,可选
要加载的字体文件中字体外观(face)的索引。
- _fallback_listFT2Font 列表,可选
用于查找缺失字形的 FT2Font 对象列表。
警告
此 API 既是私有的也是临时的:请勿直接使用。
- _warn_if_usedbool,可选
用于触发缺失字形警告。
警告
此 API 是私有的:请勿直接使用。
- property ascender#
26.6 单位的升部高度(ascender)。
- property bbox#
字体外观(face)的全局边界框(xmin, ymin, xmax, ymax)。
- clear(self: matplotlib.ft2font.FT2Font) None#
清除所有字形,为重新调用
set_text进行重置。
- property descender#
26.6 单位的降部高度(descender)。
- draw_glyph_to_bitmap()#
在像素位置 x, y 处将单个字形绘制到目标位图。
注意,在进行此调用之前,您需要负责手动创建正确大小的图像。
如果您需要自动布局,请将
set_text与draw_glyphs_to_bitmap结合使用。相反,此函数适用于希望在精确位置渲染单个字形(例如,由load_char返回的字形)的用户。- 参数:
- imageuint8 的二维数组
要在其上绘制字形的图像缓冲区。
- x, yint
字形左上角的位置。
- glyphGlyph
要绘制的字形。
- antialiasedbool,默认值:True
是使用 8 位抗锯齿渲染字形,还是使用纯黑白渲染。
- draw_glyphs_to_bitmap(self: matplotlib.ft2font.FT2Font, *, antialiased: bool = True) None#
将由
set_text加载的字形绘制到位图中。位图大小将自动设置为包含这些字形。
- 参数:
- antialiasedbool,默认值:True
是使用 8 位抗锯齿渲染字形,还是使用纯黑白渲染。
另请参阅
- property face_index#
该字体在文件中的索引。
- property family_name#
字体外观族名(Face family name)。
- property fname#
此对象的原始文件名。
- get_bitmap_offset(self: matplotlib.ft2font.FT2Font) tuple[int, int]#
如果墨迹悬挂在 (0, 0) 的左侧或下方,则获取位图的 (x, y) 偏移量。
由于 Matplotlib 仅支持从左到右的文本,因此 y 始终为 0。
- 返回:
- x, yfloat
位图以 26.6 子像素为单位的 x 和 y 偏移量。要获得以像素为单位的 x 和 y,请将这些值除以 64。
- get_char_index(self: matplotlib.ft2font.FT2Font, codepoint: SupportsInt | SupportsIndex, *, _fallback: bool = True) int#
返回字符码点对应的字形索引。
- 参数:
- codepointint
当前字符映射表(charmap,默认为 Unicode)中的字符码点。
- _fallbackbool
搜索字符时是否启用后备(fallback)字体。
- 返回:
- 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设置的当前字符串的降部(descent)高度。已考虑字符串的旋转。
- 返回:
- int
位图以降部为单位的 26.6 子像素值。要获得以像素为单位的降部高度,请将这些值除以 64。
- get_glyph_name(self: matplotlib.ft2font.FT2Font, index: SupportsInt | SupportsIndex) str#
获取字体外观中给定字形索引(index)的 ASCII 名称。
由于 Matplotlib 的内部设计,对于不包含字形名称的字体(根据
FT_FACE_FLAG_GLYPH_NAMES),这将返回一个虚构的名称,该名称不能通过get_name_index进行往返转换(roundtrip)。- 参数:
- index整数
要查询的字形编号。
- 返回:
- str
字形的名称;如果字体不包含名称,则为 Matplotlib 合成的名称。
另请参阅
- get_image(self: matplotlib.ft2font.FT2Font) numpy.typing.NDArray[numpy.uint8]#
返回此字体对象的底层图像缓冲区。
- 返回:
- np.ndarray[int]
另请参阅
- get_kerning(self: matplotlib.ft2font.FT2Font, left: SupportsInt | SupportsIndex, right: SupportsInt | SupportsIndex, mode: Kerning | SupportsInt | SupportsIndex) int#
获取两个字形之间的字距调整(kerning)值。
- 参数:
- left, rightint
字形索引。注意,这些既不是字符也不是字符代码。请使用
get_char_index将字符代码转换为字形索引。- modeKerning
字距调整模式常量
DEFAULT- 返回缩放并网格对齐(grid-fitted)的字距调整距离。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 Font Info 结构体中的信息。
有关更多信息,请参见 关于该结构体的 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[int, int]#
获取由
set_text设置的当前字符串的尺寸。已考虑字符串的旋转。
- 返回:
- width, heightfloat
当前字符串以 26.6 子像素为单位的宽度和高度。要获得以像素为单位的宽度和高度,请将这些值除以 64。
- property height#
以 26.6 为单位的高度;用于计算默认行间距(基线到基线的距离)。
- load_char(self: matplotlib.ft2font.FT2Font, charcode: SupportsInt | SupportsIndex, flags: LoadFlags | SupportsInt | SupportsIndex = <LoadFlags.FORCE_AUTOHINT: 32>) matplotlib.ft2font.Glyph#
在当前字体文件中加载字符并设置字形。
- 参数:
- charcodeint
用于准备渲染信息的字符代码。此代码必须存在于字符映射表(charmap)中,否则可能会返回
.notdef字形作为替代。- flagsLoadFlags,默认值:
LoadFlags.FORCE_AUTOHINT LoadFlags标志的任何按位或(bitwise-OR)组合。在 3.10 版本中变更: 现在接受一个
ft2font.LoadFlags而不是 int。
- 返回:
- Glyph
对应于指定字符的字形信息。
- load_glyph(self: matplotlib.ft2font.FT2Font, glyph_index: SupportsInt | SupportsIndex, flags: LoadFlags | SupportsInt | SupportsIndex = <LoadFlags.FORCE_AUTOHINT: 32>) matplotlib.ft2font.Glyph#
在当前字体文件中加载字形索引并设置字形。
请注意,字形索引是特定于字体的,而不像 Unicode 码点那样通用。
- 参数:
- glyph_indexint
要为其准备渲染信息的字形索引。
- flagsLoadFlags,默认值:
LoadFlags.FORCE_AUTOHINT LoadFlags标志的任何按位或(bitwise-OR)组合。在 3.10 版本中变更: 现在接受一个
ft2font.LoadFlags而不是 int。
- 返回:
- Glyph
对应于指定索引的字形信息。
另请参阅
- property max_advance_height#
所有字形的最大垂直光标步进(advance)高度。
- property max_advance_width#
所有字形的最大水平光标步进(advance)宽度。
- property num_charmaps#
字体外观(face)中的字符映射表(charmaps)数量。
- property num_faces#
文件中的字体外观(faces)数量。
- property num_fixed_sizes#
字体外观(face)中的位图(bitmap)数量。
- property num_glyphs#
字体外观(face)中的字形(glyphs)数量。
- property num_named_instances#
字体外观(face)中的命名实例数量。
- property postscript_name#
字体的 PostScript 名称。
- property scalable#
字体外观(face)是否可缩放;此属性之后的属性仅对可缩放的字体外观有定义。
- select_charmap(self: matplotlib.ft2font.FT2Font, i: SupportsInt | SupportsIndex) None#
通过其 FT_Encoding 编号选择字符映射表。
有关字符映射的更多详细信息,请参见 FreeType 文档。
- 参数:
另请参阅
- set_charmap(self: matplotlib.ft2font.FT2Font, i: SupportsInt | SupportsIndex) None#
将第 i 个字符映射表设置为当前字符映射表。
有关字符映射的更多详细信息,请参见 FreeType 文档。
- 参数:
- iint
范围在 [0,
num_charmaps) 内的字符映射表编号。
- set_size(self: matplotlib.ft2font.FT2Font, ptsize: SupportsFloat | SupportsIndex, dpi: SupportsFloat | SupportsIndex) None#
设置文本的大小。
- 参数:
- ptsizefloat
以磅(points)为单位的文本大小。
- dpifloat
用于渲染文本的 DPI。
- set_text(self: matplotlib.ft2font.FT2Font, string: str, angle: SupportsFloat | SupportsIndex = 0.0, flags: LoadFlags | SupportsInt | SupportsIndex = <LoadFlags.FORCE_AUTOHINT: 32>, *, features: collections.abc.Sequence[str] | None = None, language: collections.abc.Sequence[tuple[str, typing.SupportsInt | typing.SupportsIndex, typing.SupportsInt | typing.SupportsIndex]] | None | str=None) numpy.typing.NDArray[numpy.float64]#
设置文本字符串(string)和角度(angle)。
在调用
draw_glyphs_to_bitmap之前,您必须先调用此方法。- 参数:
- stringstr
要为其准备渲染信息的文本。
- angle浮点数
渲染所提供文本的角度。
- flagsLoadFlags,默认值:
LoadFlags.FORCE_AUTOHINT LoadFlags标志的任何按位或(bitwise-OR)组合。在 3.10 版本中变更: 现在接受一个
ft2font.LoadFlags而不是 int。- featurestuple[str, ...]
用于字体的字体特性标签(font feature tags)。
可用的字体特性标签可在 https://learn.microsoft.com/en-us/typography/opentype/spec/featurelist 找到。
于版本 3.11 新增。
- 返回:
- 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: SupportsInt | SupportsIndex | SupportsFloat | SupportsIndex, height: SupportsInt | SupportsIndex | SupportsFloat | SupportsIndex)#
基类
用于绘制字形的图像缓冲区。
- 参数:
- width, heightint
图像缓冲区的尺寸。
- draw_rect_filled(self: matplotlib.ft2font.FT2Image, x0: SupportsInt | SupportsIndex | SupportsFloat | SupportsIndex, y0: SupportsInt | SupportsIndex | SupportsFloat | SupportsIndex, x1: SupportsInt | SupportsIndex | SupportsFloat | SupportsIndex, y1: SupportsInt | SupportsIndex | SupportsFloat | SupportsIndex) None#
向图像中绘制一个实心矩形。
- 参数:
- x0, y0, x1, y1float
从 (x0, y0) 到 (x1, y1) 的矩形边界。
- 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#
- SBIX = 131072#
- SBIX_OVERLAY = 262144#
- SCALABLE = 1#
- SFNT = 8#
- SVG = 65536#
- TRICKY = 8192#
- VARIATION = 32768#
- VERTICAL = 32#
- class matplotlib.ft2font.Glyph(self: matplotlib.ft2font.Glyph)#
基类
有关单个字形的信息。
您无法自己创建此对象的实例,而必须使用
FT2Font.load_char或FT2Font.load_glyph来生成。该对象可用于调用FT2Font.draw_glyph_to_bitmap。有关各种度量属性的更多信息,请参见 FreeType 文档。
- property bbox#
该字形的控制框(control box)。
- property height#
该字形的高度。
- property horiAdvance#
水平布局的步进宽度(advance width)。
- property horiBearingX#
水平布局的左侧轴承(left side bearing)。
- property horiBearingY#
水平布局的顶侧轴承(top side bearing)。
- property linearHoriAdvance#
未进行微调(unhinted)的字形的步进宽度。
- property vertAdvance#
垂直布局的步进高度。
- property vertBearingX#
垂直布局的左侧轴承。
- property vertBearingY#
垂直布局的顶侧轴承。
- property width#
该字形的宽度。
- class matplotlib.ft2font.Kerning(*values)#
基类:
Enum用于
FT2Font.get_kerning的字距调整(kerning)模式。欲了解更多信息,请参见 FreeType 文档。
自 3.10 版本新增。
- DEFAULT = 0#
- UNFITTED = 1#
- UNSCALED = 2#
- class matplotlib.ft2font.LayoutItem(self: matplotlib.ft2font.LayoutItem)#
基类
- property char#
该项的字符代码。
- property ft_object#
该项的 FT_Face。
- property glyph_index#
该项的字形索引。
- property prev_kern#
此项与前一项之间的字距调整值(kerning)。
- property x#
该项的 x 位置。
- property y#
该项的 y 位置。
- class matplotlib.ft2font.LoadFlags(*values)#
基类:
Flag用于
FT2Font.load_char、FT2Font.load_glyph和FT2Font.set_text的标志(Flags)。欲了解更多信息,请参见 FreeType 文档。
自 3.10 版本新增。
- BITMAP_METRICS_ONLY = 4194304#
- 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#
- NO_SVG = 16777216#
- 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.RenderMode(*values)#
基类:
Enum渲染模式。
欲了解更多信息,请参见 FreeType 文档。
自 3.10 版本新增。
- LCD = 3#
- LCD_V = 4#
- LIGHT = 1#
- MONO = 2#
- NORMAL = 0#
- SDF = 5#
- class matplotlib.ft2font.StyleFlags(*values)#
基类:
Flag由
FT2Font.style_flags返回的标志。欲了解更多信息,请参见 FreeType 文档。
自 3.10 版本新增。
- BOLD = 2#
- ITALIC = 1#
- NORMAL = 0#