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 |
---|---|
|
La fonction récupère les données de courbe sous forme de spline de Bézier cube (pas au format quadratique spline). |
|
La fonction récupère la bitmap de glyphe. Pour plus d’informations sur l’allocation de mémoire, consultez la section Remarques suivante. |
|
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. |
|
La fonction récupère une bitmap de glyphe qui contient cinq niveaux de gris. |
|
La fonction récupère une bitmap de glyphe qui contient 17 niveaux de gris. |
|
La fonction récupère une bitmap de glyphe qui contient 65 niveaux de gris. |
|
La fonction récupère uniquement la structure GLYPHMETRICS spécifiée par lpgm. Le lpvBuffer |
|
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. |
|
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
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
fonctions de police et de texte