gdImageStringFTEx |
Chaîne de caractères d'image |
---|---|
LibGD |
Syntaxe
char *gdImageStringFTEx(gdImagePtr im, int *brect, int fg, const char *fontlist, double ptsize, double angle, int x, int y, const char *string, gdFTStringExtraPtr strex); |
Description
Cette fonction permet d'afficher une chaîne de caractères en TrueType avec des options avancées.
Remarques
gdImageStringFTEx étend les capacités de gdImageStringFT en fournissant un moyen de transmettre des paramètres supplémentaires.
Si le paramètre strex n'est pas nul, il doit pointer vers une structure gdFTStringExtra. Depuis gd 2.0.5, cette structure est définie comme suit :
- typedef struct {
- /* OU logique des valeurs gdFTEX_ */
- int flags;
-
- /* affiner l'espacement des lignes pour '\n' */
- double linespacing;
-
- /* Cartographie de caractères préféré */
- int charmap;
-
- /* Résolution de rendu */
- int hdpi;
- int vdpi;
- char *xshow;
- char *fontpath;
- } gdFTStringExtra, *gdFTStringExtraPtr;
Pour générer un texte multiligne avec un espacement de ligne spécifique, incluez gdFTEX_LINESPACE dans le paramètre des indicateurs :
- flags |= gdFTEX_LINESPACE;
Et définissez également l'espacement des lignes sur l'espacement souhaité, exprimé sous la forme d'un multiple de la hauteur de la police de caractères. Ainsi, un espacement de ligne de 1,0 est le minimum pour garantir que les lignes de texte n'entrent pas en collision.
Si gdFTEX_LINESPACE n'est pas présent, ou si strex est nul, ou si gdImageStringFT est appelé, l'espacement des lignes par défaut est de 1,05.
Pour spécifier une préférence pour l'encodage de caractères Unicode, Shift_JIS Big5, définissez ou Pour générer un texte multiligne avec un espacement de ligne spécifique, incluez gdFTEX_CHARMAP dans le paramètre des indicateurs :
- flags |= gdFTEX_CHARMAP;
Et définissez charmap sur la valeur souhaitée, pouvant être gdFTEX_Unicode, gdFTEX_Shift_JIS, gdFTEX_Big5 ou gdFTEX_Adobe_Custom. Si vous ne spécifiez pas de préférence, Unicode sera essayé en premier. Si la cartographie de caractères préféré n'est pas trouvé dans la police de caractères, d'autres cartographies de caractères sont tentés.
GD fonctionne sur l'hypothèse que l'image de sortie sera rendue sur un écran d'ordinateur. Par défaut, gd transmet une résolution de 96 dpi au moteur de rendu de texte freetype. Cela influence les décisions de «suggestion» prises par le moteur de rendu. Pour spécifier une résolution différente, définissez hdpi et vdpi en conséquence (en points par pouce) et ajoutez gdFTEX_RESOLUTION aux indicateurs :
- flags | gdFTEX_RESOLUTION;
GD 2.0.29 et les versions ultérieures tenteront normalement d'appliquer des tables de crénage, si fontconfig est disponible, pour ajuster les positions relatives des caractères consécutifs de manière plus idéale pour cette paire de caractères. Cela peut être désactivé en spécifiant l'indicateur gdFTEX_DISABLE_KERNING :
- flags | gdFTEX_DISABLE_KERNING;
GD 2.0.29 et les versions ultérieures peuvent renvoyer un vecteur d'avancement de position de caractère individuel, ce qui est parfois utile dans les applications devant savoir exactement où commence chaque caractère. Ceci est renvoyé dans l'élément xshow de la structure gdFTStringExtra si l'indicateur gdFTEX_XSHOW est défini :
- flags | gdFTEX_XSHOW;
L'appelant est responsable de l'appel de gdFree() sur l'élément xshow après l'appel si gdFTEX_XSHOW est défini.
GD 2.0.29 et versions ultérieures peuvent également renvoyer le chemin d'accès au fichier de police réellement utilisé si l'indicateur gdFTEX_RETURNFONTPATHNAME est défini. Ceci est utile car GD 2.0.29 et versions ultérieures sont capables de sélectionner automatiquement une police en fonction d'un modèle de police de caractères fontconfig lorsque fontconfig est disponible. Ces informations sont renvoyées dans l'élément fontpath de la structure gdFTStringExtra.
- flags | gdFTEX_RETURNFONTPATHNAME;
L'appelant est responsable de l'appel de gdFree() sur l'élément fontpath après l'appel si gdFTEX_RETURNFONTPATHNAME est défini.
GD 2.0.29 et versions ultérieures peuvent utiliser fontconfig pour résoudre les noms de polices de caractères, y compris les modèles fontconfig, si l'indicateur gdFTEX_FONTCONFIG est défini. Pour plus de commodité, ce comportement peut être défini par défaut en appelant gdFTUseFontConfig avec une valeur différente de zéro. Dans cette situation, il n'est pas nécessaire de définir l'indicateur gdFTEX_FONTCONFIG à chaque appel ; cependant, des noms de chemin de police de caractères explicites peuvent toujours être utilisés si l'indicateur gdFTEX_FONTPATHNAME est défini :
- flags | gdFTEX_FONTPATHNAME;
À moins que gdFTUseFontConfig n'ait été appelé avec une valeur différente de zéro, GD 2.0.29 et les versions ultérieures s'attendront toujours à ce que le paramètre fontlist des fonctions de sortie de texte freetype soit un nom de fichier de police de caractères ou une liste de ceux-ci comme dans les versions précédentes. Si vous ne souhaitez pas faire de fontconfig la valeur par défaut, il est toujours possible de forcer l'utilisation de fontconfig pour un seul appel aux fonctions de sortie de texte freetype en définissant l'indicateur gdFTEX_FONTCONFIG :
- flags | gdFTEX_FONTCONFIG;
GD 2.0.29 et les versions ultérieures peuvent utiliser fontconfig pour résoudre les noms de polices de caractères, y compris les modèles fontconfig, si l'indicateur gdFTEX_FONTCONFIG est défini. Pour plus de commodité, ce comportement peut être défini par défaut en appelant gdFTUseFontConfig avec une valeur différente de zéro. Dans cette situation, il n'est pas nécessaire de définir l'indicateur gdFTEX_FONTCONFIG à chaque appel ; cependant, des noms de chemin de police de caractères explicites peuvent toujours être utilisés si l'indicateur gdFTEX_FONTPATHNAME est défini :
- flags | gdFTEX_FONTPATHNAME;
Pour plus d'informations, voir gdImageStringFT.