Permette di ottenere i componenti RGB del colore per un pixel alle coordinate X,Y, di solito prelevati con la funzione
imagecolorat().
Le informazioni sul colore sono memorizzate in un array di quattro elementi.
Ciascuno dei primi tre elementi contiene le quantità di rosso, verde e blu ed il quarto quello della componente alpha.
Questa informazione può essere usata per altre elaborazioni, ad es. per il colore del carattere HTML o CSS oppure per disegnare sull'immagine stessa come nell'esempio seguente.
imagecolorsforindex ( resource $image , int $index )
Parametri
$image: Una risorsa immagine restituita da una funzione di creazione immagine.
$index: Coordinate del punto immagine di lettura del colore del pixel.
Valori restituiti:
Restituisce un array delle chiavi rosso, verde, blu e alfa per l'indice colore specificato.
<?php
$Immagine =
imagecreatefrompng('colori.png'); // carica immagine multicolore
// Ottenere l'indice del colore di un pixel alle coordinate X,Y
$X = 75; $Y = 60; // coordinate di lettura
// legge i componenti del colore nel punto x,y
$ColoreRGB_XY =
imagecolorat($Immagine, $X, $Y);
// lo rende leggibile nei suoi componenti
$ComponenteColore =
imagecolorsforindex($Immagine, $ColoreRGB_XY);
/*
echo"<br>Posizione lettura pixel x=$X y=$Y";
echo"<br><br>Colore RGB rilevato:";
echo"<br><br>Rosso = ".$ComponenteColore["red"];
echo"<br>Verde = ".$ComponenteColore["green"];
echo"<br>Blu = ".$ComponenteColore["blue"];
echo"<br>Componente alpha = ".$ComponenteColore["alpha"];
*/
$ColoreRilevato =
imagecolorallocate($Immagine, $ComponenteColore["red"],$ComponenteColore["green"],$ComponenteColore["blue"]);
// disegna circonferenze del colore rilevato
for($x=0;$x<50;$x+=3)
{
imageellipse($Immagine,98,70, 70+$x,70+$x,$ColoreRilevato);}
imagepng($Immagine); // al browser
imagepng($Immagine," NimeFile.png"); // salva immagine
imagedestroy($Immagine);//libera memoria
?>
Inserendo coordinate diverse, ovviamente su altro punto colore, cambierà il risultato della successiva immagine.
Risultato: