GetGlyphOutlineA-Funktion (wingdi.h)
Die GetGlyphOutline-Funktion ruft die Gliederung oder Bitmap für ein Zeichen in der TrueType-Schriftart ab, die im angegebenen Gerätekontext ausgewählt ist.
Syntax
DWORD GetGlyphOutlineA(
[in] HDC hdc,
[in] UINT uChar,
[in] UINT fuFormat,
[out] LPGLYPHMETRICS lpgm,
[in] DWORD cjBuffer,
[out] LPVOID pvBuffer,
[in] const MAT2 *lpmat2
);
Parameter
[in] hdc
Ein Handle für den Gerätekontext.
[in] uChar
Das Zeichen, für das Daten zurückgegeben werden sollen.
[in] fuFormat
Das Format der Daten, die die Funktion abruft. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Die Funktion ruft die Kurvendaten als kubische Bézier-Spline ab (nicht im quadratischen Splineformat). |
|
Die Funktion ruft die Glyphenbitbit ab. Informationen zur Speicherbelegung finden Sie im folgenden Abschnitt hinweise. |
|
Gibt an, dass der uChar-Parameter ein TrueType-Glyphenindex und kein Zeichencode ist. Weitere Hinweise zur Glyphenindizierung finden Sie in der ExtTextOut-Funktion . |
|
Die Funktion ruft eine Glyphenbitbit ab, die fünf Graustufen enthält. |
|
Die Funktion ruft eine Glyphenbitbit ab, die 17 Graustufen enthält. |
|
Die Funktion ruft eine Glyphenbitbit ab, die 65 Graustufen enthält. |
|
Die Funktion ruft nur die von lpgm angegebene GLYPHMETRICS-Struktur ab. Der lpvBuffer wird ignoriert. Dieser Wert wirkt sich bei einem Fehler auf die Bedeutung des Rückgabewerts der Funktion aus. Weitere Informationen finden Sie im Abschnitt Rückgabewerte. |
|
Die Funktion ruft die Kurvendatenpunkte im nativen Format des Rasterizers ab und verwendet die Entwurfseinheiten der Schriftart. |
|
Die Funktion gibt nur nicht gezeichnete Gliederungen zurück. Dieses Flag funktioniert nur in Verbindung mit GGO_BEZIER und GGO_NATIVE. |
Beachten Sie, dass die Funktion für die GGO_GRAYn_BITMAP-Werte eine Glyphe-Bitmap abruft, die n^2+1 (n quadratisch plus eins) Graustufen enthält.
[out] lpgm
Ein Zeiger auf die GLYPHMETRICS-Struktur , die die Platzierung der Glyphe in der Zeichenzelle beschreibt.
[in] cjBuffer
Die Größe des Puffers (*lpvBuffer) in Bytes, in dem die Funktion zum Kopieren von Informationen über das Gliederungszeichen dient. Wenn dieser Wert 0 ist, gibt die Funktion die erforderliche Größe des Puffers zurück.
[out] pvBuffer
Ein Zeiger auf den Puffer, der Informationen zum Gliederungszeichen empfängt. Wenn dieser Wert NULL ist, gibt die Funktion die erforderliche Größe des Puffers zurück.
[in] lpmat2
Ein Zeiger auf eine MAT2-Struktur , die eine Transformationsmatrix für das Zeichen angibt.
Rückgabewert
Wenn GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP oder GGO_NATIVE angegeben ist und die Funktion erfolgreich ist, ist der Rückgabewert größer als 0 (null). Andernfalls ist der Rückgabewert GDI_ERROR. Wenn eines dieser Flags angegeben ist und die Puffergröße oder -adresse null ist, gibt der Rückgabewert die erforderliche Puffergröße in Byte an.
Wenn GGO_METRICS angegeben ist und die Funktion fehlschlägt, wird der Rückgabewert GDI_ERROR.
Hinweise
Die Glyphenkontur, die von der GetGlyphOutline-Funktion zurückgegeben wird, gilt für eine mit dem Raster angepasste Glyphe. (Eine mit einem Raster versehene Glyphe ist eine Glyphe, die so geändert wurde, dass ihr Bitmapbild so gut wie möglich dem ursprünglichen Entwurf der Glyphe entspricht.) Wenn eine Anwendung eine unveränderte Glyphengliederung benötigt, kann sie die Glyphengliederung für ein Zeichen in einer Schriftart anfordern, deren Größe der Em-Einheit der Schriftart entspricht. Der Wert für die Em-Einheit einer Schriftart wird im otmEMSquare-Element der OUTLINETEXTMETRIC-Struktur gespeichert.
Die Glyphenbitbit, die von GetGlyphOutline zurückgegeben wird, wenn GGO_BITMAP angegeben wird, ist eine DWORD-ausgerichtete, zeilenorientierte, monochrome Bitmap. Wenn GGO_GRAY2_BITMAP angegeben wird, ist die zurückgegebene Bitmap ein zeilenorientiertes Bytearray mit DWORD-Ausrichtung, dessen Werte von 0 bis 4 liegen. Wenn GGO_GRAY4_BITMAP angegeben wird, ist die zurückgegebene Bitmap ein zeilenorientiertes Array von Bytes mit DWORD-Ausrichtung, deren Werte von 0 bis 16 liegen. Wenn GGO_GRAY8_BITMAP angegeben wird, handelt es sich bei der zurückgegebenen Bitmap um ein zeilenorientiertes Array von Bytes mit DWORD-Ausrichtung, dessen Werte von 0 bis 64 liegen.
Der native Puffer, der von GetGlyphOutline zurückgegeben wird, wenn GGO_NATIVE angegeben wird, ist eine Glyphengliederung. Eine Glyphenkontur wird als Reihe von einer oder mehreren Konturen zurückgegeben, die von einer TTPOLYGONHEADER-Struktur gefolgt von einer oder mehreren Kurven definiert werden. Jede Kurve in der Kontur wird durch eine TTPOLYCURVE-Struktur gefolgt von einer Reihe von POINTFX-Datenpunkten definiert. POINTFX-Punkte sind absolute Positionen, keine relativen Verschiebungen. Der Ausgangspunkt einer Kontur wird vom pfxStart-Element der TTPOLYGONHEADER-Struktur angegeben. Der Ausgangspunkt jeder Kurve ist der letzte Punkt der vorherigen Kurve oder der Startpunkt der Kontur. Die Anzahl der Datenpunkte in einer Kurve wird im cpfx-Element der TTPOLYCURVE-Struktur gespeichert. Die Größe der einzelnen Konturen im Puffer in Bytes wird im cb-Element der TTPOLYGONHEADER-Struktur gespeichert. Zusätzliche Kurvendefinitionen werden nach vorangehenden Kurven in den Puffer gepackt, und zusätzliche Konturen werden nach vorangehenden Konturen in den Puffer gepackt. Der Puffer enthält so viele Konturen, wie in den von GetGlyphOutline zurückgegebenen Puffer passen.
Die GLYPHMETRICS-Struktur gibt die Breite der Zeichenzelle und die Position einer Glyphe innerhalb der Zeichenzelle an. Der Ursprung der Zeichenzelle befindet sich auf der linken Seite der Zelle an der Grundlinie der Schriftart. Die Position des Glyphenursprungs ist relativ zum Ursprung der Zeichenzelle. Die Höhe einer Zeichenzelle, die Baseline und andere globale Metriken für die Schriftart werden von der OUTLINETEXTMETRIC-Struktur angegeben.
Eine Anwendung kann die im Bitmap- oder nativen Format abgerufenen Zeichen ändern, indem sie im lpMatrix-Parameter eine 2-mal-2-Transformationsmatrix angibt. Beispielsweise kann die Glyphe durch Scheren, Drehung, Skalierung oder eine beliebige Kombination der drei mithilfe der Matrixmultiplikation geändert werden.
Weitere Informationen zu einer Glyphengliederung finden Sie in den technischen Spezifikationen von TrueType und OpenType.
Hinweis
Der wingdi.h-Header definiert GetGlyphOutline als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wingdi.h (windows.h einschließen) |
Bibliothek | Gdi32.lib |
DLL | Gdi32.dll |
Weitere Informationen
Schriftart- und Textfunktionen