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)#

Basen

Ein Objekt, das eine einzelne Schriftart darstellt.

Neben der Schriftart selbst und dem Abfragen ihrer Eigenschaften bietet dieses Objekt Methoden zur Verarbeitung von Textzeichenketten in Glyphenformen.

Typischerweise wird FT2Font.set_text verwendet, um Glyphenmetriken und -umrisse zu laden. Anschließend können FT2Font.draw_glyphs_to_bitmap und FT2Font.get_image verwendet werden, um eine gerenderte Form des geladenen Strings zu erhalten.

Für einzelne Zeichen können FT2Font.load_char oder FT2Font.load_glyph verwendet werden, entweder direkt für ihre Rückgabewerte oder um FT2Font.draw_glyph_to_bitmap oder FT2Font.get_path zu verwenden.

Nützliche Metriken können über die Rückgabewerte von Glyph oder FT2Font.get_kerning untersucht werden. Die meisten Abmessungen werden in 26,6 oder 16,6 Festkommazahlen dargestellt, die Subpixel repräsentieren. Teilen Sie diese Werte durch 64, um Gleitkomma-Pixel zu erhalten.

Parameter:
filenamestr oder dateiähnlich

Die Quelle der Font-Daten in einem Format (ttf oder ttc), das FreeType lesen kann.

hinting_factorint, optional

Muss positiv sein. Wird verwendet, um das Hinting in der x-Richtung zu skalieren.

_fallback_listListe von FT2Font, optional

Eine Liste von FT2Font-Objekten, die zur Suche nach fehlenden Glyphen verwendet werden.

Warnung

Diese API ist sowohl privat als auch provisorisch: Verwenden Sie sie nicht direkt.

_kerning_factorint, optional

Wird verwendet, um den Grad des Kerning anzupassen.

Warnung

Diese API ist privat: Verwenden Sie sie nicht direkt.

property ascender#

Ascender in 26,6-Einheiten.

property bbox#

Globale Bounding Box des Schriftgesichts (xmin, ymin, xmax, ymax).

clear(self: matplotlib.ft2font.FT2Font) None#

Löscht alle Glyphen, zurücksetzen für einen neuen Aufruf von set_text.

property descender#

Descender in 26,6-Einheiten.

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#

Zeichnet einen einzelnen Glyphen auf das Bitmap an den Pixelpositionen x, y.

Beachten Sie, dass es Ihre Verantwortung ist, das Bild manuell mit der richtigen Größe zu erstellen, bevor dieser Aufruf erfolgt.

Wenn Sie eine automatische Anordnung wünschen, verwenden Sie set_text in Kombination mit draw_glyphs_to_bitmap. Diese Funktion ist stattdessen für Personen gedacht, die einzelne Glyphen rendern möchten (z. B. von load_char zurückgegeben) an präzisen Positionen.

Parameter:
imageFT2Image

Der Bildpuffer, auf den der Glyphe gezeichnet werden soll.

x, yint

Die Pixelposition, an der der Glyphe gezeichnet werden soll.

glyphGlyph

Der zu zeichnende Glyphe.

antialiasedbool, Standard: True

Ob Glyphen 8-Bit geglättet oder rein Schwarzweiß gerendert werden sollen.

draw_glyphs_to_bitmap(self: matplotlib.ft2font.FT2Font, *, antialiased: bool = True) None#

Zeichnet die von set_text geladenen Glyphen auf das Bitmap.

Die Bitmapgröße wird automatisch so eingestellt, dass sie die Glyphen enthält.

Parameter:
antialiasedbool, Standard: True

Ob Glyphen 8-Bit geglättet oder rein Schwarzweiß gerendert werden sollen.

property face_flags#

Schriftgesichts-Flags; siehe FaceFlags.

property family_name#

Familienname des Schriftgesichts.

property fname#

Der ursprüngliche Dateiname für dieses Objekt.

get_bitmap_offset(self: matplotlib.ft2font.FT2Font) tuple#

Ermittelt den (x, y)-Offset für das Bitmap, wenn Tinte links oder unten hängt (0, 0).

Da Matplotlib nur Links-nach-Rechts-Text unterstützt, ist y immer 0.

Gibt zurück:
x, yfloat

Der x- und y-Offset in 26,6 Subpixel des Bitmaps. Um x und y in Pixel zu erhalten, teilen Sie diese Werte durch 64.

get_char_index(self: matplotlib.ft2font.FT2Font, codepoint: int) int#

Gibt den Glyphenindex zurück, der einem Zeichen-Codepunkt entspricht.

Parameter:
codepointint

Ein Zeichen-Codepunkt in der aktuellen Charmap (standardmäßig Unicode).

Gibt zurück:
int

Der entsprechende Glyphenindex.

get_charmap(self: matplotlib.ft2font.FT2Font) dict#

Gibt eine Zuordnung von Zeichencodes zu Glyphenindizes im Font zurück.

Die Charmap ist standardmäßig Unicode, kann aber durch set_charmap oder select_charmap geändert werden.

Gibt zurück:
dict[int, int]

Ein Wörterbuch der ausgewählten Charmap, das Zeichencodes ihren entsprechenden Glyphenindizes zuordnet.

get_descent(self: matplotlib.ft2font.FT2Font) int#

Ermittelt den Descender des aktuellen Strings, der durch set_text gesetzt wurde.

Die Rotation des Strings wird berücksichtigt.

Gibt zurück:
int

Der Descender in 26,6 Subpixel des Bitmaps. Um den Descender in Pixel zu erhalten, teilen Sie diese Werte durch 64.

get_glyph_name(self: matplotlib.ft2font.FT2Font, index: int) str#

Ruft den ASCII-Namen eines gegebenen Glyphen-*Index* in einem Schriftgesicht ab.

Aufgrund des internen Designs von Matplotlib gibt dies für Schriftarten, die keine Glyphennamen enthalten (gemäß FT_FACE_FLAG_GLYPH_NAMES), einen erfundenen Namen zurück, der *nicht* über get_name_index hin und her funktioniert.

Parameter:
indexint

Die zu befragende Glyphennummer.

Gibt zurück:
str

Der Name des Glyphen oder, falls die Schriftart keine Namen enthält, ein von Matplotlib synthetisierter Name.

Siehe auch

get_name_index
get_image(self: matplotlib.ft2font.FT2Font) numpy.ndarray#

Gibt den zugrunde liegenden Bildpuffer für dieses Schriftobjekt zurück.

Gibt zurück:
np.ndarray[int]

Siehe auch

get_path
get_kerning(self: matplotlib.ft2font.FT2Font, left: int, right: int, mode: Kerning | int) int#

Ermittelt das Kerning zwischen zwei Glyphen.

Parameter:
left, rightint

Die Glyphenindizes. Beachten Sie, dass dies weder Zeichen noch Zeichencodes sind. Verwenden Sie get_char_index, um Zeichencodes in Glyphenindizes umzuwandeln.

modeKerning

Eine Kerning-Moduskonstante

  • DEFAULT - Gibt skalierte und rasteroptimierte Kerning-Abstände zurück.

  • UNFITTED - Gibt skalierte, aber nicht rasteroptimierte Kerning-Abstände zurück.

  • UNSCALED - Gibt den Kerning-Vektor in den ursprünglichen Font-Einheiten zurück.

Geändert in Version 3.10: Dies nimmt jetzt einen ft2font.Kerning-Wert anstelle einer int.

Gibt zurück:
int

Die Kerning-Anpassung zwischen den beiden Glyphen.

get_name_index(self: matplotlib.ft2font.FT2Font, name: str) int#

Gibt den Glyphenindex eines gegebenen Glyphen-*Namens* zurück.

Parameter:
namestr

Der Name des abzufragenden Glyphen.

Gibt zurück:
int

Der entsprechende Glyphenindex; 0 bedeutet 'undefinierter Zeichencode'.

get_num_glyphs(self: matplotlib.ft2font.FT2Font) int#

Gibt die Anzahl der geladenen Glyphen zurück.

get_path(self: matplotlib.ft2font.FT2Font) tuple#

Ermittelt die Pfaddaten des aktuell geladenen Glyphen.

Gibt zurück:
verticesnp.ndarray[double]

Das (N, 2)-Array von Vertices, das den aktuellen Glyphen beschreibt.

codesnp.ndarray[np.uint8]

Das (N,)-Array von Codes, die den Vertices entsprechen.

get_ps_font_info(self: matplotlib.ft2font.FT2Font) tuple#

Gibt die Informationen in der PS Font Info-Struktur zurück.

Weitere Informationen finden Sie in der FreeType-Dokumentation zu dieser Struktur.

Gibt zurück:
versionstr
noticestr
full_namestr
family_namestr
weightstr
italic_angleint
is_fixed_pitchbool
underline_positionint
underline_thicknessint
get_sfnt(self: matplotlib.ft2font.FT2Font) dict#

Lädt die gesamte SFNT-Namens-Tabelle.

Gibt zurück:
dict[tuple[int, int, int, int], bytes]

Die SFNT-Namens-Tabelle; die Schlüssel des Wörterbuchs sind Tupel von

(Plattform-ID, ISO-Kodierungsschema, Sprachcode, Beschreibung)

und die Werte sind die direkten Informationen aus der Font-Tabelle.

get_sfnt_table(self: matplotlib.ft2font.FT2Font, name: str) dict | None#

Gibt eine der SFNT-Tabellen zurück.

Parameter:
name{"head", "maxp", "OS/2", "hhea", "vhea", "post", "pclt"}

Welche Tabelle zurückgegeben werden soll.

Gibt zurück:
dict[str, Any]

Die entsprechende Tabelle; weitere Informationen finden Sie in der FreeType-Dokumentation.

get_width_height(self: matplotlib.ft2font.FT2Font) tuple#

Ermittelt die Abmessungen des aktuellen Strings, der durch set_text gesetzt wurde.

Die Rotation des Strings wird berücksichtigt.

Gibt zurück:
width, heightfloat

Die Breite und Höhe in 26,6 Subpixel des aktuellen Strings. Um Breite und Höhe in Pixel zu erhalten, teilen Sie diese Werte durch 64.

property height#

Höhe in 26,6 Einheiten; wird zur Berechnung eines Standard-Zeilenabstands (Abstand von Grundlinie zu Grundlinie) verwendet.

load_char(self: matplotlib.ft2font.FT2Font, charcode: int, flags: Union[LoadFlags, int] = <LoadFlags.FORCE_AUTOHINT: 32>) matplotlib.ft2font.Glyph#

Lädt ein Zeichen in der aktuellen Schriftdatei und setzt den Glyphen.

Parameter:
charcodeint

Der Zeichencode, für den Rendering-Informationen vorbereitet werden sollen. Dieser Code muss in der Charmap vorhanden sein, andernfalls kann stattdessen ein .notdef-Glyph zurückgegeben werden.

flagsLoadFlags, Standard: LoadFlags.FORCE_AUTOHINT

Jede bitweise ODER-Kombination der LoadFlags.

Geändert in Version 3.10: Dies nimmt jetzt ein ft2font.LoadFlags anstelle einer int.

Gibt zurück:
Glyph

Die Glypheninformationen, die dem angegebenen Zeichen entsprechen.

load_glyph(self: matplotlib.ft2font.FT2Font, glyph_index: int, flags: Union[LoadFlags, int] = <LoadFlags.FORCE_AUTOHINT: 32>) matplotlib.ft2font.Glyph#

Lädt den Glyphenindex in der aktuellen Schriftdatei und setzt den Glyphen.

Beachten Sie, dass der Glyphenindex spezifisch für eine Schriftart ist und nicht universell wie ein Unicode-Codepunkt.

Parameter:
glyph_indexint

Der Glyphenindex, für den Rendering-Informationen vorbereitet werden sollen.

flagsLoadFlags, Standard: LoadFlags.FORCE_AUTOHINT

Jede bitweise ODER-Kombination der LoadFlags.

Geändert in Version 3.10: Dies nimmt jetzt ein ft2font.LoadFlags anstelle einer int.

Gibt zurück:
Glyph

Die Glypheninformationen, die dem angegebenen Index entsprechen.

Siehe auch

load_char
property max_advance_height#

Maximale vertikale Cursor-Vorschub für alle Glyphen.

property max_advance_width#

Maximale horizontale Cursor-Vorschub für alle Glyphen.

property num_charmaps#

Anzahl der Zeichensätze (charmaps) in der Schriftart.

property num_faces#

Anzahl der Schnitte (faces) in der Datei.

property num_fixed_sizes#

Anzahl der Bitmaps in der Schriftart.

property num_glyphs#

Anzahl der Glyphen in der Schriftart.

property num_named_instances#

Anzahl der benannten Instanzen in der Schriftart.

property postscript_name#

PostScript-Name der Schriftart.

property scalable#

Gibt an, ob der Schnitt skalierbar ist; Attribute nach diesem sind nur für skalierbare Schnitte definiert.

select_charmap(self: matplotlib.ft2font.FT2Font, i: int) None#

Wählt einen Zeichensatz anhand seiner FT_Encoding-Nummer aus.

Weitere Details zur Zeichenkodierung finden Sie in der FreeType-Dokumentation.

Parameter:
iint

Der Zeichensatz in der von FreeType definierten Form: https://freetype.org/freetype2/docs/reference/ft2-character_mapping.html#ft_encoding

set_charmap(self: matplotlib.ft2font.FT2Font, i: int) None#

Macht den i-ten Zeichensatz zum aktuellen.

Weitere Details zur Zeichenkodierung finden Sie in der FreeType-Dokumentation.

Parameter:
iint

Die Zeichensatznummer im Bereich [0, num_charmaps).

set_size(self: matplotlib.ft2font.FT2Font, ptsize: float, dpi: float) None#

Legt die Größe des Textes fest.

Parameter:
ptsizefloat

Die Textgröße in Punkten.

dpifloat

Die für das Rendern des Textes verwendete 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]#

Legt den Text-String und den Winkel fest.

Dies muss vor draw_glyphs_to_bitmap aufgerufen werden.

Parameter:
stringstr

Der Text, für den Rendering-Informationen vorbereitet werden sollen.

anglefloat

Der Winkel, in dem der bereitgestellte Text gerendert werden soll.

flagsLoadFlags, Standard: LoadFlags.FORCE_AUTOHINT

Jede bitweise ODER-Kombination der LoadFlags.

Geändert in Version 3.10: Dies nimmt jetzt ein ft2font.LoadFlags anstelle einer int.

Gibt zurück:
np.ndarray[double]

Eine Sequenz von x,y-Glyphenpositionen in 26.6 Subpixeln; dividieren Sie durch 64 für Pixel.

property style_flags#

Stil-Flags; siehe StyleFlags.

property style_name#

Stilname.

property underline_position#

Vertikale Position der Unterstreichungsleiste.

property underline_thickness#

Dicke der Unterstreichungsleiste.

property units_per_EM#

Anzahl der Schriftarteinheiten, die das EM abdecken.

class matplotlib.ft2font.FT2Image(self: matplotlib.ft2font.FT2Image, width: float | int, height: float | int)#

Basen

Ein Bildpuffer zum Zeichnen von Glyphen.

Parameter:
width, heightint

Die Abmessungen des Bildpuffers.

draw_rect_filled(self: matplotlib.ft2font.FT2Image, x0: float | int, y0: float | int, x1: float | int, y1: float | int) None#

Zeichnet ein gefülltes Rechteck in das Bild.

Parameter:
x0, y0, x1, y1float

Die Grenzen des Rechtecks von (x0, y0) bis (x1, y1).

class matplotlib.ft2font.FaceFlags(*values)#

Basiert auf: Flag

Flags, die von FT2Font.face_flags zurückgegeben werden.

Weitere Informationen finden Sie in der FreeType-Dokumentation.

Hinzugefügt in Version 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)#

Basen

Informationen zu einer einzelnen Glyphe.

Sie können keine Instanzen dieses Objekts selbst erstellen, sondern müssen FT2Font.load_char oder FT2Font.load_glyph verwenden, um eine zu generieren. Dieses Objekt kann in einem Aufruf von FT2Font.draw_glyph_to_bitmap verwendet werden.

Weitere Informationen zu den verschiedenen Metriken finden Sie in der FreeType-Dokumentation.

property bbox#

Das Begrenzungsrechteck der Glyphe.

property height#

Die Höhe der Glyphe.

property horiAdvance#

Vorschubbreite für horizontales Layout.

property horiBearingX#

Linker Seitenabstand für horizontales Layout.

property horiBearingY#

Oberer Seitenabstand für horizontales Layout.

property linearHoriAdvance#

Die Vorschubbreite der nicht gehinterten Glyphe.

property vertAdvance#

Vorschubhöhe für vertikales Layout.

property vertBearingX#

Linker Seitenabstand für vertikales Layout.

property vertBearingY#

Oberer Seitenabstand für vertikales Layout.

property width#

Die Breite der Glyphe.

class matplotlib.ft2font.Kerning(*values)#

Basiert auf Enum

Kerning-Modi für FT2Font.get_kerning.

Weitere Informationen finden Sie in der FreeType-Dokumentation.

Hinzugefügt in Version 3.10.

DEFAULT = 0#
UNFITTED = 1#
UNSCALED = 2#
class matplotlib.ft2font.LoadFlags(*values)#

Basiert auf: Flag

Flags für FT2Font.load_char, FT2Font.load_glyph und FT2Font.set_text.

Weitere Informationen finden Sie in der FreeType-Dokumentation.

Hinzugefügt in Version 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)#

Basiert auf: Flag

Flags, die von FT2Font.style_flags zurückgegeben werden.

Weitere Informationen finden Sie in der FreeType-Dokumentation.

Hinzugefügt in Version 3.10.

BOLD = 2#
ITALIC = 1#
NORMAL = 0#