Saltar al contenido

¿Por qué siempre dividimos los valores RGB por 255?

Esta división ha sido analizado por nuestros expertos para garantizar la veracidad de nuestro contenido.

Solución:

RGB (Rojo, Verde, Azul) son de 8 bits cada uno.
El rango para cada color individual es 0-255 (como 2^8 = 256 posibilidades).
El rango de combinación es 256*256*256.

Al dividir por 255, el rango de 0 a 255 se puede describir con un rango de 0,0 a 1,0, donde 0,0 significa 0 (0x00) y 1,0 significa 255 (0xFF).

Esta es una pregunta un poco genérica, ya que puede ser específica de la plataforma e incluso del método. Realmente todo se reduce a las matemáticas y obtener un valor entre 0-1. Dado que 255 es el valor máximo, dividir por 255 expresa una representación 0-1.

Cada canal (rojo, verde y azul son canales) tiene 8 bits, por lo que cada uno está limitado a 256, en este caso 255 ya que se incluye 0. Como muestra la referencia, los sistemas suelen utilizar valores entre 0 y 1 cuando utilizan valores de punto flotante.

http://en.wikipedia.org/wiki/RGB_color_model

Consulte Representaciones numéricas.

Estos rangos se pueden cuantificar de varias maneras diferentes: De 0 a 1, con cualquier valor fraccionario intermedio. Esta representación se utiliza en análisis teóricos y en sistemas que utilizan representaciones de coma flotante. El valor de cada componente de color también se puede escribir como un porcentaje, de 0% a 100%. En las computadoras, los valores de los componentes a menudo se almacenan como números enteros en el rango de 0 a 255, el rango que puede ofrecer un solo byte de 8 bits. Estos a menudo se representan como números decimales o hexadecimales. Los equipos de imagen digital de gama alta a menudo pueden manejar rangos de enteros más grandes para cada color primario, como 0..1023 (10 bits), 0..65535 (16 bits) o incluso más, al extender los 24 bits ( tres valores de 8 bits) a unidades de 32 bits, 48 ​​bits o 64 bits (más o menos independientes del tamaño de palabra de la computadora en particular).

Los valores RGB generalmente se almacenan como números enteros para ahorrar memoria. Pero hacer operaciones matemáticas con los colores generalmente se hace en float porque es más fácil, más potente y más preciso. El acto de convertir flotantes en enteros se llama “Cuantización” y desecha la precisión.

Por lo general, los valores RGB se codifican como números enteros de 8 bits, que van de 0 a 255. Es un estándar de la industria pensar en 0.0f como negro y 1.0f como blanco (brillo máximo). Para convertir [0, 255] a [0.0f, 1.0f] todo lo que tienes que hacer es dividir por 255.0f.

Si te importa, esta es la fórmula para volver a convertir a entero: (int)piso(x * 255.0f + 0.5f). Pero primero sujete x a [0.0f, 1.0f] si necesario.

Comentarios y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *