Teoría del color web (parte 2)

25 de noviembre de 2008, 12:58 por Alonso Torres

Los colores en web se representan con el modelo RGB (Red, Green, Blue), es decir, se genera cualquier color partiendo de la combinación en distintas proporciones de éstos tres colores primarios. Pero no siempre fué así. La cantidad de colores que fué posible presentar en un monitor, siempre ha estado ligada (o limitada) por lo que se conoce como profundidad de color o profundidad de bit.

Profundidad de color

Es la cantidad de información o bits que tiene un pixel para guardar un color. Sabemos que un bit es la cantidad mínima de información, y puede ser 0 o 1, entonces un pixel con capacidad de un bit para almacenar su color, sólo puede representar dos colores.

El avance en la capacidad de los ordenadores ha hecho posible el manejo de más información y más datos. Poco a poco se fueron asignando más bits de memoria a los pixeles, lo que se tradujo en que los pixeles tenían capacidad de representar más colores. El color que se asignaba a un número, era determinado por la paleta de colores utilizada. Era como un cuaderno para colorear por números, donde cada pixel se "pintaba" del color que correspondía a su número.

Núm. de bits Posibles valores Núm. de colores
1 bit sólo 0 o 1 2
2 bits 00, 01, 10 o 11 4
4 bits 0000 hasta el 1111 16
8 bits 00000000 al 11111111 256

Como vemos en el gráfico, una profundidad de 2 bits, podría tener las combinaciones: 00, 01, 10 y 11, es decir, 4 colores posibles. Es importante aclarar que los colores en la paleta podían ser cualquier color, siempre y cuando fueran nomás 4. Podían ser 4 tonos de grises o 4 tonos variados, ésto lo decidía el software que se ejecutaba. Por ejemplo, el sistema operativo Windows funcionaba en 4 bits con una paleta de color como la que se muestra en el gráfico siguiente.

Cuando llegaron los monitores con profundidad de color de 8 bits, el número de colores aumentó considerablemente. Ahora se tenían 256 posibles colores, y los monitores se colorearon con toda una gama de nuevos tonos.

Separación por canales RGB

Conforme el número de colores posibles aumentaba, se volvió impráctico relacionar cada color de la paleta con un número. Cuando llegaron los monitores de 16 bits, capaces de representar 65,535 colores, se decidió descartar la paleta de colores y separar los 16 bits en: 5 bits para el rojo (R), 6 bits para el verde (G) y 5 bits para el azul (B). El ojo humano tiene más conos sensibles al verde, por lo tanto tiene una mejor capacidad para detectar variaciones en los tonos de verde, por eso se decidió que el verde tuviera mas bits de información. De esta forma el númerito en el pixel ya no representaba un color específico, ahora los números indicaban cuánto de rojo, cuánto de verde y cuánto de azul debía tener cada pixel y de esa combinación nacía un color específico.

El número más alto que podemos representar con 5 bits es 11111 (que en sistema decimal sería el número 31), entonces para representar el color rojo tendríamos que saturar el canal R (Red) y se representaría con el número binario: 11111,000000,00000.  En otras palabras, ésto se podría traducir como 31 unidades de rojo, 0 de verde y 0 de azul, lo cuál nos dá un color rojo puro.

Profundidad de 16 bits
canal Rcanal Gcanal B
00000 000000 00000
5 bits 6 bits 5 bits
Profundidad de 24 bits
canal Rcanal Gcanal B
00000000 00000000 00000000
8 bits 8 bits 8 bits

Con 65,535 colores en los monitores,  era posible una decente representación de fotografías e imágenes, pero pronto llegó la profundidad de color de 24 bits, con lo cuál se asignaron a cada canal 8 bits de informacion. Con 8 bits (11111111) se pueden tener 256 tonos para el rojo, 256 para el verde y 256 para el azul (256 x 256 x 256), haciendo posible la representacion de 16,777,215 colores, conocida también como "16 millones de colores" o "Color Verdadero". El color rojo entonces, se representaba saturando el primer canal del RGB: 11111111,00000000,00000000, o en sistema decimal sería: 255,0,0. Para fines prácticos, se decidió utilizar una base hexadecimal, es decir, con 16 caracteres que van desde el 0 hasta el 9 y después las letras A, B, C, D, E y F. De esta forma, para representar el número 255 ya no requerimos tres dígitos, sino sólo dos: FF, así que el rojo terminó siendo: FF,00,00. Ésta representación hexadecimal es la que se utiliza actualmente para "colorear" los pixeles en las páginas web.

Toda esta revolución en las tarjetas de video y en la profundidad de color en los monitores sucedió en relativamente pocos años; años en los que justamente el internet fué ganando popularidad y la visualización de páginas web se volvió una tarea más habitual en los ordenadores, que antes solo servían como procesadores de texto u hojas de cálculo. Aquellas primeras páginas de internet, se toparon con el problema de que no todos los ordenadores tenían la misma capacidad de representar el color, así que el diseño de un sitio web en un color específico, podía no visualizarse del mismo color en otro ordenador con menos profundidad de bit. De esta problemática surgió lo que hoy se conoce (o mas bien se desconoce, porque ya quedó en el olvido) como paleta de color "Web-Safe".

Paleta de color "Web Safe"

Las tarjetas de video que podían representar millones de colores abrieron la posibilidad de generar diseños de muchísimos colores, pero el internet pretende que las páginas web sean vistas en cualquier ordenador, y NO todas las computadoras tenían esa capacidad. Cuando el internet se popularizó, todavía existían computadores con profundidad de color de 8 bits, capaces de representar tan sólo 256 colores. La solución entonces fué que se generara una paleta de colores que garantizara que el color que yo seleccionaba para mi página, se viera igual en todas las pantallas.

¿Cuáles colores se seleccionarían para ser parte de esa paleta web? Tenían que ser menos de 256 colores para que los monitores de 8 bits los alcanzaran a representar. Los colores seleccionados, más que responder a una selecta gama basada en la percepción del color en el ojo humano, fuéron más bien seleccionados por lo práctico de su representación hexadecimal. Se decidió entonces que los colores que se representaran en hexadecimal con pares como: 00, 33, 66, 99, CC y FF en cada uno de los canales RGB, serían entonces los que formarían parte de esta paleta de colores web.

Esta restricción en los posibles valores hexadecimales, reducía el número de 16 millones de colores a 6 valores para cada canal RGB (6 x 6 x 6) = 216 colores. Las tarjetas de video de 8 bits usarían esta paleta de colores para representar estos 216 colores que se verían exactamente igual en todas las computadoras. Los 40 espacios restantes en la paleta estarían reservadas para alojar colores que usaría el sistema operativo para presentar elementos de interfaz como ventanas o botones que tendrían un color muy específico (los cuales no necesariamente eran web-safe).

De esta forma, usando esta paleta "Web safe", se podía garantizar que el diseño mantendría su color en las distintas computadoras que tenían acceso a la red. Sin embargo, con el rápido avance en la tecnología, el uso de esta paleta de color se ha vuelto obsoleta, pues la mayoría de las tarjetas de video actuales son capaces de procesar una profundidad de 24 bits e incluso de hasta 32 bits, con lo cuál es posible agregar niveles de transparencia a los pixeles, pero ese es tema que veremos en otra ocasión.

Recuerda dejar tus comentarios, preguntas o sugerencias sobre éste artículo para mejorarlo y corregirlo en caso de que la información no sea precisa. Hasta pronto.

Sitios relacionados

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categorías: Diseno web
Temas en este artículo: , , , ,

Añadir comentario

  Country flag


[b] negrita [/b]  -  [i] itálica [/i]


© 2008 Alonso Torres Díaz. Log in