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) em outro. O efeito transforma a imagem de acordo com a especificação ICC.
O CLSID para este efeito é CLSID_D2D1ColorManagement.
- Propriedades de efeito
- Modos de intenção de renderização
- Modos alfa de imagem de entrada
- Conformidade com a especificação ICC
- de comportamento do canal alfa
- Modos de qualidade
- Código de exemplo
- Requisitos
- Tópicos relacionados
Propriedades do efeito
Nome para exibição e enumeração de índice | Descrição |
---|---|
SourceContext D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT |
As informações do espaço de cor de origem. O tipo é ID2D1ColorContext. O valor padrão é NULL. |
SourceIntent D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT |
Qual a intenção de renderização ICC usar. O tipo é D2D1_COLORMANAGEMENT_RENDERING_INTENT. O valor padrão é D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCETUAL. |
DestinationContext D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT |
As informações do espaço de cores de destino. O tipo é ID2D1ColorContext. O valor padrão é NULL. |
DestinoIntenção D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT |
Qual a intenção de renderização ICC usar. O tipo é D2D1_COLORMANAGEMENT_RENDERING_INTENT. O valor padrão é D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCETUAL. |
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 comprime ou expande a gama de cores completa da imagem para preencher a gama de cores do dispositivo, para produzir uma saída percetivamente agradável que preserva os detalhes da cor, mas pode sacrificar a precisão colorimétrica. É útil para a reprodução geral de conteúdo da vida real, como fotos. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC | O efeito ajusta todas as cores que estão fora da gama que o dispositivo de saída pode renderizar para a cor mais próxima que pode ser renderizada. Não preserva o ponto branco. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION | O efeito preserva a saturação de cores puras na imagem à custa possível da tonalidade e leveza. É útil para gráficos como gráficos e diagramas. |
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC | O efeito ajusta todas as cores que estão 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 da gama e preserva o ponto branco. |
Modos alfa de imagem de entrada
Enumeração | Descrição |
---|---|
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED | O efeito pressupõe que o modo alfa é pré-multiplicado. |
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT | O efeito assume que o modo alfa é reto. |
D2D1_GAMMA1_G2084 mudanças de comportamento
Se seu aplicativo usa o espaço de D2D1_GAMMA1_G2084 ou um dos valores de enumeração DXGI_COLOR_SPACE_TYPE que usam o espaço de cores SMPTE ST.2084 (Percetual Quantizer), o aplicativo pretende trabalhar com dados HDR.
O ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfile e ID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace APIs não levam em conta isso; em vez disso, o conteúdo HDR é dimensionado para caber na faixa de 0-1 durante a operação G2084 DeGamma.
Na prática, o conteúdo que é codificado neste espaço gama usa um WhiteLevel de referência 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 por um fator de 125. A partir do 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 ICC
O efeito de gerenciamento de cores é compatível com a especificação ICC v4.3, com estas limitações:
- O efeito suporta espaços de cores de 1, 3 e 4 canais.
- O efeito não suporta perfis ColorSpace ou Named Color.
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 são descartados se não houver espaço na imagem de destino. A tabela aqui descreve o comportamento alfa.
Espaço de cores de origem, formato de pixel | Espaço de cores de destino, formato de pixel | Comportamento alfa |
---|---|---|
1 canal, formato R pixel |
1 canal, formato R pixel | (Sem dados alfa) |
1 canal, formato de pixel RGBA | Os dados alfa são definidos como 1 (opaco) | |
3 canais, 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 R pixel | Os dados alfa são descartados |
1 canal, formato de pixel RGBA | Os dados alfa são passados através | |
3 canais, formato de pixel RGBA | Os dados alfa são passados através | |
4 canais, formato de pixel RGBA | Os dados alfa são descartados | |
3 canais, formato de pixel RGBA |
1 canal, formato R pixel | Os dados alfa são descartados |
1 canal, formato de pixel RGBA | Os dados alfa são passados através | |
3 canais, formato de pixel RGBA | Os dados alfa são passados através | |
4 canais, formato de pixel RGBA | Os dados alfa são descartados | |
4 canais, formato de pixel RGBA |
1 canal, formato R pixel | (Sem dados alfa) |
1 canal, formato de pixel RGBA | Os dados alfa são definidos como 1 (opaco) | |
3 canais, 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
Modo | Descrição |
---|---|
D2D1_COLORMANAGEMENT_QUALITY_PROOF | O modo de qualidade mais baixa. Este modo requer o nível de funcionalidade 9_1 ou superior. |
D2D1_COLORMANAGEMENT_QUALITY_NORMAL | Modo de qualidade normal. Este modo requer o nível de funcionalidade 9_1 ou superior. |
D2D1_COLORMANAGEMENT_QUALITY_BEST | O melhor modo de qualidade. Este modo requer o nível de recurso 10_0 ou superior, bem como buffers de precisão de ponto flutuante. Este modo suporta precisão de ponto flutuante, bem como alcance 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 que não é suportado pelo hardware. Você pode determinar o nível do recurso ao chamar D3D11CreateDevice. Você pode verificar o 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 exemplo de ajuste de fotos de efeitos Direct2De consulte a Lição 4 do exemplo.
Requerimentos
Exigência | Valor |
---|---|
Cliente mínimo suportado | Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows] |
Servidor mínimo suportado | Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows] |
Cabeçalho | d2d1effects.h |
Biblioteca | d2d1.lib, dxguid.lib |