PHP fournit une riche fonction de bibliothèque GD pour manipuler les pixels, les couleurs et la transparence lorsque vous travaillez avec des images générées dynamiquement. Parmi eux, la fonction ImageColorAllocatealPha () est un outil très utile qui peut être utilisé pour attribuer des couleurs avec transparence aux images. Ceci est particulièrement important pour la nécessité de superposer des filigranes translucides, de créer des effets d'ombre ou de générer des images avec des zones transparentes.
Cet article vous montrera comment utiliser ImageColorAllocatEalpha () et combiner un exemple de code pour montrer comment ajuster dynamiquement la transparence des éléments dans une image.
La définition de l'imageColorallocatealpha () est la suivante:
int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )
$ Image : Image Resource Handle, créé par ImageCreateTrueColor () .
$ rouge , $ vert , $ bleu : composants RVB de couleur, plage 0–255.
$ alpha : transparence, plage 0 (complètement opaque) à 127 (complètement transparent).
Remarque : la valeur alpha de PHP et la définition de transparence habituelle sont inverses, plus la valeur est grande, plus elle est transparente.
Voici un exemple simple montrant comment dessiner un cercle avec une transparence réglable dans une image dynamique à l'aide d'imageColorallocatealpha () .
<?php
// Définir l'en-tête de contenu,Sortie du navigateur PNG image
header('Content-Type: image/png');
// Créer un 200x200 Vraie toile de couleur
$width = 200;
$height = 200;
$image = imagecreatetruecolor($width, $height);
// Activer alpha Économie de canal
imagesavealpha($image, true);
// Créer un完全透明的背景
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
// Définir dynamiquement la transparence(Nous utilisons ici GET Contrôle des paramètres)
$alpha = isset($_GET['alpha']) ? intval($_GET['alpha']) : 50;
if ($alpha < 0) $alpha = 0;
if ($alpha > 127) $alpha = 127;
// Attribuer un rouge avec transparence
$redAlpha = imagecolorallocatealpha($image, 255, 0, 0, $alpha);
// Dessinez un cercle au centre de la toile
imagefilledellipse($image, $width / 2, $height / 2, 150, 150, $redAlpha);
// Image de sortie
imagepng($image);
// Détruiser les ressources d'image
imagedestroy($image);
?>
Exemple d'accès:
https://m66.net/transparent_circle.php?alpha=30
Vous pouvez voir dynamiquement le changement de transparence dans le navigateur en ajustant les paramètres alpha (0–127).
Activer le canal alpha <br> L'utilisation d'ImagesAvealpha ($ Image, True) est requise, sinon la zone transparente peut être remplie en noir.
Fond rempli de couleur transparente <br> Pour s'assurer que la partie transparente de l'image n'est pas écrasée par l'arrière-plan par défaut, nous remplissons d'abord l'arrière-plan d'une couleur complètement transparente.
Direction de transparence <br> Contrairement à CSS, plus la valeur de transparence dans GD est grande, plus elle est transparente. Par exemple, 0 est complètement opaque, tandis que 127 est complètement transparent.
Générez des superpositions translucides pour les filigranes dynamiques.
Crée du texte avec des effets d'ombre ou de halo.
Générez une PNG transparente pour les pages Web ou les applications.
En combinant ImageColorallocatealPha () et d'autres fonctions GD (telles que ImageString () et ImageTtfText () ), vous pouvez créer des effets d'image dynamiques complexes pour améliorer l'expression visuelle du site Web.