Partager via


GetGlyphOutlineW, fonction (wingdi.h)

La fonction GetGlyphOutline récupère le plan ou la bitmap d’un caractère dans la police TrueType sélectionnée dans le contexte d’appareil spécifié.

Syntaxe

DWORD GetGlyphOutlineW(
  [in]  HDC            hdc,
  [in]  UINT           uChar,
  [in]  UINT           fuFormat,
  [out] LPGLYPHMETRICS lpgm,
  [in]  DWORD          cjBuffer,
  [out] LPVOID         pvBuffer,
  [in]  const MAT2     *lpmat2
);

Paramètres

[in] hdc

Handle vers le contexte de l’appareil.

[in] uChar

Caractère pour lequel les données doivent être retournées.

[in] fuFormat

Format des données récupérées par la fonction. Ce paramètre peut être l’une des valeurs suivantes.

Valeur Signification
GGO_BEZIER
La fonction récupère les données de courbe sous forme de spline de Bézier cube (pas au format quadratique spline).
GGO_BITMAP
La fonction récupère la bitmap de glyphe. Pour plus d’informations sur l’allocation de mémoire, consultez la section Remarques suivante.
GGO_GLYPH_INDEX
Indique que le paramètre uChar est un index Glyphe TrueType plutôt qu’un code de caractère. Consultez la fonction ExtTextOut pour obtenir des remarques supplémentaires sur l’indexation Glyphe.
GGO_GRAY2_BITMAP
La fonction récupère une bitmap de glyphe qui contient cinq niveaux de gris.
GGO_GRAY4_BITMAP
La fonction récupère une bitmap de glyphe qui contient 17 niveaux de gris.
GGO_GRAY8_BITMAP
La fonction récupère une bitmap de glyphe qui contient 65 niveaux de gris.
GGO_METRICS
La fonction récupère uniquement la structure GLYPHMETRICS spécifiée par lpgm. Le lpvBuffer est ignoré. Cette valeur affecte la signification de la valeur de retour de la fonction en cas d’échec ; consultez la section Valeurs de retour.
GGO_NATIVE
La fonction récupère les points de données de courbe dans le format natif du rastériseur et utilise les unités de conception de la police.
GGO_UNHINTED
La fonction retourne uniquement des contours non mis en forme. Cet indicateur fonctionne uniquement conjointement avec GGO_BEZIER et GGO_NATIVE.
 

Notez que, pour les valeurs GGO_GRAYn_BITMAP, la fonction récupère une bitmap de glyphe qui contient n^2+1 (n carré plus un) niveaux de gris.

[out] lpgm

Pointeur vers la structure GLYPHMETRICS décrivant le positionnement du glyphe dans la cellule de caractère.

[in] cjBuffer

Taille, en octets, de la mémoire tampon (*lpvBuffer) où la fonction consiste à copier des informations sur le caractère hiérarchique. Si cette valeur est égale à zéro, la fonction retourne la taille requise de la mémoire tampon.

[out] pvBuffer

Pointeur vers la mémoire tampon qui reçoit des informations sur le caractère hiérarchique. Si cette valeur est NULL, la fonction retourne la taille requise de la mémoire tampon.

[in] lpmat2

Pointeur vers une structure MAT2 spécifiant une matrice de transformation pour le caractère.

Valeur de retour

Si GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP ou GGO_NATIVE est spécifié et que la fonction réussit, la valeur de retour est supérieure à zéro ; sinon, la valeur de retour est GDI_ERROR. Si l’un de ces indicateurs est spécifié et que la taille ou l’adresse de la mémoire tampon est égale à zéro, la valeur de retour spécifie la taille de mémoire tampon requise, en octets.

Si GGO_METRICS est spécifié et que la fonction échoue, la valeur de retour est GDI_ERROR.

Remarques

Le contour du glyphe retourné par la fonction GetGlyphOutline est destiné à un glyphe monté en grille. (Un glyphe monté en grille est un glyphe qui a été modifié afin que son image bitmap soit conforme aussi étroitement que possible à la conception originale du glyphe.) Si une application a besoin d’un plan glyphe non modifié, elle peut demander le contour du glyphe pour un caractère dans une police dont la taille est égale à l’unité em de la police. La valeur de l’unité em d’une police est stockée dans le membre otmEMSquare de la structure OUTLINETEXTMETRIC.

La bitmap de glyphe retournée par GetGlyphOutline lorsque GGO_BITMAP est spécifié est une bitmap monochrome alignée sur DWORD, orientée ligne. Lorsque GGO_GRAY2_BITMAP est spécifié, la bitmap retournée est un tableau orienté ligne d’octets aligné sur DWORD dont les valeurs sont comprises entre 0 et 4. Lorsque GGO_GRAY4_BITMAP est spécifié, la bitmap retournée est un tableau orienté ligne d’octets aligné sur DWORD dont les valeurs sont comprises entre 0 et 16. Lorsque GGO_GRAY8_BITMAP est spécifié, l’image bitmap retournée est un tableau orienté ligne d’octets aligné sur DWORD dont les valeurs sont comprises entre 0 et 64.

La mémoire tampon native retournée par GetGlyphOutline lorsque GGO_NATIVE est spécifié est un contour de glyphe. Un contour de glyphe est retourné sous la forme d’une série d’un ou plusieurs contours définis par un TTPOLYGONHEADER structure suivie d’une ou plusieurs courbes. Chaque courbe du contour est définie par une structure TTPOLYCURVE suivie d’un certain nombre de points de données POINTFX . POINTFX points sont des positions absolues, pas des mouvements relatifs. Le point de départ d’un contour est donné par le membre pfxStart de la structure TTPOLYGONHEADER. Le point de départ de chaque courbe est le dernier point de la courbe précédente ou le point de départ du contour. Le nombre de points de données dans une courbe est stocké dans le membre cpfx de structure TTPOLYCURVE. La taille de chaque contour dans la mémoire tampon, en octets, est stockée dans le membre cb de structure TTPOLYGONHEADER. Des définitions de courbes supplémentaires sont regroupées dans la mémoire tampon en suivant les courbes précédentes et des contours supplémentaires sont empaquetés dans la mémoire tampon en suivant les contours précédents. La mémoire tampon contient autant de contours que dans la mémoire tampon retournée par GetGlyphOutline.

La structure GLYPHMETRICS spécifie la largeur de la cellule de caractère et l’emplacement d’un glyphe dans la cellule de caractère. L’origine de la cellule de caractère se trouve à gauche de la cellule au niveau de la ligne de base de la police. L’emplacement de l’origine du glyphe est relatif à l’origine de cellule de caractère. La hauteur d’une cellule de caractère, de la ligne de base et d’autres métriques globales à la police sont données par la structure OUTLINETEXTMETRIC .

Une application peut modifier les caractères récupérés au format bitmap ou natif en spécifiant une matrice de transformation 2 par 2 dans le paramètre lpMatrix. Par exemple, le glyphe peut être modifié par le shérif, la rotation, la mise à l’échelle ou toute combinaison des trois à l’aide de la multiplication de matrice.

Des informations supplémentaires sur les contours de glyphe se trouvent dans les spécifications techniques TrueType et OpenType.

Note

L’en-tête wingdi.h définit GetGlyphOutline comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête wingdi.h (include Windows.h)
bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

ExtTextOut

FORM_INFO_1

fonctions de police et de texte

Vue d’ensemble des polices et du texte

GLYPHMETRICS

GetOutlineTextMetrics

MAT2

OUTLINETEXTMETRIC

POINT

POINTFX

TTPOLYCURVE

TTPOLYGONHEADER