(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
imagecolorallocatealpha — Alloue une couleur à une image
imagecolorallocatealpha() se comporte comme
imagecolorallocate() avec en plus le paramètre de
transparence alpha
.
image
Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().
red
Valeur du composant rouge.
green
Valeur du composant vert.
blue
Valeur 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 ellipses
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 header correct
header('Content-Type: image/png');
// et finallement, afficher le résultat
imagepng($image);
imagedestroy($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 transparant, et le canal alpha a 8 bits. Pour convertir de
telle valeurs alpha pour être compatible avec
imagecolorallocatealpha(), un peu d'arithmetique simple
est suffisante :
<?php
$alpha8 = 0; // fully transparent
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // fully opaque
var_dump(127 - ($alpha8 >> 1));
?>
L'exemple ci-dessus va afficher :
int(127) int(0)