Position actuelle: Accueil> Derniers articles> Explication détaillée et exemples du paramètre de la fonction ImageOpenPolygon ()

Explication détaillée et exemples du paramètre de la fonction ImageOpenPolygon ()

M66 2025-05-29

Dans la bibliothèque de traitement graphique GD de PHP, ImageOpenPolygon () est une fonction très pratique qui permet aux développeurs de dessiner un polygone "ouvert" sur une ressource d'image, c'est-à-dire qu'il ne connecte pas automatiquement le dernier point du polygone au premier point. Ceci est différent de la fonction ImagePolygon () (qui entourera le chemin). Ensuite, nous en apprendre davantage sur les paramètres, l'utilisation et les exemples d'application pratiques de ImageOpenPolygon () .

Définition de la fonction

 bool imageopenpolygon(
    GdImage $image,
    array $points,
    int $num_points,
    int $color
)

Remarque: ImageOpenPolygon () nécessite PHP 8.0.0 et supérieur et est pris en charge par la bibliothèque GD.

Description du paramètre

  • image
    Type: gdimage
    Description: Ressource d'image cible, généralement créée par des fonctions telles que ImageCreateTrueColor () ou ImageCreate () .

  • points
    Type: tableau
    Description: Un tableau unidimensionnel contenant des coordonnées de sommet, le tableau doit être organisé dans l'ordre des paires (x, y). Par exemple [x1, y1, x2, y2, x3, y3, ...] .

  • num_point
    Type: int
    Description: Nombre de sommets, pas le nombre d'éléments de tableau (le nombre d'éléments est le double du nombre de sommets).

  • couleur
    Type: int
    Description: La couleur utilisée pour tracer les lignes de polygone. Obtenez-le via la fonction ImageColorAllocate () .

Exemples d'utilisation de base

Créons un simple script PHP pour dessiner un triangle ouvert sur une image:

 <?php
// Créer un 200x200 Toile vide
$image = imagecreatetruecolor(200, 200);

// Attribuer des couleurs
$white = imagecolorallocate($image, 255, 255, 255);
$blue = imagecolorallocate($image, 0, 0, 255);

// Fond rempli de blanc
imagefill($image, 0, 0, $white);

// Définissez les trois sommets d&#39;un triangle
$points = [
    50, 50,  // sommet1 (x1, y1)
    150, 50, // sommet2 (x2, y2)
    100, 150 // sommet3 (x3, y3)
];

// Dessiner un triangle ouvert
imageopenpolygon($image, $points, 3, $blue);

// Image de sortie au navigateur
header('Content-Type: image/png');
imagepng($image);

// Détruire les ressources
imagedestroy($image);
?>

Lorsque vous exécutez le code ci-dessus dans le navigateur, vous verrez un triangle ouvert bleu avec son bord inférieur non fermé automatiquement.

Exemples de scénarios d'application pratiques

ImageOpenPolygon () est très utile lorsque vous développez un éditeur d'image qui permet aux utilisateurs de dessiner manuellement des graphismes personnalisés, et les utilisateurs souhaitent dessiner des "routes" au lieu de "graphiques fermés".

Par exemple, dans une application MAP, un utilisateur peut dessiner un chemin de polyligne non éclairé pour représenter l'itinéraire:

 <?php
$image = imagecreatetruecolor(600, 400);
$background = imagecolorallocate($image, 240, 240, 240);
$pathColor = imagecolorallocate($image, 255, 0, 0);

imagefill($image, 0, 0, $background);

// Supposons que le chemin tracé par l&#39;utilisateur
$routePoints = [
    50, 100,
    200, 80,
    300, 150,
    450, 120
];

// Tracez l&#39;itinéraire d&#39;ouverture
imageopenpolygon($image, $routePoints, 4, $pathColor);

// Enregistrer sur le serveur
imagepng($image, '/var/www/m66.net/uploads/path_example.png');

// Nettoyer
imagedestroy($image);

echo "Feuille de route sauvée,Afficher l&#39;adresse:https://m66.net/uploads/path_example.png";
?>

Dans cet exemple, le système générera une image avec une route rouge et l'enregistrera dans le répertoire du serveur de m66.net .

Choses à noter

  • L'ordre des points est très important et le mauvais ordre des points peut conduire à des chemins inattendus.

  • Le nombre d'éléments du tableau de points doit être num_points * 2 , sinon un avertissement peut être lancé.

  • ImageOpenPolygon () ne connectera pas automatiquement les points de tête et de queue. Si vous devez fermer, veuillez utiliser ImagePolygon () .

Résumer

ImageOpenPolygon () convient au dessin de chemins de polygone non clos, tels que la planification du chemin, la trajectoire dynamique, les modèles non fermés et d'autres scénarios. La maîtriser peut rendre votre processeur graphique PHP plus flexible et polyvalent.

Si vous développez une application Web qui a besoin de dessin, n'oubliez pas de l'utiliser de manière flexible pour faire passer l'expérience utilisateur au niveau supérieur!