Dans l'article précédent, nous nous sommes concentrés sur les images chargées et manipulées avec PHP. Nous avons appris à faire pivoter, redimensionner, redimensionner ou retourner une image. Nous avons également découvert différents filtres et la matrice de convolution. Ces tutoriels couvrent également certaines utilisations pratiques de la bibliothèque GD, telles que le redimensionnement de toutes les images d'un répertoire ou l'ajout de filigranes à plusieurs images à la fois.
En plus d’utiliser GD pour manipuler des images ordinaires, nous pouvons également créer nos propres à partir de rien. Différentes fonctions de la bibliothèque peuvent être utilisées pour dessiner des formes de base telles que des ellipses, des cercles, des rectangles, des polygones et des lignes simples. Avec quelques maths, ces formes peuvent créer de beaux motifs. Il existe également des fonctions disponibles pour dessiner du texte sur l'image rendue, ce qui ouvre beaucoup de possibilités.
Ce tutoriel va vous apprendre à dessiner des formes de base en PHP et à restituer du texte en utilisant votre police préférée..
Nous étudierons les formes de base dans cette section, puis couvrirons l’épaisseur de ligne, les pinceaux et les styles de ligne plus tard..
Vous pouvez tracer une simple ligne droite entre deux points donnés en utilisant le imageline ($ image, $ x1, $ y1, $ x2, $ y2, $ couleur)
une fonction. le $ image
paramètre est une ressource image qui aura été créée précédemment à l'aide de fonctions telles que imagecreatetruecolor ()
ou imagecreatefromjpeg ()
. Nous allons utiliser imagecreatetruecolor ()
tout au long de ce tutoriel pour créer de nouvelles images à partir de zéro. La fonction va tracer une ligne horizontale si $ y1
est égal à $ y2
. De même, il va tracer une ligne verticale si $ x1
est égal à $ x2
.
La fonction imagearc ($ image, $ cx, $ cy, $ largeur, $ hauteur, $ début, $ fin, $ couleur)
peut dessiner des arcs de cercle en utilisant $ cx
et $ cy
comme son centre. le $ largeur
et $ hauteur
les paramètres déterminent la taille de l'arc sur différents axes. le $ start
et $ end
les paramètres spécifient l'angle de début et de fin de l'arc en degrés. Si vous voulez dessiner des arcs complets de 0 à 360 degrés, vous pouvez utiliser l’alternative imageellipse ($ image, $ cx, $ cy, $ largeur, $ hauteur, $ couleur)
une fonction.
Vous pouvez dessiner des rectangles sur une image à l’aide des touches imagerectangle ($ image, $ x1, $ y1, $ x2, $ y2, $ couleur)
une fonction. le $ x1
et $ y1
les valeurs déterminent le coin supérieur gauche du rectangle. le $ x2
et $ y2
les valeurs déterminent le coin en bas à droite. Il y a aussi un imagepolygon ($ image, $ points, $ num_points, $ couleur)
fonction, qui peut créer un polygone avec un nombre quelconque de côtés ou de points. le $ points
paramètre est un tableau où deux éléments sont appariés pour obtenir les coordonnées d'un point spécifique.
Une autre fonction appelée imageopenpolygon ()
a été ajouté à PHP 7, ce qui ne trace pas de ligne entre le premier et le dernier point.
Dans l'exemple suivant, nous avons utilisé toutes ces fonctions pour créer un dessin avec une hutte, le soleil et le sol..
La chose importante ici est simplement de déterminer la valeur de différentes coordonnées. Je voulais tout dessiner par rapport à la taille de l’image d’origine, j’ai donc utilisé le $ img_height
et $ img_width
variables pour calculer les coordonnées de différents points.
L'image ci-dessus présente quelques problèmes tels que des lignes très fines et aucune coloration. Tous ces problèmes peuvent être facilement résolus à l’aide de fonctions telles que imagesetthickness ()
et imagefilledrectangle ()
.
le imagesetthickness ($ image, $ épaisseur)
fonction définit l’épaisseur des lignes rendues lors du dessin de rectangles, de polygones, d’arcs, etc. $ épaisseur
à 5 fera toute figure dessinée en utilisant imagerectangle ()
, imagearc ()
, imagepolygon ()
, etc. 5 pixels d'épaisseur.
Chaque fonction de dessin a également une version couleur remplie qui remplit cette figure avec une couleur donnée. Par exemple, imagefilledrectangle ()
remplira le rectangle dessiné avec la couleur donnée.
Une fonction très utile de GD est imagesetbrush ($ image, $ brush)
. le $ brosse
paramètre dans cette fonction est juste une autre ressource d’image qui peut être utilisée pour dessiner des lignes. Par exemple, vous pouvez utiliser un dessin vectoriel transparent d’une fleur comme pinceau pour ajouter de jolis motifs de fleurs à votre image. L'extrait de code donné ci-dessous a été écrit pour utiliser l'image d'un nuage comme pinceau lors du tracé d'un point. Cela ajoute un seul nuage dans notre ciel.
J'ai trouvé cette image de nuage sur Pixabay et l'ai réduite à une taille appropriée pour notre projet..
Le code complet de l'image de la cabane est donné ci-dessous. Nous avons simplement ajouté deux versions de chaque figure, une pour dessiner le contour et l'autre pour remplir la couleur.
Ceci est le résultat final du code PHP GD ci-dessus.
PHP GD est livré avec quatre fonctions différentes pour vous permettre de restituer plusieurs caractères ou un seul caractère dans une direction horizontale ou verticale. Ces fonctions sont imagechar ()
, imagecharup ()
, imagestring ()
, et imagestringup ()
. Tous acceptent les six mêmes paramètres, nous allons donc discuter de la imagechar ()
fonctionner ici.
le $ font
paramètre imagechar ($ image, $ police, $ x, $ y, $ chaîne, $ couleur)
fonction est simplement la taille du texte rendu. Il accepte uniquement les valeurs entières de 1 à 5. $ chaîne
paramètre est le texte que vous voulez rendre. Si vous transmettez une chaîne de plusieurs caractères aux fonctions char, seul le premier caractère sera rendu sur l'image. le imagecharup ()
et imagestringup ()
les fonctions rendront le texte verticalement de bas en haut.
En ce qui concerne le rendu du texte, les quatre fonctions décrites précédemment sont très limitées. Vous constaterez que même la plus grande valeur de taille de police est trop petite pour une utilisation normale. De plus, le texte ne peut être écrit qu'horizontalement et verticalement.
Heureusement, GD a aussi un imagettftext ($ image, $ taille, $ angle, $ x, $ y, $ couleur, $ fichier de fontes, $ texte)
fonction qui peut rendre le texte dans la police de votre choix. le $ fontfile
paramètre est utilisé pour spécifier le chemin d'accès à la police TrueType que vous souhaitez utiliser pour afficher le texte. le $ x
et $ y
les paramètres déterminent la position de départ du texte rendu.
L'exemple suivant utilise toutes ces fonctions pour créer de jolis effets de texte..
Comme vous pouvez le constater, nous avons rendu le même texte avec la même police dans des positions légèrement différentes pour créer des effets similaires à l’ombre du texte. Il est important de garder à l'esprit que le texte rendu par n'importe quelle fonction masquera complètement le texte situé en dessous en cas de chevauchement. Voici l'image finale obtenue après l'exécution du code ci-dessus.
Le but de ce tutoriel était de vous familiariser avec différentes fonctions de GD pour dessiner des formes de base à partir de zéro en PHP. À l’aide d’un peu de maths, vous pourrez utiliser ces fonctions pour créer des formes plus complexes telles que des polygones réguliers, des rectangles arrondis, etc..
PHP GD propose également quelques fonctions très utiles pour le rendu du texte sur une image. L'utilisation d'une belle police permet de s'assurer que le texte rendu n'a pas l'air bizarre lorsqu'il est placé sur des images standard chargées à partir de différents chemins d'accès..
Avez-vous créé d'autres effets de texte sophistiqués en PHP? S'il vous plaît partagez-les avec nous dans les commentaires.