Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction ImageOpenPolygon () de PHP pour réaliser une division précise des zones de hotspot d'image?

Comment utiliser la fonction ImageOpenPolygon () de PHP pour réaliser une division précise des zones de hotspot d'image?

M66 2025-07-08

Dans le développement Web, la division des zones d'image des hotspot est une exigence commune, en particulier dans les images, cartes ou jeux interactifs. L'interaction utilisateur avec les images nécessite de diviser différentes zones en points chauds cliquables. PHP fournit de nombreuses fonctions de traitement d'image, et la fonction ImageOpenPolygon () peut nous aider à implémenter cette fonction.

Quelle est la fonction ImageOpenPolygon () ?

La fonction ImageOpenPolygon () de PHP n'est pas une fonction de bibliothèque GD standard, il ne se trouve donc généralement pas dans la documentation de PHP. Cependant, de nombreux développeurs PHP peuvent utiliser des extensions ou des implémentations personnalisées pour remplir les polygones des graphiques et diviser les zones de hotspot.

Afin de diviser les zones de hotspot d'un polygone, nous devons généralement déterminer une zone spécifique en réglant les coordonnées du sommet du polygone. Cette fonction peut être appliquée pour déclencher différents événements ou sauts lorsque l'utilisateur doit cliquer sur une zone spécifique.

Étapes de base pour implémenter la division de la zone hotspot en utilisant PHP

  1. Chargement des images <br> Utilisez des fonctions telles que ImageCreateFromJPEG () ou ImageCreateFrommpng () pour charger l'image cible.

     $image = imagecreatefromjpeg('image.jpg');
    
  2. Définissez les coordonnées du sommet d'un polygone <br> Nous devons définir un polygone pour la zone de hotspot. Les coordonnées du sommet du polygone peuvent être représentées par un tableau. Par exemple, les coordonnées du sommet d'un quadrilatère peuvent être:

     $points = [
        50, 50,  // indiquer1
        150, 50, // indiquer2
        150, 150,// indiquer3
        50, 150  // indiquer4
    ];
    
  3. Dessiner des points chauds du polygone <br> Utilisez la fonction ImageFildPolygon () pour dessiner le polygone dans l'image et définir une couleur spécifique. ImageFildPolygon () dessine des polygones avec des couleurs de remplissage sur l'image.

     $color = imagecolorallocate($image, 255, 0, 0);  // rouge
    imagefilledpolygon($image, $points, count($points) / 2, $color);
    
  4. Obtenez des points chauds et interagissez <br> Après avoir généré l'image, nous pouvons utiliser la carte d'image (ImageMap) pour définir l'interaction de ces zones de points chauds. En mappant des zones polygonales à l'URL correspondante, l'utilisateur sautera vers la page correspondante lors de la cliquetis sur une zone spécifique.

    S'il s'agit d'une image interactive, elle nécessite généralement la combinaison de JavaScript et HTML, et PHP n'est responsable que du traitement et de la génération des parties d'image. Par exemple:

     <img src="image.php" usemap="#hotspot" />
    <map name="hotspot">
        <area shape="poly" coords="50,50,150,50,150,150,50,150" href="http://m66.net/target-page1" />
    </map>
    

Exemple de code: générer une image avec des points chauds

 <?php
// Créer une image
$image = imagecreatefromjpeg('image.jpg');

// 定义多边形的顶indiquer
$points = [
    50, 50,  // indiquer1
    150, 50, // indiquer2
    150, 150,// indiquer3
    50, 150  // indiquer4
];

// Régler la couleur
$color = imagecolorallocate($image, 255, 0, 0);  // rouge

// Dessiner des polygones
imagefilledpolygon($image, $points, count($points) / 2, $color);

// Image de sortie
header('Content-Type: image/jpeg');
imagejpeg($image);

// Détruiser les ressources d&#39;image
imagedestroy($image);
?>

Le code ci-dessus générera une image contenant la zone de hotspot et la sortira au format JPEG. Si vous souhaitez utiliser ces points chauds dans une page Web, vous pouvez utiliser le mappage d'images HTML ( <map> tags) pour les opérations interactives.

Choses à noter

  • COORDIONNES DE VERTEX POLYGON : Assurez-vous que les coordonnées que vous passez sont correctes et correspondent à la taille de l'image. Sinon, la zone de hotspot peut ne pas être affichée correctement.

  • Format d'image : différents formats d'image (JPEG, PNG, etc.) peuvent être utilisés en conséquence, et des fonctions telles que ImageCreateFrommpng () ou ImageJPEG () , etc. peuvent être ajustées en conséquence.

  • Interaction : Si des interactions plus complexes sont nécessaires, telles que le traitement dynamiquement des points chauds en fonction des emplacements de clics, il est recommandé de combiner les technologies frontales (telles que JavaScript) pour améliorer l'expérience utilisateur.

en conclusion

PHP fournit une variété de fonctions de traitement d'image qui peuvent aider les développeurs à traiter avec flexible les points chauds dans les images. Lorsqu'ils sont utilisés en conjonction avec la fonction ImageFildPolygon () , les développeurs peuvent diviser avec précision différentes zones de l'image pour obtenir une conception interactive plus détaillée. Pour les scènes où les images doivent être générées dynamiquement et répondre aux clics utilisateur, PHP, en conjonction avec HTML et JavaScript, peut facilement atteindre des fonctions d'interaction d'images riches.