En PHP, la combinaison des fonctions ImageColorAllocatEalPha et ImageFilter () peut nous aider à créer des effets d'image transparents, en particulier en ajoutant certains effets de filtre lors du traitement des images ou en modifiant la transparence de l'image. Aujourd'hui, nous apprendrons à utiliser ces deux fonctions pour ajouter des effets transparents aux images et appliquer des filtres.
ImageColorAllocatEalPha () est une fonction de PHP utilisée pour attribuer des couleurs aux images, en particulier, il nous permet de définir la transparence. Cette fonction est utilisée comme suit:
imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha): int
$ Image : Ressource d'image cible.
$ rouge , $ vert , $ bleu : représente les valeurs de couleur du rouge, du vert et du bleu, respectivement, allant de 0 à 255.
$ alpha : valeur de transparence, 0 signifie complètement opaque et 127 signifie complètement transparent.
En utilisant la fonction ImageColorAllocatEalPha , nous pouvons attribuer une image à une image avec transparence.
La fonction ImageFilter () est utilisée pour appliquer divers effets de filtre aux images. Sa syntaxe est la suivante:
imagefilter(resource $image, int $filtertype, mixed ...$arg): bool
$ Image : Ressource d'image cible.
$ filterType : Type de filtre, PHP fournit une variété de types de filtres, tels que l'image en niveaux de gris, flou, etc.
$ arg : Autres paramètres liés au filtre.
En combinant les effets de transparence et de filtre, nous pouvons créer des images très attrayantes dans les visuels.
Le code suivant montre comment créer une image avec un effet de gradient transparent à l'aide de fonctions ImageColorAllocatEalPha et ImageFilter () .
<?php
// Créer une image vierge
$image = imagecreatetruecolor(400, 400);
// Définir des arrière-plans transparents
$transColor = imagecolorallocatealpha($image, 0, 0, 0, 127); // Complètement transparent
imagefill($image, 0, 0, $transColor);
// Créer des effets de gradient:Augmentez progressivement la transparence de gauche à droite
for ($x = 0; $x < 400; $x++) {
$alpha = (int)(127 * ($x / 400)); // depuis 127 (Complètement transparent) Gradient de 0 (Totalement opaque)
$color = imagecolorallocatealpha($image, 255, 0, 0, $alpha); // Gradient rouge
imageline($image, $x, 0, $x, 400, $color); // Dessiner des lignes pour remplir l'image
}
// Appliquer un filtre flou gaussien
imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
// Image de sortie au navigateur
header('Content-Type: image/png');
imagepng($image);
// Nettoyer les ressources
imagedestroy($image);
?>
Nous avons d'abord créé une image vierge de 400x400 et réglé l'arrière-plan sur transparent.
Ensuite, nous utilisons l'imageColorallocatealpha pour tracer une ligne rouge dégradé sur l'image et faire changer progressivement sa transparence de gauche à droite.
Enfin, nous utilisons ImageFilter () pour appliquer des filtres à flou gaussiens pour rendre l'image plus douce.
Utilisez la fonction ImagePng () pour sortir l'image du navigateur.
De cette façon, l'écran final sera une bande rouge qui change progressivement de gauche à droite, et un filtre flou est appliqué pour créer un effet d'image transparent doux.
En utilisant ImageColorAllocatEalpha avec la fonction ImageFilter () , nous pouvons créer des images avec des effets et des filtres transparents très commodément. Cette méthode peut être appliquée à divers scénarios de traitement d'image, tels que faire des filigranes, réaliser des effets de transition d'image, etc.
Lorsque vous utilisez ces fonctions, n'oubliez pas de faire attention à la création et à la destruction des images pour vous assurer qu'il n'y a pas de fuite de mémoire.