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 delle stesse dimensioni sovrapposte. Il rettangolo blu è l'origine e il rettangolo rosso è la destinazione. Le immagini sono state composte con la modalità Source Over.

un'immagine di esempio che mostra 2 rettangoli arrotondati delle stesse dimensioni che si sovrappongono tramite la modalità di origine.

Ecco un altro esempio usando 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.
After
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 nome visualizzato e indice Tipo e valore predefinito Descrizione
Mode
D2D1_COMPOSITE_PROP_MODE
D2D1_COMPOSITE_MODE
D2D1_COMPOSITE_MODE_SOURCE_OVER
Modalità usata 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 = Destinazione Alfa
Enumerazione Equazione Dimensioni bitmap di output
D2D1_COMPOSITE_MODE_SOURCE_OVER O = S + (1 SA) * D Unione delle bitmap di origine e di destinazione
D2D1_COMPOSITE_MODE_DESTINATION_OVER O = (1 DA) * S + D Unione delle 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 delle bitmap di origine e di destinazione
D2D1_COMPOSITE_MODE_PLUS O = S + D Unione delle 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 in cui esiste l'origine) Unione delle bitmap di origine e di destinazione. La destinazione non è sovrascritta in cui l'origine non esiste.
D2D1_COMPOSITE_MODE_MASK_INVERT O = (1 D) * S + (1 SA) * D Unione delle bitmap di origine e di destinazione. I valori alfa sono invariati.

La figura seguente 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 di modalità di effetto composito Direct2D.

Requisiti

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
Libreria d2d1.lib, dxguid.lib

ID2D1Effect