(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — Alloue une couleur à une image
$image,$red,$green,$blue,$alpha
imagecolorallocatealpha() se comporte comme
imagecolorallocate() avec en plus le paramètre de
transparence alpha.
imageredValeur du composant rouge.
greenValeur du composant vert.
blueValeur du composant bleu.
alpha
Une valeur entre 0 et 127.
0 indique une opacité complète tandis que
127 indique une transparence complète.
red, green
et blue sont des entiers compris entre 0 et 255, ou
des hexadécimaux compris entre 0x00 et 0xFF.
Un identifiant de couleur ou false si l'allocation échoue.
Cette fonction peut retourner false, mais elle peut aussi retourner une valeur équivalent à false.
Veuillez lire la section sur les booléens pour plus d'informations.
Utilisez l'opérateur ===
pour tester la valeur de retour exacte de cette fonction.
| Version | Description |
|---|---|
| 8.0.0 |
image attend une instance de GdImage désormais;
auparavant, une resource gd était attendue.
|
Exemple #1 Exemple d'utilisation de imagecolorallocatealpha()
<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);
// quelque chose pour obtenir un fond blanc avec une bordure noire
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);
$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;
// alloue des couleurs avec des valeurs alpha
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);
// Dessine 3 cercles superposés
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);
// Ne pas oublier d'envoyer un en-tête correct
header('Content-Type: image/png');
// et finalement, afficher le résultat
imagepng($image);
?>Résultat de l'exemple ci-dessus est similaire à :
Exemple #2 Conversion de valeur alpha typique pour l'utiliser avec imagecolorallocatealpha()
Généralement les valeurs alpha 0 désignent les pixels
complètement transparents, et le canal alpha a 8 bits. Pour convertir de
telles valeurs alpha pour être compatible avec
imagecolorallocatealpha(), un peu d'arithmétique simple
est suffisante :
<?php
$alpha8 = 0; // totalement transparent
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // totalement opaque
var_dump(127 - ($alpha8 >> 1));
?>L'exemple ci-dessus va afficher :
int(127) int(0)