A few notes about this function...
This function will only work on images where the palette is 256 colors or less. You also can not use imagetruecolortopalette() to reduce the palette on a true color PNG image that has greater than 256 colors in it's palette, then call this function. If you try to do this imagecolorexact() will report colors not being in the image when they are in the image!
1. works on png(s) 8bit/256 colors or less.
2. works on all gif(s)
3. does not work on any type of jpg/jpeg image.
imagecolorexact
(PHP 4, PHP 5)
imagecolorexact — Retourne l'index de la couleur donnée
Description
Retourne l'index de la couleur spécifiée dans la palette de l'image image.
Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne seront pas résolues.
Liste de paramètres
- image
-
Une ressource d'image, retourné 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.
Valeurs de retour
Retourne l'index de la couleur spécifié dans la palette, ou -1 si la couleur n'existe pas.
Exemples
Exemple #1 Récupération des couleurs composant le logo GD
<?php
// Définit l'image
$im = imagecreatefrompng('./gdlogo.png');
$colors = Array();
$colors[] = imagecolorexact($im, 255, 0, 0);
$colors[] = imagecolorexact($im, 0, 0, 0);
$colors[] = imagecolorexact($im, 255, 255, 255);
$colors[] = imagecolorexact($im, 100, 255, 52);
print_r($colors);
// Libération de la mémoire
imagedestroy($im);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Array
(
[0] => 16711680
[1] => 0
[2] => 16777215
[3] => 6618932
)
imagecolorexact
18-Feb-2006 08:38
16-Nov-2005 07:14
<?php
$src = "../images/pic.gif";
$red = 9;
$green = 9;
$blue = 4;
$pic0026 = imagecreatefromgif ( $src );
$ind = imagecolorexact ( $pic, $red, $green, $blue );
echo '<img src="../images/pic.gif" border="0" alt="pic" title="View pic" /><br /><br />';
echo "RED ( " . $red . " ) GREEN ( " . $green . " ) BLUE ( " . $blue . " )<br />-> Palette Index = " . $ind;
if ( $ind != -1 )
{
echo "<br />[ The color exists! ]";
}
else
{
echo "<br />[ The color does not exist! ]";
}
imagedestroy ( $pic );
?>
