Partilhar via


Efeito composto

Use o efeito composto para combinar 2 ou mais imagens. Este efeito tem 13 modos compostos diferentes. T

O efeito composto aceita 2 ou mais entradas. Quando você especifica 2 imagens, o destino é a primeira entrada (índice 0) e a origem é a segunda entrada (índice 1). Se você especificar mais de 2 entradas, as imagens serão compostas começando com a primeira entrada e a segunda e assim por diante.

Este efeito implementa todos os modos usando a unidade de mistura da unidade de processamento gráfico (GPU).

O CLSID para este efeito é CLSID_D2D1Composite.

Imagem de exemplo

A imagem aqui mostra 2 retângulos arredondados do mesmo tamanho que se sobrepõem. O retângulo azul é a fonte e o retângulo vermelho é o destino. As imagens foram compostas com o modo Source Over.

uma imagem de exemplo mostrando 2 retângulos arredondados do mesmo tamanho que se sobrepõem usando o modo fonte sobre.

Aqui está outro exemplo usando o modo padrão.

Antes da imagem 1
a primeira imagem de origem antes do efeito.
Antes da imagem 2
a segunda imagem antes do efeito.
Após
a imagem após a transformação.
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);

compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();

Propriedades do efeito

Nome para exibição e enumeração de índice Tipo e valor padrão Descrição
Modo
D2D1_COMPOSITE_PROP_MODE
D2D1_COMPOSITE_MODE
D2D1_COMPOSITE_MODE_SOURCE_OVER
O modo usado para o efeito.

Tipos de modo

A tabela aqui mostra os modos desse efeito. As equações listadas na tabela usam estes elementos:

  • O = Saída
  • S = Fonte
  • SA = Fonte Alpha
  • D = Destino
  • DA = Alfa de destino
Enumeração Equação Tamanho do bitmap de saída
D2D1_COMPOSITE_MODE_SOURCE_OVER O = S + (1 SA) * D União de bitmaps de origem e destino
D2D1_COMPOSITE_MODE_DESTINATION_OVER O = (1 DA) * S + D União de bitmaps de origem e destino
D2D1_COMPOSITE_MODE_SOURCE_IN O = DA * S Interseção de bitmaps de origem e destino
D2D1_COMPOSITE_MODE_DESTINATION_IN O = SA * D Interseção de bitmaps de origem e destino
D2D1_COMPOSITE_MODE_SOURCE_OUT O = (1 - DA) * S Região do bitmap de origem
D2D1_COMPOSITE_MODE_DESTINATION_OUT O = (1 - SA) * D Região do bitmap de destino
D2D1_COMPOSITE_MODE_SOURCE_ATOP O = DA * S + (1 - SA) * D Região do bitmap de destino
D2D1_COMPOSITE_MODE_DESTINATION_ATOP O = (1 - DA) * S + SA * D Região do bitmap de origem
D2D1_COMPOSITE_MODE_XOR O = (1 - DA) * S + (1 - SA) * D União de bitmaps de origem e destino
D2D1_COMPOSITE_MODE_PLUS O = S + D União de bitmaps de origem e destino
D2D1_COMPOSITE_MODE_SOURCE_COPY O = S Região do bitmap de origem
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY O = S (apenas onde existe fonte) União de bitmaps de origem e destino. O destino não é substituído onde a origem não existe.
D2D1_COMPOSITE_MODE_MASK_INVERT O = (1 D) * S + (1 SA) * D União de bitmaps de origem e destino. Os valores alfa permanecem inalterados.

A figura aqui mostra um exemplo de cada um dos modos com imagens que têm uma opacidade de 1,0 ou 0,5.

uma imagem de exemplo de cada um dos modos com opacidade definida como 1,0 ou 0,5.

Código de exemplo

Para obter um exemplo desse efeito, baixe o exemplo de modos de efeito composto Direct2D.

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

ID2D1Effect