2011-09-29 14 views
5

Ahora trabajo con la biblioteca GD en PHP y yo estoy tratando de conseguir el nombre del color de píxeles, quiero decir: verde, rojo, azul, etc ...PHP - obtiene el nombre del color de RGB

estoy conseguir el color de esta manera:

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

ahora, ¿cómo puedo encontrar que este color es verde claro, azul oscuro, azul o rojo normal, y etc ..

+1

Los nombres de color que usted otorga, ¿a qué paleta pertenecen? ¿Están definidos en alguna parte? – hakre

Respuesta

4

debe crear una matriz asociativa que mapea value => colorname (o inverse). llene esta matriz con los datos de esta tabla: http://en.wikipedia.org/wiki/Web_colors

luego puede buscar los nombres de los colores, que también están disponibles en CSS. adicionalmente, puede agregar más, propios, nombres de colores

+1

Por favor, no haga referencia a w3school, es un recurso terrible, las razones se pueden encontrar en el lin Marc Marc proporcionado. – sg3s

+1

no sabía esto. uno de mis profesores de mi universidad se refiere también a w3schools ... corregido – 0xDEADBEEF

2

¿Estás suponer que cada color tiene su propia ¿nombre?
Tiene 16^6> 16,7 millones.

Por lo tanto, parece ser imposible.
Pero puede crear su propia base de datos (formato rgb => legible para humanos)

+0

entonces - 1 imagen 10,000 pixels = 10,000 consulta? ¡No lo creo! pero gracias. –

+1

@Mor Sela: RiaD se refiere a 16,7 millones de nombres de colores. Usted solo ha nombrado cuatro y ni siquiera ha dado la URL de esa lista. – hakre

+0

Creo que no tiene 10.000 colores diferentes en cada página si necesita nombrarlo. Entonces, puedes agrupar pixedl por color. Además, puedes intentar agruparlo, por ejemplo, solo con el primer dígito para cada componente. Soy 00-0F, 10-1F – RiaD

Cuestiones relacionadas