2011-09-29 16 views
5

io lavoro ora con librerie GD su PHP e sto cercando di ottenere il nome del colore dei pixel, voglio dire: verde, rosso, blu, ecc ...PHP - ottenere il nome del colore da RGB

io sono ricevendo il colore in questo modo:

$rgb = ImageColorAt($image, $X, $y); 
$r = ($rgb >> 16) & 0xFF ; 
$g = ($rgb >> 8) & 0xFF; 
$b = $rgb & 0xFF; 

ora, come posso trovare questo colore è verde chiaro, blu scuro, blu o rosso normale ed ecc ..

+1

I nomi dei colori che dai, a quale tavolo appartengono? Sono definiti da qualche parte? – hakre

risposta

4

devi creare un array associativo che mappa valore => colorname (o inverso). riempire questa matrice con i dati di questa tabella: http://en.wikipedia.org/wiki/Web_colors

quindi è possibile cercare i nomi dei colori, che sono disponibili anche in CSS. Inoltre, puoi aggiungere altri nomi di proprietà, i nomi originali

+1

Si prega di non fare riferimento a w3school, è una risorsa terribile, i motivi possono essere trovati @ lin Marc B fornito. – sg3s

+1

non lo sapevo. uno dei miei professori della mia università si riferisce anche a w3schools ... corretto – 0xDEADBEEF

2

Sei supporre che ogni colore ha il suo nome?
È 16^6> 16,7 milioni.

Quindi, sembra impossibile.
Ma è possibile creare il proprio database (formato rgb => leggibile dall'uomo)

+0

quindi - 1 immagine 10.000 pixel = 10.000 query? io non la penso così! ma grazie. –

+1

@Mor Sela: RiaD si riferisce a 16,7 milioni di nomi di colori. Hai solo chiamato quattro e non hai nemmeno dato l'URL di quella lista. – hakre

+0

Penso che tu non abbia 10.000 colori diversi in ogni pagina se hai bisogno di nominarlo. Quindi, puoi raggruppare pixedl per colore. Inoltre, puoi provare a raggrupparlo, ad esempio solo la prima cifra per ogni componente. I'e 00-0F, 10-1F – RiaD