GetGlyphOutlineA, fonction (wingdi.h)
La fonction GetGlyphOutline récupère le plan ou l’image bitmap d’un caractère de la police TrueType sélectionnée dans le contexte d’appareil spécifié.
Syntaxe
DWORD GetGlyphOutlineA(
[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 dans le contexte de l’appareil.
[in] uChar
Caractère pour lequel les données doivent être retournées.
[in] fuFormat
Format des données que la fonction récupère. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
|
La fonction récupère les données de courbe sous la forme d’une spline Bézier cubique (pas au format spline quadratique). |
|
La fonction récupère l’image bitmap du 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. Pour plus d’informations sur l’indexation de Glyphe, consultez la fonction ExtTextOut . |
|
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 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. |
|
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 les 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 l’emplacement du glyphe dans la cellule de caractères.
[in] cjBuffer
Taille, en octets, de la mémoire tampon (*lpvBuffer) où la fonction consiste à copier des informations sur le caractère de plan. 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 de plan. 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 retournée
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 plan de glyphe retourné par la fonction GetGlyphOutline est pour un glyphe monté sur grille. (Un glyphe ajusté à la grille est un glyphe qui a été modifié afin que son image bitmap soit conforme au plus près de la conception d’origine du glyphe.) Si une application a besoin d’un plan de glyphe non modifié, elle peut demander au plan de glyphe 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 .
L’image bitmap de glyphe retournée par GetGlyphOutline lorsque GGO_BITMAP est spécifiée est une bitmap monochrome alignée sur DWORD, orientée vers les lignes. Lorsque GGO_GRAY2_BITMAP est spécifié, la bitmap retournée est un tableau d’octets orienté ligne aligné sur DWORD dont les valeurs sont comprises entre 0 et 4. Lorsque GGO_GRAY4_BITMAP est spécifié, l’image bitmap retournée est un tableau d’octets orienté ligne aligné sur DWORD dont les valeurs sont comprises entre 0 et 16. Lorsque GGO_GRAY8_BITMAP est spécifié, la bitmap retournée est un tableau d’octets orienté ligne 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 plan de glyphe. Un contour de glyphe est retourné sous la forme d’une série d’un ou plusieurs contours définis par une structure TTPOLYGONHEADER 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 . Les points POINTFX sont des positions absolues, et non 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 la structure TTPOLYCURVE . La taille de chaque contour de la mémoire tampon, en octets, est stockée dans le membre cb de la structure TTPOLYGONHEADER . D’autres définitions de courbes sont regroupées dans la mémoire tampon après les courbes précédentes, et des contours supplémentaires sont regroupés dans la mémoire tampon après les contours précédents. La mémoire tampon contient autant de contours qu’il convient 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ères. L’origine de la cellule de caractères 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 la cellule de caractère. La hauteur d’une cellule de caractère, 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 cisaillement, rotation, mise à l’échelle ou toute combinaison des trois à l’aide de la multiplication matricielle.
Des informations supplémentaires sur les contours d’un glyphe se trouvent dans les spécifications techniques TrueType et OpenType.
Notes
L’en-tête wingdi.h définit GetGlyphOutline comme un 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wingdi.h (inclure Windows.h) |
Bibliothèque | Gdi32.lib |
DLL | Gdi32.dll |