Dans PHP, la fonction ImagePolygon () est une fonction utilisée pour dessiner des polygones sur une image. Il peut aider les développeurs à générer des chiffres géométriques simples tels que les triangles, les rectangles, les pentagons, etc. Cette fonction est basée sur la bibliothèque d'images GD, alors assurez-vous que la bibliothèque GD est installée et activée sur votre serveur avant de l'utiliser.
bool imagepolygon(resource $image, array $points, int $num_points, int $color)
$ Image : Ressource d'image cible. Il est généralement créé par des fonctions telles que ImageCreateTrueColor () ou ImageCreateFromJPEG () .
$ Points : un tableau contenant toutes les coordonnées du sommet d'un polygone. Chaque point du tableau est une paire de coordonnées dans la forme [x1, y1, x2, y2, ...] .
$ num_points : le nombre de sommets d'un polygone.
$ couleur : dessine la couleur du polygone, vous pouvez obtenir la couleur via la fonction ImageColorAllocate () .
<?php
// Créer une vraie image couleur
$image = imagecreatetruecolor(200, 200);
// Attribuer des couleurs
$bg_color = imagecolorallocate($image, 255, 255, 255); // Fond blanc
$polygon_color = imagecolorallocate($image, 0, 0, 255); // Polygone bleu
// Remplissez la couleur d'arrière-plan
imagefill($image, 0, 0, $bg_color);
// Définissez les sommets d'un polygone
$points = [
50, 50,
150, 50,
150, 150,
50, 150
];
// Dessiner des polygones
imagepolygon($image, $points, 4, $polygon_color);
// Image de sortie au navigateur
header('Content-Type: image/png');
imagepng($image);
// Détruiser les ressources d'image
imagedestroy($image);
?>
Créez une image : créez une vraie image couleur de 200x200 via ImageCreateTrueColor (200, 200) .
Attribuez des couleurs : utilisez ImageColorAllocate () pour créer des couleurs d'arrière-plan et des couleurs de polygone, blanc et bleu, respectivement.
Dessinez des polygones : définissez les sommets du polygone, passez-les à la fonction ImagePolygon () et le paramètre $ Points contient le tableau de coordonnées des sommets. Ici, un quadrilatère est défini, les sommets étant (50, 50), (150, 50), (150, 150) et (50, 150).
Image de sortie : utilisez l'en-tête ('contenu-type: image / png') pour définir l'en-tête de réponse, informez le navigateur que l'image PNG est renvoyée, puis utilisez ImagePng () pour sortir l'image.
Détruisez les ressources de l'image : utilisez iMageStroy () pour libérer les ressources d'image pour éviter les fuites de mémoire.
Si vous voulez dessiner un polygone plus complexe, comme un hexagone ou un pentagone, il vous suffit d'ajuster les coordonnées du sommet. Par exemple, pour dessiner un hexagone, vous pouvez définir les coordonnées comme ceci:
$points = [
100, 20,
140, 40,
140, 80,
100, 100,
60, 80,
60, 40
];
En ajustant le réseau de points $ , vous pouvez facilement dessiner des polygones de différentes formes.
ImagePolygon () ne remplit pas automatiquement le polygone, il dessine simplement les bords du polygone. Si vous devez remplir la couleur, vous pouvez utiliser la fonction ImageFill () ou ImageFildPolygon () .
Les coordonnées du sommet d'un polygone sont définies selon le système de coordonnées de l'image. L'origine des coordonnées (0, 0) est située dans le coin supérieur gauche de l'image, la coordonnée X augmente vers la droite et la coordonnée Y augmente vers le bas.
Si vous voulez que le polygone que vous dessinez ait un effet de gradient, vous pouvez le faire en calculant la valeur de couleur du gradient. Par exemple, vous pouvez spécifier une couleur différente pour chaque sommet d'un polygone, créant des graphiques colorés.
La fonction ImagePolygon () est une fonction très pratique en PHP, adaptée pour dessiner diverses figures polygonales simples. En ajustant les coordonnées du sommet, des motifs de différentes formes peuvent être facilement créés. Combiné avec la bibliothèque d'images GD de PHP, les développeurs peuvent implémenter des fonctions de traitement d'image plus complexes. Si vous souhaitez améliorer encore l'effet de l'image, vous pouvez essayer de l'utiliser en combinaison avec d'autres fonctions GD telles que l'ajout de gradients, le remplissage des polygones, les cercles de dessin, etc.