Dans le domaine du traitement des images, les compétences de dessin des images transparentes sont très importantes, en particulier lorsque vous devez implémenter des effets complexes de superposition graphique polygonale. En tant que langage de programmation côté serveur populaire, PHP fournit certaines fonctions de traitement d'image intégrées. ImageOpenPolygon () est l'une des fonctions qui peuvent être utilisées pour dessiner des polygones. Cet article présentera comment utiliser la fonction ImageOpenPolygon () et comment combiner un arrière-plan transparent pour obtenir un effet de superposition transparent des polygones.
Dans PHP, la fonction ImageOpenPolygon () est principalement utilisée pour dessiner un polygone fermé. Il faut un tableau de points et les relie avec des lignes droites pour former un polygone. Cependant, par défaut, les polygones dessinés par PHP ne sont pas transparents. Pour atteindre la transparence, nous devons utiliser des formats d'image qui prennent en charge la transparence (comme PNG) et effectuer une configuration supplémentaire.
Tout d'abord, nous devons créer une image qui prend en charge la transparence. En PHP, vous pouvez créer une vraie toile de couleur via la fonction ImageCreateTrueColor () et définir un arrière-plan transparent. Le code est le suivant:
<?php
// Créer un 500x500 Image d'arrière-plan transparente
$image = imagecreatetruecolor(500, 500);
// Activer le support transparent
imagesavealpha($image, true);
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127); // 127 Être complètement transparent
imagefill($image, 0, 0, $transparent);
// Image de sortie
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
Dans le code ci-dessus, ImageCreateTrueColor () crée une toile de 500x500 pixels, ImagesVealpha () permet des canaux transparents pour l'image et définit des couleurs transparentes via ImageColorAllocatEalpha () .
Ensuite, utilisez la fonction imageOpenPolygon () pour dessiner un polygone sur l'image créée. Tout d'abord, vous devez définir les coordonnées du sommet du polygone et la remplir avec la couleur appropriée. Pour atteindre une superposition transparente, nous définirons une couleur translucide.
<?php
// Définissez les coordonnées du sommet d'un polygone
$points = [
250, 100, // sommet1
350, 200, // sommet2
300, 300, // sommet3
200, 300, // sommet4
150, 200 // sommet5
];
// Créer des couleurs transparentes
$polygonColor = imagecolorallocatealpha($image, 255, 0, 0, 64); // Rouge translucide
// Dessiner des polygones
imagefilledpolygon($image, $points, 5, $polygonColor);
// Image de sortie
imagepng($image);
imagedestroy($image);
?>
Dans le code ci-dessus, ImageFildPolygon () est utilisé pour dessiner un polygone solide, tandis que l'imageColorallocatealpha () crée un rouge translucide avec une valeur de transparence de 64 , atteignant ainsi l'effet de superposition transparent de la figure.
Supposons que vous ayez une image d'arrière-plan et que vous souhaitiez dessiner des polygones transparents dessus, nous pouvons utiliser ImageCreateFrommpng () ou une autre fonction de lecture d'image pour charger l'image d'arrière-plan, puis la dessiner. Voici un exemple de chargement de l'image d'arrière-plan et de dessin de polygones transparents:
<?php
// Image d'arrière-plan de chargement
$background = imagecreatefrompng('background.png');
// Obtenir la taille de l'image
$width = imagesx($background);
$height = imagesy($background);
// Créer un透明画布并合并到背景图
$image = imagecreatetruecolor($width, $height);
imagesavealpha($image, true);
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
// Fusionner l'image d'arrière-plan sur une nouvelle image
imagecopy($image, $background, 0, 0, 0, 0, $width, $height);
// 定义多边形sommet坐标
$points = [
100, 100,
200, 100,
200, 200,
100, 200
];
// 使用半透明的颜色Dessiner des polygones
$polygonColor = imagecolorallocatealpha($image, 0, 255, 0, 64); // Vert translucide
imagefilledpolygon($image, $points, 4, $polygonColor);
// Sortir l'image finale
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
imagedestroy($background);
?>
Dans ce code, nous chargeons d'abord une image d'arrière-plan PNG, créons une nouvelle image transparente, puis copie l'image d'arrière-plan sur la nouvelle image. Ensuite, un polygone vert transparent est dessiné, superposé à l'image d'arrière-plan.
Avec ImageOpenPolygon () et ImageFildPolygon (), nous pouvons facilement dessiner des figures de polygone. En utilisant les paramètres de transparence rationnellement et en combinant la technologie d'image transparente en PHP, plusieurs effets de superposition peuvent être créés. Ces conseils offrent beaucoup de flexibilité et d'espace créatif pour les développeurs Web lors de la création de graphiques, d'animations et même d'interfaces utilisateur. J'espère que cet article peut vous aider à maîtriser les techniques du dessin d'images transparent, ce qui rend votre traitement d'image plus vivant et intéressant.
Dans ce processus, nous avons utilisé le chemin du fichier d'image lié à l'URL, mais si nous devons remplacer la pièce de nom de domaine dans le chemin d'accès par m66.net , ce qui suit est l'exemple de code modifié: