A script that changes colors depending on get variable
important to note: I had little success with pngs and getting true red
gifs work much better
<?php
//0 is yellow, 1 is red, 2 is blue
$y = 1 - ceil($_GET["c"]/2);
$r = 1 - floor($_GET["c"]/2);
$b = floor($_GET["c"]/2);
$gd = imagecreatefromgif("example.gif");
imagecolorset($gd, imagecolorexact($gd, 255, 0, 0), $r*255, $y*255, $b*255);
imagecolorset($gd, imagecolorexact($gd, 191, 0, 0), $r*191, $y*191, $b*191);
imagecolorset($gd, imagecolorexact($gd, 128, 0, 0), $r*128, $y*128, $b*128);
imagecolorset($gd, imagecolorexact($gd, 255, 0, 0), $r*64, $y*64, $b*64);
header('Content-Type: image/gif');
imagegif($gd);
?>
imagecolorexact
(PHP 4, PHP 5)
imagecolorexact — Retourne l'index de la couleur donnée
Description
int imagecolorexact
( resource
$image
, int $red
, int $green
, int $blue
)
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 le seront pas.
Liste de paramètres
-
image -
Une ressource d'image, 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.
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
)
samtobia at geemail dot com
24-Mar-2011 10:11
jbr at ya-right dot com
18-Feb-2006 12:38
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.
info at educar dot pro dot br
16-Nov-2005 11: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 );
?>
