2012-09-24 18 views

Respuesta

9

tl; dr uso del espacio de color calibrado.

En lugar de regurgitar la documentación - la respuesta está en la Color Programming Topics

También el Color Space Overview

enter image description here

Editado para agregar

sRGB es uno de los espacios de color con nombre.

enter image description here

Finalmente - y esta es la última imagen de la documentación, y espero que responda a su pregunta - si usted desea utilizar un espacio de color, utilice el calibrado uno.

enter image description here

+0

Ok, que responde vagamente por '' colorWithCalibratedRed' y colorWithDeviceRed', pero lo de 'colorWithSRGBRed'? – haroldcampbell

+0

gracias @abizern – haroldcampbell

6

Un conjunto de valores RGB no describe realmente un color. Sólo se le dice a su adaptador de gráficos cuánto porcentaje de luz roja, verde y azul que desea en ese color, pero un color como el 50% de rojo puro no es del mismo color en todos los monitores por dos razones:

  1. 50 % no es el mismo brillo relativo en todos los monitores debido a ligeramente diferentes curvas gamma (que no es el mismo brillo absoluto, ya sea porque de diferente brillo de la retroiluminación, pero que en realidad es irrelevante - sólo valores relativos son importantes)

  2. Incluso 100 % rojo no es el mismo tono rojo ya que los monitores tienen diferentes "tonos" de rojo, dependiendo de su color de luz de fondo y su color filt ers.

Así que la misma combinación de RGB puede verse diferente en diferentes monitores. Al ser una naranja agradable en su monitor, podría verse como un rojo muy brillante en algunos y como un amarillo oscuro en otros monitores. Son los mismos valores RGB en todas partes, pero no del mismo color.

Para que RGB describa un "color", también necesita un espacio de color, que define un espacio de colores donde los valores RGB son como coordenadas en ese espacio y así describir un color exacto.

enter image description here (El cargador original fue Cpesacreta en Inglés Wikipedia -. Transferido desde en.wikipedia de los Comunes por aboalbiss)

Si utiliza colorWithDeviceRed:green:blue:alpha:, valores RGB no se transforman, se les informó exactamente como esta a su adaptador de gráficos. Por lo tanto, el color realmente tendrá estos valores RGB, pero los resultados que el usuario ve en la pantalla variarán de una pantalla a otra.

Si usa colorWithSRGBRed:green:blue:alpha:, los valores RGB se interpretan como valores RGB del espacio de color sRGB. El sistema conoce ese espacio y, por lo tanto, sabe qué color se describe aquí. Si el sistema también conoce el espacio de color de su monitor (por ejemplo, porque ha sido calibrado en fábrica o por los usuarios que utilizan una herramienta de calibración), puede transformar los valores RGB del espacio de color sRGB en el espacio de color nativo de su monitor. Esta transformación cambiará los valores RGB absolutos en su camino hacia su monitor. Puede haber usado #758299 y el monitor realmente mostrará #7483A1, pero eso es porque el color #7483A1 se ve exactamente como el color sRGB #758299 en esta pantalla, por lo que el usuario ve el color correcto esperado (aunque puede no tener los mismos valores RGB, pero los usuarios no ven los valores RGB, ven los colores).

sRGB es un espacio de color muy popular, es el más compatible, la mayoría de las aplicaciones gráficas y el sistema lo conoce y puede esperar que cada pantalla moderna pueda mostrar correctamente casi todo el color sRGB existente. Pero también es un espacio de color muy limitado. sRGB es solo un subconjunto de todos los colores que la mayoría de los dispositivos pueden mostrar a partir de hoy y tampoco ofrece 16,7 millones de colores diferentes (aunque existen muchas combinaciones RGB posibles). Es por eso que existen espacios de color más amplios, como el de Adobe que se encuentra en todas las aplicaciones gráficas de Adobe. Apple ofrece un espacio de color denominado "espacio de color calibrado", a veces también denominado "espacio de color genérico". Lo usa con colorWithCalibratedRed:green:blue:alpha: y, por lo que puedo encontrar en la documentación, este es básicamente el espacio de color HSB, que es más ancho que sRGB (internamente almacena colores en un formato diferente pero hay una fórmula fija, neutral para el dispositivo para convertir RBG a HSB y HSB de nuevo a RGB).

Por lo tanto, si la corrección del color es importante para usted (el usuario verá el mismo color en la pantalla, independientemente de los valores RGB necesarios para lograrlo), siempre debe especificar colores en combinación con un espacio de color. No importa si usa sRGB o Genérico/Calibrado, solo use el mismo en toda su aplicación.

Si utiliza una herramienta que informa colores en sRGB, los valores hexadecimales solo coinciden con ese espacio. Tenga en cuenta que todos los estándares web usan colores sRGB implícitamente. Por lo tanto, cuando utiliza colores hexadecimales en archivos HTML o CSS, estos siempre se interpretan como valores sRGB. Además, cuando recibes colores de una fuente externa y esta fuente no te dice a qué espacio de color pertenecen, siempre es más seguro asumir sRGB.

Si usted lee los colores de la pantalla utilizando el selector de color del medidor digital en color aplicación (que siempre viene con MacOS), asegúrese de elegir Pantalla en RGB Genérico o Pantalla en sRGB pero don' t use Muestra los valores nativos si planea usar estos valores en aplicaciones o sitios web. Los valores nativos son solo lo que su sistema realmente usa para mostrar ese color, pero esta combinación solo se ve de esa manera en su sistema.

Por supuesto, nada de esto puede funcionar si su pantalla no está calibrada correctamente. Las pantallas modernas tienen un perfil de calibración incrustado que las computadoras pueden descargar y los dispositivos móviles también tienen su calibración almacenada en el dispositivo. Si tiene un monitor anterior o si cree que el perfil no es preciso (o no es preciso debido al envejecimiento de la pantalla), necesita obtener hardware de calibración de pantalla y usar una herramienta como DisplayCAL para generar un mejor perfil (libre, OpenSource, todas las plataformas principales, admiten una amplia gama de hardware USB)

Una pregunta común es, ¿qué sucede en realidad, si interpreto los valores RGB de acuerdo con el espacio de color incorrecto? Bueno, no se verá del todo mal.Si visualiza una imagen de un espacio de color más pequeño como si fuera de una más grande, entonces la imagen se verá muy "vibrante" (todos los colores tienen mucha saturación, se mejorarán los contrastes, se mejorará la nitidez), si es el De otro modo, la imagen parecerá más bien "muda" (los colores tendrán mucha menos saturación, el contraste disminuirá, la nitidez disminuirá). Vea este ejemplo: la imagen tiene un espacio de color normal y se muestra con el espacio de color correcto a la derecha, a la izquierda se muestra en un amplio espacio de color, tratando los valores RGB de la imagen como si pertenecieran a ese espacio de color ancho, que en realidad no lo son, por lo tanto, la vivacidad exagerada:

enter image description here

Cuestiones relacionadas