> Manuales > Curso práctico de diseño web

Cómo trabajan los ordenadores para codificar un color. El formato RGB.

El ojo humano puede distinguir aproximadamente entre 7 y 10 millones de colores. Debido a esto la vista es para nosotros el principal sentido que nos une con el exterior, de tal forma que sobre el 80% de la información que recibimos del mundo exterior es visual.

Pintores y diseñadores gráficos utilizan esta capacidad humana de apreciar colores para crear obras que profundicen en el alma y que inspiren sentimientos en los seres que las contemplan. Pero ¿qué podemos hacer cuando debemos expresarnos con un número limitado de colores?.

Los ordenadores trabajan con tres colores básicos, a partir de los cuales construyen todos los demás, mediante un proceso de mezcla por unidades de pantalla, denominadas pixels. Estos colores son el rojo, el azul y el verde, y el sistema sí definido se conoce como sistema RGB (Red, Green, Blue).

Cada píxel tiene reservada una posición en la memoria del ordenador para almacenar la información sobre el color que debe presentar. Los bits de profundidad de color marcan cuántos bits de información disponemos para almacenar el número del color asociado según la paleta usada. Con esta información, la tarjeta gráfica del ordenador genera unas señales de voltaje adecuadas para representar el correspondiente color en el monitor.

A más bits por píxel, mayor número de variaciones de un color primario podemos tener. Para 256 colores se precisan 8 bits (sistema básico), para obtener miles de colores necesitamos 16 bits (color de alta densidad) y para obtener millones de colores hacen falta 24 bits (color verdadero). Existe también otra profundidad de color, 32 bits, pero con ella no se consiguen más colores, sino que los que usemos se muestren más rápido, ya que para el procesador es más fácil trabajar con registros que sean potencia de 2 (recordemos que trabaja con números binarios).

Profundidades de color

Cuanto mayor es el número de colores, mayor será la cantidad de memoria necesaria para almacenarlos y mayores los recursos necesarios para procesarlos. Por este motivo, los ordenadores antiguos disponen de paletas de pocos colores, normalmente 256, al no tener capacidad para manejar más sin una pérdida notable de prestaciones.

Para representar un color en el sistema RGB se utilizan dos formas de codificación diferentes, la decimal y la hexadecimal, correspondiéndose los diferentes valores con el porcentaje de cada color básico que tiene un color determinado.

Porcentajes de color y códigos
Porcentajes de color y códigos

Por ejemplo, un rojo puro (100% de rojo, 0% de verde y 0% de azul) se expresaría como (255,0,0) en decimal, y como #FF0000 en hexadecimal (delante de el código de un color en hexadecimal siempre se sitúa un símbolo almohadilla).

De los 256 colores básicos, el propio sistema operativo de queda con 40 para su gestión interna, con lo que disponemos de 216 colores. De ellos, 18 se corresponden con la gamas de los colores primarios, correspondientes a 6 tonos de rojo, 6 de azul y 6 de verde:

Gamas de colores primarios
Gamas de colores primarios

Y el resto, los colores secundarios, son combinaciones de estas gamas de colores primarios:

Colores secundarios
Colores secundarios

Si usamos una profundidad de color de 24 bits, correspondiente a millones de colores, disponemos de una amplia gama para trabajar, pero siempre teniendo en cuenta que sólo serán compatibles los colores que tengan su equivalente en el sistema de 256 colores, es decir, aquellos en los que cada color primario viene definido por una pareja de valores iguales, debiendo estos ser 00,33,66,99,CC o FF.

Cuando usamos una profundidad de color de 16 bits disponemos de miles de colores, pero el problema es que debido a la división de esta gama de colores, los valores obtenidos no se corresponden con los equivalentes en 256 colores ni en millones de colores. Por ejemplo, #663399 es el mismo color a 256 y a millones, pero no es igual que el obtenido con miles de colores.

Como el código de un color dado puede ser difícil de recordar, se ha adoptado una lista de colores a los que se le ha puesto un nombre representativo en el idioma inglés (red, yellow, olive, etc.), de tal forma que los modernos navegadores interpretan el mismo y lo traducen internamente por su valor hexadecimal equivalente.

Luciano Moreno

Consultor, diseñador y desarrollador web en ParaRedeBJS. Especialista en usabill...

Manual