En PHP, la bibliothèque GD fournit de nombreuses capacités de traitement d'image, y compris les formes de dessin et la transparence de la gestion. En utilisant les fonctions ImageColorAllocatEalPha () et ImageFildRectangle () , nous pouvons facilement créer des rectangles avec des zones transparentes. Voici les étapes détaillées sur la façon d'y parvenir.
La fonction ImageColorAllocatEalPha () est utilisée pour attribuer une couleur avec transparence. La syntaxe de cette fonction est la suivante:
int imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha);
$ Image : Ressource d'image cible.
$ rouge , $ vert , $ bleu : les valeurs rouges, vertes et bleues de la couleur, allant de 0 à 255.
$ alpha : transparence, 0 signifie complètement opaque, 127 signifie complètement transparent.
Avec cette fonction, nous pouvons créer des couleurs avec la transparence et les appliquer au dessin de rectangles ou d'autres graphiques.
La fonction ImageFildRectangle () est utilisée pour dessiner un rectangle de remplissage sur une image. La syntaxe est la suivante:
bool imagefilledrectangle(resource $image, int $x1, int $y1, int $x2, int $y2, int $color);
$ Image : Ressource d'image.
X1 $ , Y1 $ , x2 $ , $ Y2 : les coordonnées des coins supérieur gauche et inférieur droit du rectangle.
$ Couleur : Couleur de remplissage rectangulaire, généralement créée par ImageColorAllocatEalpha () ou ImageColorAllocate () .
Nous pouvons utiliser ImageColorallocatealPha () et ImageFildRectangle () pour créer des zones rectangulaires transparentes. Voici un exemple complet de code qui montre comment dessiner un rectangle avec un arrière-plan transparent sur une image.
<?php
// Créer un 500x500 Image de pixel
$image = imagecreatetruecolor(500, 500);
// Définir des arrière-plans transparents
$transparent = imagecolorallocatealpha($image, 255, 255, 255, 127); // Complètement transparent
imagefill($image, 0, 0, $transparent);
// Définir la couleur avec la transparence(Par exemple, un rouge translucide)
$color = imagecolorallocatealpha($image, 255, 0, 0, 50); // Rouge translucide
// Dessiner un rectangle de remplissage,Avec fond transparent
imagefilledrectangle($image, 50, 50, 450, 450, $color);
// Images de sortie et ressources propres
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
ImageCreateTrueColor () : crée une image de 500x500 pixels.
ImageColorallocatealpha () : Créez une couleur transparente $ transparent pour utiliser comme arrière-plan et remplissez l'arrière-plan avec ImageFill () comme transparent.
ImageColorAllocatEalpha () : Crée un rouge translucide avec une valeur de transparence de 50.
ImageFildRectangle () : Remplissez un rectangle avec des coordonnées rouges translucides de (50, 50) à (450, 450).
En-tête ('Content-Type: Image / Png') : Définissez le type d'image sur PNG afin que le navigateur puisse afficher correctement l'image.
ImagePng () : Sortie du contenu de l'image.
ImageDestRoy () : Libérez les ressources d'image.
Grâce au code ci-dessus, nous générerons une image de 500x500 pixels avec un fond transparent et un rectangle rouge translucide est dessiné dessus. Vous pouvez ajuster la position, la taille et la transparence du rectangle au besoin.
De cette façon, vous pouvez utiliser des couleurs transparentes dans votre image pour créer différentes formes ou zones avec des effets transparents. Le contrôle de transparence rend les images plus flexibles et convient aux scènes telles que la synthèse d'image et la génération dynamique de filigrane.