Condividi tramite


Effetto composito

Usare l'effetto composito per combinare 2 o più immagini. Questo effetto ha 13 diverse modalità composite. T

L'effetto composito accetta 2 o più input. Quando si specificano 2 immagini, la destinazione è il primo input (indice 0) e l'origine è il secondo input (indice 1). Se si specificano più di 2 input, le immagini vengono composte a partire dal primo input e dal secondo e così via.

Questo effetto implementa tutte le modalità usando l'unità di fusione dell'unità di elaborazione grafica (GPU).

Il CLSID per questo effetto è CLSID_D2D1Composite.

Immagine di esempio

L'immagine seguente mostra 2 rettangoli arrotondati con le stesse dimensioni che si sovrappongono. Il rettangolo blu è l'origine e il rettangolo rosso è la destinazione. Le immagini sono state composte con la modalità Over di origine.

un'immagine di esempio che mostra due rettangoli arrotondati con le stesse dimensioni che si sovrappongono usando la modalità di origine over.

Ecco un altro esempio che usa la modalità predefinita.

Prima dell'immagine 1
la prima immagine di origine prima dell'effetto.
Prima dell'immagine 2
la seconda immagine prima dell'effetto.
Dopo
'immagine dopo la trasformazione.
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();

Proprietà dell'effetto

Enumerazione del nome visualizzato e dell'indice Tipo e valore predefinito Descrizione
Modo
D2D1_COMPOSITE_PROP_MODE
D2D1_COMPOSITE_MODE
D2D1_COMPOSITE_MODE_SOURCE_OVER
Modalità utilizzata per l'effetto.

Tipi di modalità

La tabella seguente mostra le modalità di questo effetto. Le equazioni elencate nella tabella usano questi elementi:

  • O = Output
  • S = Origine
  • SA = Source Alpha
  • D = Destinazione
  • DA = Destination Alpha
Enumerazione Equazione Dimensioni bitmap di output
D2D1_COMPOSITE_MODE_SOURCE_OVER O = S + (1 SA) * D Unione di bitmap di origine e di destinazione
D2D1_COMPOSITE_MODE_DESTINATION_OVER O = (1 DA) * S + D Unione di bitmap di origine e di destinazione
D2D1_COMPOSITE_MODE_SOURCE_IN O = DA * S Intersezione delle bitmap di origine e di destinazione
D2D1_COMPOSITE_MODE_DESTINATION_IN O = SA * D Intersezione delle bitmap di origine e di destinazione
D2D1_COMPOSITE_MODE_SOURCE_OUT O = (1 - DA) * S Area della bitmap di origine
D2D1_COMPOSITE_MODE_DESTINATION_OUT O = (1 - SA) * D Area della bitmap di destinazione
D2D1_COMPOSITE_MODE_SOURCE_ATOP O = DA * S + (1 - SA) * D Area della bitmap di destinazione
D2D1_COMPOSITE_MODE_DESTINATION_ATOP O = (1 - DA) * S + SA * D Area della bitmap di origine
D2D1_COMPOSITE_MODE_XOR O = (1 - DA) * S + (1 - SA) * D Unione di bitmap di origine e di destinazione
D2D1_COMPOSITE_MODE_PLUS O = S + D Unione di bitmap di origine e di destinazione
D2D1_COMPOSITE_MODE_SOURCE_COPY O = S Area della bitmap di origine
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY O = S (solo dove esiste l'origine) Unione di bitmap di origine e di destinazione. La destinazione non viene sovrascritta in cui l'origine non esiste.
D2D1_COMPOSITE_MODE_MASK_INVERT O = (1 D) * S + (1 SA) * D Unione di bitmap di origine e di destinazione. I valori alfa sono invariati.

La figura mostra un esempio di ognuna delle modalità con immagini con opacità pari a 1.0 o 0.5.

un'immagine di esempio di ognuna delle modalità con opacità impostata su 1.0 o 0.5.

Codice di esempio

Per un esempio di questo effetto, scaricare l'esempio modalità di effetto composito Direct2D.

Fabbisogno

Requisito Valore
Client minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Server minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Intestazione d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect