ImageOpenPolygon () est une fonction dans la bibliothèque GD de PHP. Sa fonction est de dessiner des polygones avec la couleur spécifiée. Les sommets de ce polygone peuvent être passés à travers le réseau de coordonnées. La clé de la superposition d'images multicouches est de savoir comment dessiner les graphiques de plusieurs couches sur une image de différentes manières.
Pour obtenir une superposition dynamique de plusieurs couches, vous pouvez utiliser les étapes suivantes:
Créer ou ouvrir une image : vous devez d'abord avoir une image de base, ou vous pouvez également créer une nouvelle image en en créant une nouvelle.
Dessinez plusieurs couches de polygone : dessinez plusieurs polygones via ImageOpenPolygon () et superposez ces polygones sur l'image.
Effets dynamiques : pour obtenir des effets dynamiques, vous pouvez utiliser certaines fonctions de synchronisation de JavaScript ou PHP pour contrôler l'heure d'affichage ou le changement de chaque couche.
Voici un exemple simple montrant comment dessiner plusieurs couches de polygone superposées dynamiquement sur une image à l'aide d' imageOpenPolygon () .
<?php
// Créer une image vierge
$width = 800;
$height = 600;
$image = imagecreatetruecolor($width, $height);
// Définir la couleur de fond sur blanc
$backgroundColor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $backgroundColor);
// Définir la couleur
$color1 = imagecolorallocate($image, 255, 0, 0); // rouge
$color2 = imagecolorallocate($image, 0, 255, 0); // vert
$color3 = imagecolorallocate($image, 0, 0, 255); // bleu
// Définissez les coordonnées du sommet de plusieurs polygones
$polygon1 = [200, 100, 400, 100, 300, 200];
$polygon2 = [300, 200, 500, 200, 400, 300];
$polygon3 = [400, 300, 600, 300, 500, 400];
// Dessiner des polygones
imageopenpolygon($image, $polygon1, 3, $color1); // rouge
imageopenpolygon($image, $polygon2, 3, $color2); // vert
imageopenpolygon($image, $polygon3, 3, $color3); // bleu
// Image de sortie au navigateur
header('Content-Type: image/png');
imagepng($image);
// Mémoire libre
imagedestroy($image);
?>
Créez une image : Tout d'abord, utilisez ImageCreateTrueColor () pour créer une image vierge avec une largeur de 800px et une hauteur de 600px.
Définissez la couleur d'arrière-plan : utilisez ImageFill () pour remplir l'arrière-plan comme blanc.
Couleur de définition : trois couleurs sont définies à l'aide d' imageColorAllocate () , à savoir le rouge, le vert et le bleu.
Dessinez des polygones : utilisez la fonction ImageOpenPolygon () pour dessiner trois polygones de différentes couleurs, chacune avec trois sommets.
Pour obtenir des effets dynamiques, vous pouvez utiliser JavaScript pour contrôler l'affichage progressif de plusieurs couches, ou utiliser des tâches de synchronisation côté serveur pour contrôler le temps de rendu de chaque couche. Par exemple, les effets animés peuvent être réalisés en régénérant des images de temps en temps et en renvoyant différentes couches.
Voici un exemple simple montrant comment implémenter la superposition dynamique de la couche utilisant JavaScript et Ajax:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Effet de superposition dynamique</title>
<script>
let currentLayer = 1;
function updateImage() {
// Demander dynamiquement des images basées sur le numéro de couche actuel
let imgElement = document.getElementById("dynamicImage");
imgElement.src = "image.php?layer=" + currentLayer;
currentLayer = (currentLayer % 3) + 1; // Contrôler la boucle de la couche
}
setInterval(updateImage, 1000); // Mettez à jour l'image à chaque seconde
</script>
</head>
<body>
<h1>Effet de superposition dynamique</h1>
<img id="dynamicImage" src="image.php?layer=1" alt="Images superposées dynamiquement">
</body>
</html>
Grâce à la fonction ImageOpenPolygon () , PHP peut facilement implémenter les effets de superposition dynamique de plusieurs couches. En pratique, nous pouvons concevoir ces couches plus complexes et implémenter des affichages dynamiques via PHP ou JavaScript. Que ce soit dans la génération d'images ou l'affichage à effet frontal, ImageOpenPolygon () est un outil très puissant.