Compartilhar via


Efeito composto

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

O efeito composto aceita 2 ou mais entradas. Quando você especifica duas 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.

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

O CLSID para esse efeito é CLSID_D2D1Composite.

Imagem de exemplo

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

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

Veja 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.
After (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 de efeito

Nome de exibição e enumeração de índice Tipo e valor padrão Descrição
Mode
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 = Origem
  • SA = Alfa de origem
  • D = Destino
  • DA = Destino Alfa
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 (somente onde a origem existe) 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 não são alterados.

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 Direct2D modos de efeito composto.

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

ID2D1Effect