Efeito de gerenciamento de cores
Use o efeito de gerenciamento de cores para transformar uma imagem de um perfil de cor ICC (International Color Consortium) para outro. O efeito transforma a imagem de acordo com a especificação ICC.
O CLSID para esse efeito é CLSID_D2D1ColorManagement.
- Propriedades do efeito
- Modos de intenção de renderização
- Modos alfa de imagem de entrada
- Conformidade com a especificação do ICC
- Comportamento do canal alfa
- Modos de qualidade
- Código de exemplo
- Requirements
- Tópicos relacionados
Propriedades do efeito
Nome de exibição e enumeração de índice | Descrição |
---|---|
SourceContext D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT |
As informações de espaço de cor de origem. O tipo é ID2D1ColorContext. O valor padrão é NULL. |
SourceIntent D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT |
Qual intenção de renderização icc usar. O tipo é D2D1_COLORMANAGEMENT_RENDERING_INTENT. O valor padrão é D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. |
DestinationContext D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT |
As informações de espaço de cor de destino. O tipo é ID2D1ColorContext. O valor padrão é NULL. |
DestinationIntent D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT |
Qual intenção de renderização icc usar. O tipo é D2D1_COLORMANAGEMENT_RENDERING_INTENT. O valor padrão é D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL. |
AlphaMode D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE |
Como interpretar dados alfa contidos na imagem de entrada. O tipo é D2D1_COLORMANAGEMENT_ALPHA_MODE. O valor padrão é D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED. |
Qualidade D2D1_COLORMANAGEMENT_PROP_QUALITY |
O nível de qualidade da transformação. O tipo é D2D1_COLORMANAGEMENT_QUALITY. O valor padrão é D2D1_COLORMANAGEMENT_QUALITY_NORMAL. |
Modos de intenção de renderização
Enumeração | Descrição |
---|---|
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL | O efeito compacta ou expande a gama de cores completa da imagem para preencher a gama de cores do dispositivo, para produzir uma saída perceptuamente agradável que preserva os detalhes da cor, mas pode sacrificar a precisão colorimétrica. É útil para reprodução geral de conteúdo da vida real, como fotos. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC | O efeito ajusta todas as cores que ficam fora da gama que o dispositivo de saída pode renderizar para a cor mais próxima que pode ser renderizada. Ele não preserva o ponto branco. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION | O efeito preserva a saturação de cores puras na imagem em detrimento possível de matiz e leveza. Ele é útil para gráficos como gráficos e diagramas. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC | O efeito ajusta todas as cores que ficam fora da gama que o dispositivo de saída pode renderizar para a cor mais próxima que pode ser renderizada. O efeito não altera as cores na gama e preserva o ponto em branco. |
Modos alfa de imagem de entrada
Enumeração | Descrição |
---|---|
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED | O efeito pressupõe que o modo alfa seja pré-multiplicado. |
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT | O efeito pressupõe que o modo alfa seja reto. |
D2D1_GAMMA1_G2084 alterações de comportamento
Se o aplicativo usar o espaço D2D1_GAMMA1_G2084 ou um dos valores de enumeração DXGI_COLOR_SPACE_TYPE que usam o espaço de cores SMPTE ST.2084 (Quantizer perceptual), o aplicativo pretende trabalhar com dados HDR.
As APIs ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile e ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace não são responsáveis por isso; em vez disso, o conteúdo HDR é dimensionado para caber no intervalo de 0 a 1 durante a operação de DeGamma do G2084.
Na prática, o conteúdo codificado nesse espaço gama usa uma referência WhiteLevel de 10.000 Nits, que normalmente seria representado no CCCS como 10.000/80 = 125,0. Portanto, para facilitar melhor seu aplicativo, é mais simples para essa conversão gama também dimensionar a luminância em um fator de 125. A partir de Windows 10, versão 1809 (10.0; Build 17763), o comportamento do efeito de gerenciamento de cores é tal que ele aplica esse dimensionamento. Isso significa que você, como desenvolvedor, não precisa aplicar um segundo efeito de ajuste de nível branco no pipeline.
Conformidade com a especificação do ICC
O efeito de gerenciamento de cores está em conformidade com a especificação ICC v4.3, com estas limitações:
- O efeito dá suporte a espaços de cores de canal 1, 3 e 4.
- O efeito não dá suporte a perfis ColorSpace ou Cor Nomeada.
Comportamento do canal alfa
Em geral, o efeito define alfa como 1 (opaco) se não houver dados alfa na imagem de origem e os dados alfa forem descartados se não houver espaço na imagem de destino. A tabela aqui descreve o comportamento alfa.
Colorspace de origem, formato de pixel | Colorspace de destino, formato de pixel | Comportamento alfa |
---|---|---|
1 canal, formato de pixel R |
1 canal, formato de pixel R | (Sem dados alfa) |
1 canal, formato de pixel RGBA | Os dados alfa são definidos como 1 (opaco) | |
3 canal, formato de pixel RGBA | Os dados alfa são definidos como 1 (opaco) | |
4 canais, formato de pixel RGBA | (Sem dados alfa) | |
1 canal, formato de pixel RGBA |
1 canal, formato de pixel R | Os dados alfa são descartados |
1 canal, formato de pixel RGBA | Dados alfa são passados | |
3 canal, formato de pixel RGBA | Dados alfa são passados | |
4 canais, formato de pixel RGBA | Os dados alfa são descartados | |
3 canal, formato de pixel RGBA |
1 canal, formato de pixel R | Os dados alfa são descartados |
1 canal, formato de pixel RGBA | Dados alfa são passados | |
3 canal, formato de pixel RGBA | Dados alfa são passados | |
4 canais, formato de pixel RGBA | Os dados alfa são descartados | |
4 canais, formato de pixel RGBA |
1 canal, formato de pixel R | (Sem dados alfa) |
1 canal, formato de pixel RGBA | Os dados alfa são definidos como 1 (opaco) | |
3 canal, formato de pixel RGBA | Os dados alfa são definidos como 1 (opaco) | |
4 canais, formato de pixel RGBA | (Sem dados alfa) |
Modos de qualidade
Mode | Descrição |
---|---|
D2D1_COLORMANAGEMENT_QUALITY_PROOF | O modo de qualidade mais baixa. Esse modo requer o nível de recurso 9_1 ou superior. |
D2D1_COLORMANAGEMENT_QUALITY_NORMAL | Modo de qualidade normal. Esse modo requer o nível de recurso 9_1 ou superior. |
D2D1_COLORMANAGEMENT_QUALITY_BEST | O modo de melhor qualidade. Esse modo requer o nível de recurso 10_0 ou superior, bem como buffers de precisão de ponto flutuante. Esse modo dá suporte à precisão de ponto flutuante, bem como ao intervalo estendido, conforme definido na especificação ICC v4.3. |
O efeito de gerenciamento de cores falhará ao desenhar se o aplicativo solicitar um modo de qualidade sem suporte do hardware. Você pode determinar o nível de recurso ao chamar D3D11CreateDevice. Você pode marcar para suporte ao buffer de ponto flutuante chamando ID2D1EffectContext::IsBufferPrecisionSupported com o valor D2D1_BUFFER_PRECISION_32BPC_FLOAT.
Código de exemplo
Para obter um exemplo desse efeito, baixe o Direct2D exemplo de ajuste de foto de efeitos e consulte a Lição 4 do exemplo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 e Atualização de Plataforma para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Servidor mínimo com suporte | Windows 8 e Atualização de Plataforma para Windows 7 [aplicativos da área de trabalho | Aplicativos da Windows Store] |
Cabeçalho | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |