Dans PHP, la fonction ImageColorAllocatealPha () est utilisée pour attribuer une couleur avec transparence à l'image créée. Il s'agit d'une fonction couramment utilisée pour traiter les images transparentes, en particulier lorsqu'il s'agit de travailler avec des images PNG ou des images qui prennent en charge les canaux alpha.
int imagecolorallocatealpha(resource $image, int $red, int $green, int $blue, int $alpha)
$ Image : Image Resource, généralement une image créée par des fonctions ImageCreate () ou ImageCreateFrom * () .
$ rouge , $ vert , $ bleu : spécifie les parties rouges, vertes et bleues de la couleur, chacune allant de 0 à 255.
$ alpha : valeur de transparence, allant de 0 (complètement opaque) à 127 (complètement transparent). L'effet de transparence n'apparaîtra que dans certains types d'images (tels que PNG).
Supposons que nous voulons créer une image d'arrière-plan avec transparence et dessiner un rectangle avec des couleurs transparentes sur l'image. Voici un exemple simple:
<?php
// Créer un 200x200 Images
$image = imagecreatetruecolor(200, 200);
// Définissez un arrière-plan transparent pour l'image
imagesavealpha($image, true);
$transparency = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparency);
// Définir le rouge translucide pour l'image
$red = imagecolorallocatealpha($image, 255, 0, 0, 64);
// Dessiner un rectangle rouge translucide
imagefilledrectangle($image, 50, 50, 150, 150, $red);
// Image de sortie
header('Content-Type: image/png');
imagepng($image);
// Détruiser les ressources d'image
imagedestroy($image);
?>
Créez une ressource d'image : utilisez ImageCreateTrueColor () pour créer une image vierge de 200x200.
Enregistrez les informations sur les canaux alpha : utilisez ImagesVealpha () pour permettre la sauvegarde du canal alpha. Sinon, le paramètre de transparence ne sera pas valide.
Réglez l'arrière-plan transparent : attribuez une couleur transparente à l'image via ImageColorAllocatealpha () , avec une valeur de transparence de 127, c'est-à-dire qu'elle est complètement transparente. Ensuite, utilisez ImageFill () pour remplir l'arrière-plan de l'image entière comme transparent.
Définissez le rouge translucide : utilisez ImageColorAllocatEalpha () pour attribuer un rouge translucide avec la valeur alpha de 64 (plus la valeur est petite, plus la transparence est élevée).
Dessinez un rectangle : dessinez un rectangle avec du rouge translucide par imageFilDectangle () .
Image de sortie : utilisez imagepng () pour sortir l'image, définissez le type de contenu sur image / png afin que le navigateur puisse afficher correctement l'image.
Détruisez les ressources : détruisez les ressources d'image via iMageDestroy () et libérez la mémoire.
Lors du définition de la transparence à l'aide d' imageColorAllocatEalpha () , l'image doit être du type qui prend en charge le canal alpha (comme PNG). Le format JPEG ne prend pas en charge la transparence.
Les effets de transparence peuvent être affectés par le cache du navigateur ou les paramètres de rendu lorsqu'ils sont affichés dans le navigateur.
Assurez-vous que la taille de l'image, la transparence et la sélection des couleurs répondent aux besoins de l'effet d'image final.
Vous pouvez attribuer une couleur entièrement transparente à l'image à l'aide d' imageColorAllocatealPha () et remplir l'image entière avec ImageFill () . Par exemple:
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
Vous pouvez appliquer les couleurs créées par ImageColorAllocatEalpha () au texte. Par exemple:
$white = imagecolorallocatealpha($image, 255, 255, 255, 64);
imagestring($image, 5, 50, 50, 'Hello, World!', $white);
En utilisant ImageColorAllocatEalpha (), vous pouvez définir la transparence pour les images et atteindre différents degrés de transparence. Ceci est très utile pour créer des filigranes, des icônes transparentes ou d'autres images qui nécessitent des effets semi-transparents. La maîtrise de cette fonction vous permettra de manipuler les images de manière plus flexible.