Efecto de administración de colores

Use el efecto de administración de colores para transformar una imagen de un perfil de color ICC (International Color Consortium) a otro. El efecto transforma la imagen según la especificación ICC.

El CLSID de este efecto es CLSID_D2D1ColorManagement.

Propiedades de efecto

Enumeración de nombre para mostrar e índice Descripción
SourceContext
D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT
Información del espacio de colores de origen. El tipo es ID2D1ColorContext.
El valor predeterminado es NULL.
SourceIntent
D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT
Qué intención de representación de ICC se va a usar. El tipo es D2D1_COLORMANAGEMENT_RENDERING_INTENT.
El valor predeterminado es D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL.
DestinationContext
D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT
Información del espacio de colores de destino. El tipo es ID2D1ColorContext.
El valor predeterminado es NULL.
DestinationIntent
D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT
Qué intención de representación de ICC se va a usar. El tipo es D2D1_COLORMANAGEMENT_RENDERING_INTENT.
El valor predeterminado es D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL.
AlphaMode
D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE
Cómo interpretar los datos alfa contenidos en la imagen de entrada. El tipo es D2D1_COLORMANAGEMENT_ALPHA_MODE.
El valor predeterminado es D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED.
Calidad
D2D1_COLORMANAGEMENT_PROP_QUALITY
Nivel de calidad de la transformación. El tipo es D2D1_COLORMANAGEMENT_QUALITY.
El valor predeterminado es D2D1_COLORMANAGEMENT_QUALITY_NORMAL.

Modos de intención de representación

Enumeración Descripción
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL El efecto comprime o expande la gama de colores completa de la imagen para rellenar la gama de colores del dispositivo, para producir una salida perceptualmente agradable que conserva los detalles del color, pero puede sacrificar la precisión colorimétrica. Es útil para la reproducción general de contenido real como fotos.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC El efecto ajusta los colores que se encuentran fuera de la gama que el dispositivo de salida puede representar al color más cercano que se puede representar. No conserva el punto blanco.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION El efecto conserva la saturación de colores puros en la imagen a costa del matiz y la ligereza posibles. Resulta útil para gráficos como gráficos y diagramas.
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC El efecto ajusta los colores que se encuentran fuera de la gama que el dispositivo de salida puede representar al color más cercano que se puede representar. El efecto no cambia los colores de la gama y conserva el punto blanco.

Modos alfa de imagen de entrada

Enumeración Descripción
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED El efecto supone que el modo alfa está premultiplicado.
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT El efecto supone que el modo alfa es recto.

D2D1_GAMMA1_G2084 cambios de comportamiento

Si la aplicación usa el espacio D2D1_GAMMA1_G2084 o uno de los valores de enumeración de DXGI_COLOR_SPACE_TYPE que usan el espacio de color SMPTE ST.2084 (Perceptual Quantizer), la aplicación pretende trabajar con datos HDR.

Las API ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile y ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace no tienen en cuenta; en su lugar, el contenido HDR se escala para ajustarse al intervalo de 0 a 1 durante la operación G2084 DeGamma.

En la práctica, el contenido codificado en este espacio gamma utiliza una referencia WhiteLevel de 10 000 Nits, que normalmente se representaría en CCCS como 10 000 / 80 = 125,0. Por lo tanto, para facilitar mejor la aplicación, es más sencillo que esta conversión gamma también escale la luminancia por un factor de 125. A partir de Windows 10, versión 1809 (10.0; Compilación 17763), el comportamiento del efecto de administración de colores es tal que aplica este escalado. Esto significa que, como desarrollador, no es necesario aplicar un segundo efecto de ajuste de nivel blanco a la canalización.

Cumplimiento de la especificación ICC

El efecto de administración de colores es compatible con la especificación ICC v4.3, con estas limitaciones:

  • El efecto admite 1, 3 y 4 espacios de color de canal.
  • El efecto no admite perfiles ColorSpace o Color con nombre.

Comportamiento del canal alfa

En general, el efecto establece alfa en 1 (opaco) si no hay datos alfa en la imagen de origen y los datos alfa se descartan si no hay espacio en la imagen de destino. En la tabla siguiente se describe el comportamiento alfa.

Espacio de colores de origen, formato de píxeles Espacio de colores de destino, formato de píxeles Comportamiento alfa
1 canal, formato de píxel de R
1 canal, formato de píxel de R (Sin datos alfa)
1 canal, formato de píxel RGBA Los datos alfa se establecen en 1 (opaco)
3 canales, formato de píxel RGBA Los datos alfa se establecen en 1 (opaco)
4 canales, formato de píxel RGBA (Sin datos alfa)
1 canal, formato de píxel RGBA
1 canal, formato de píxel de R Los datos alfa se descartan
1 canal, formato de píxel RGBA Los datos alfa se pasan a través de
3 canales, formato de píxel RGBA Los datos alfa se pasan a través de
4 canales, formato de píxel RGBA Los datos alfa se descartan
3 canales, formato de píxel RGBA
1 canal, formato de píxel de R Los datos alfa se descartan
1 canal, formato de píxel RGBA Los datos alfa se pasan a través de
3 canales, formato de píxel RGBA Los datos alfa se pasan a través de
4 canales, formato de píxel RGBA Los datos alfa se descartan
4 canales, formato de píxel RGBA
1 canal, formato de píxel de R (Sin datos alfa)
1 canal, formato de píxel RGBA Los datos alfa se establecen en 1 (opaco)
3 canales, formato de píxel RGBA Los datos alfa se establecen en 1 (opaco)
4 canales, formato de píxel RGBA (Sin datos alfa)

Modos de calidad

Mode Descripción
D2D1_COLORMANAGEMENT_QUALITY_PROOF Modo de calidad más bajo. Este modo requiere el nivel de característica 9_1 o superior.
D2D1_COLORMANAGEMENT_QUALITY_NORMAL Modo de calidad normal. Este modo requiere el nivel de característica 9_1 o superior.
D2D1_COLORMANAGEMENT_QUALITY_BEST El mejor modo de calidad. Este modo requiere el nivel de característica 10_0 o superior, así como los búferes de precisión de punto flotante. Este modo admite la precisión de punto flotante, así como el intervalo extendido tal como se define en la especificación ICC v4.3.

Se produce un error en el efecto de administración de colores al dibujar si la aplicación solicita un modo de calidad que no es compatible con el hardware. Puede determinar el nivel de característica al llamar a D3D11CreateDevice. Puede comprobar si hay compatibilidad con el búfer de punto flotante llamando a ID2D1EffectContext::IsBufferPrecisionSupported con el valor D2D1_BUFFER_PRECISION_32BPC_FLOAT.

Código de ejemplo

Para obtener un ejemplo de este efecto, descargue la muestra de ajuste fotográfico de efectos Direct2D y vea lección 4 de la muestra.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Servidor mínimo compatible Windows 8 y actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Encabezado d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib