Home » Web Development » Php » Trovare i colori in un’immagine con php e imagecolorat

Trovare i colori in un’immagine con php e imagecolorat

tavolozza-colori

Recentemente abbiamo parlato di come poter ritagliare un’immagine utilizzando Php e la funzione imagecopy messa a disposizione dalla libreria GD2. Come vi avevo promesso oggi invece parleremo di un’altra utilissima funzione che ci viene data dalla GD2: imagecolorat.

Con questa funzione potremo trovare tutti i colori presenti in un’immagine, semplicemente passando le coordinate del pixel che ci interessa.

Come esempio utilizzeremo sempre la nostra solita immagine

tutorial-Wordpress

Ipotizziamo di voler scoprire il colore dell’immagine alle coordinate 10;15. Andiamo quindi a vedere il codice Php per ricavare l’RGB:

1
$img = imagecreatefrompng("images/imgProva.png");

Utilizzando sempre il nostro imagecreatefrompng istanziamo un immagine passando il path della nostra immagine da analizzare. Vi ricordo, come sempre, che la funzione utilizzata fa riferimento a una png, per diversi tipi di immagini andranno utilizzate le relative funzioni.

2
3
$rgb = imagecolorat($img, 10, 15);
$colors = imagecolorsforindex($img, $rgb);

imagecolorat ci restituisce l’indice del colore prendendo come parametri l’immagine istanziata e le coordinate che ci interessano, nel nostro caso l’indice è 2127258.

Come potete vedere l’indice non è ancora l’RGB, bisogna quindi utilizzare imagecolorsforindex con cui ricaviamo un array con l’esatto RGB. Questa funzione richiede due parametri: l’immagine istanziata precedentemente e l’indice trovato con imagecolorat.

Abbiamo trovato l’RGB delle coordinate passate, per poter vedere il risultato basta fare un var_dump della nostra variabile $colors.

Nell’esempio specifico il var_dump restituisce:

array(4) { [“red”]=> int(32) [“green”]=> int(117) [“blue”]=> int(154) [“alpha”]=> int(0) }

Ne ricaviamo che l’RGB è R:32, G:177, B:154.

Resta sempre aggiornato

Stai tranquillo! Non invio E-mail di Spam e non faccio decine di invi ogni settimana. Ti invierò di tanto in tanto un messaggio per tenerti aggiornato sulle novità e sui nuovi articoli!
Email
Secure and Spam free...