darktable emplea un flujo de trabajo con manejo completo de color:
Input color specifications are taken from embedded or user supplied ICC profiles or, in the case of raw files, from a library of camera specific color matrices.
darktable automatically reads the display profile of your monitor (if properly configured) for an accurate color rendition on screen. Multi-screen setups are fully supported as long as a system service such as colord is in place and properly set up to inform darktable about the correct monitor profile.
Output files can be encoded in one of darktable's built-in profiles, including sRGB, Adobe, ProPhoto, Rec. 2020, Rec. 709 and other standard RGB color spaces, or into a color space supplied by the user as an ICC profile.
In order for darktable to accurately render colors on screen it needs to find the correct display profile of your monitor. In general this requires your monitor to be properly calibrated and profiled, and it needs the profile to be correctly installed on your system. darktable queries your X display server's xatom as well as the system service colord (if available) for the right profile. If needed you can enforce a specific method in the miscellaneous section of the preferences dialog (see Sección 8.10, “Miscelánea”).
Para investigar la configuración del perfil de su monitor, puede invocar el binario darktable-cmstest
(sólo en GNU/Linux) el cual imprime una salida con información útil como el nombre del perfil por monitor y le indica si
su sistema está configurado correctamente (ver Sección 1.1.6, “binario darktable-cmstest
”).
En raras ocasiones es posible que se deba seleccionar manualmente el perfil de visualización. Es posible lograrlo desde los cuadros de diálogo de opciones de prueba de software y prueba de gama en la vista de cuarto oscuro (vea Sección 3.3.11.5, “Prueba en pantalla” y Sección 3.3.11.6, “Revisión de gama”), y en el cuadro de diálogo de perfil de visualización en la vista de mesa de luz (ver Sección 2.1, “Resumen”).
darktable puede procesar colores bien sea con sus algoritmos internos o al utilizar librerías externas Little CMS 2. El método interno de darktable es por orden de magnitud más rápido que el externo. La opción externa le permite escoger la representación de color y puede ofrecer una exactitud un poco mayor en algunos casos.
A configuration parameter “always use LittleCMS 2 to apply output color profile” in the processing section of the preferences dialog (see Sección 8.6, “Processing”) defines which method is used. Note, however, that if the given ICC is LUT-based, or contains both a LUT and a matrix, darktable will use LittleCMS 2 to render the colors regardless of that configuration parameter's value.
Si el procesado con Little CMS 2 es activado (ver Sección 3.2.6.2, “Método de procesado”) puede definir los como la gama de colores de salida son manejados al convertir entre espacios de color. Una caja de selección en el panel de exportar (ver Sección 2.3.14, “Exportar selección”), el módulo de perfil de color de salida (ver Sección 3.4.1.2, “Perfil de color de salida”), y la opción de prueba en pantalla (ver Sección 3.3.11.5, “Prueba en pantalla”) le da la opción de escojer entre diversas representaciones de color:
porcentual | Ajustado para imagenes que mantienen una posición relativa de colores. Esta es usualmente la mejor opción. |
colorimétrico relativo | colores fuera de la gama, son convertidos a colores que tienen la misma luminosidad, pero diferente saturación. Otros colores permanecen sin modificaciones. |
saturación | Saturación se mantiene pero la luminosidad es minimamente cambiada. |
colorimétrico absoluto | Mantiene el punto blanco. |
darktable's input images are either RGB files (like JPEGs or TIFFs) or camera raws – both represent colors by a combination of red, green and blue. Most of the actual image processing takes place in a large RGB "working profile" space, with some (mostly older) modules internally working in the CIELAB color space. The final output of the image processing pipeline is in an RGB space shaped for either the monitor display or the output file.
This process implies that the pixelpipe has two fixed color conversion steps: input color profile and output color profile. In addition there is the demosaic step for raw images, where the colors of each pixel are reconstructed by interpolation.
Each module has a position in the pixelpipe which tells you which color space the module lives in:
a interpolación cromática | La imagen está en formato de datos en bruto con solo colores latentes. Cada pixel transporta información de luminosidad y color para un solo color base. Tenga en cuenta que algunos de los módulos de esta parte también pueden actuar en imágenes de entrada con formato RGB con información completa sobre los tres canales de color que no sean en bruto. | |
entre interpolación cromática y perfil de color de entrada | La imagen está en formato RGB entre el espacio de color específico de la cámara o el archivo de entrada. | |
entre perfil de color de entrada y perfil de color de salida | Image is in the space defined by the selected working profile (linear Rec2020 RGB by default). As darktable processes images in 4x32-bit floating point buffers, we can handle large working color spaces without risking banding or tonal breaks. | |
luego de perfil de color de salida | La imagen está en formato RGB y es definida al seleccionar el monitor o salida del perfil de ICC. |
Teóricamente, los componentes individuales de los datos de color se limitan a ciertos niveles mínimos y máximos. Por ejemplo, la intensidad de un canal de color rojo, verde o azul en RGB puede ser cualquier valor en el rango entre 0% y 100% (o entre 0.0 y 1.0). Del mismo modo, el canal L en Lab puede estar entre 0 (negro puro) y 100 (blanco puro).
In practice sometimes the image processing steps in darktable's modules can lead to values which lie outside of these confined ranges. In fact even the well established color matrices, which convert from RGB to Lab, may sometimes produce pixels with negative L values.
Los pixeles con estos tipos de valores se dicen que tienen “colores limitados”. Uno podría abrazar (i.e. confinar) esos valores para el rango permitido en cada paso de procesado. Sin embargo, se ha encontrado que es preferible y menos propenso a artefactos, no abrazar colores ilimitados intermedios, pero tratarlos como cualquier otro color.
En darktable no hay requerimientos técnicos para la retención: debido al hecho de que estamos usando un punto flotante aritmético para todos los pasos de procesado, los valores ilimitados puedan ser pasados junto con cualquier otro valor hasta que el módulo que hace la conversión final de color, se asegure de que son transferidos al color mas razonable junto con la salida de espacio de color seleccionado. Por ende, darktable evitará la retención mientras el algoritmo base lo permita.
Dicho esto, hay más situaciones infrecuentes que aún pueden llevar a resultados problemáticos a menos que el usuario tome algunas acciones. Algunos módulos en el espacio de color Lab, como niveles y monocromo, necesitan recaer en el hecho de que los canales L llevan toda la información de luminosidad y que los canales a y b solo representan el croma y el tono. Colores ilimitados con valores L negativos son especialmente problemáticos para estos módulos y pueden generar artefactos de pixeles negros.
It has been found that highly saturated blue light sources in the image frame are likely candidates for pixels with negative L values. If you are engaged in stage photography you should pay close attention to such lights appearing in images.
Para mitigar dicho problema el módulo de perfil de color de entrada (ver Sección 3.4.1.11, “perfil de color de entrada”) tiene la opción de retención de gama. Está apagado por defecto pero puede ser activado en caso de que observe artefactos. Dependiendo de los ajustes, los colores se confinan en uno de las gamas RGB ofrecidas. De hecho, los artefactos de pixel negro son prevenidos a costa de perder una parte de la dinámica. Ver Sección 3.4.1.11, “perfil de color de entrada” para ejemplos.