Dela via


Sammansatt effekt

Använd den sammansatta effekten för att kombinera 2 eller fler bilder. Den här effekten har 13 olika sammansatta lägen. T

Den sammansatta effekten accepterar 2 eller fler indata. När du anger 2 bilder är målet den första indatan (index 0) och källan är den andra indatan (index 1). Om du anger fler än 2 indata är bilderna sammansatta från och med den första inmatningen och den andra och så vidare.

Den här effekten implementerar alla lägen med hjälp av blandningsenheten i grafikprocessorn (GPU).

CLSID för den här effekten är CLSID_D2D1Composite.

Exempelbild

Bilden här visar 2 rundade rektanglar av samma storlek som överlappar varandra. Den blå rektangeln är källan och den röda rektangeln är målet. Bilderna har sammansatts med läget Källa över.

en exempelbild som visar 2 rundade rektanglar av samma storlek som överlappar med hjälp av källöverläget.

Här är ett annat exempel med standardläget.

Före bild 1
den första källbilden före effekten.
Före bild 2
den andra bilden före effekten.
Efter
bilden efter transformen.
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();

Effektegenskaper

Visningsnamn och indexuppräkning Typ- och standardvärde Beskrivning
Läge
D2D1_COMPOSITE_PROP_MODE
D2D1_COMPOSITE_MODE
D2D1_COMPOSITE_MODE_SOURCE_OVER
Det läge som används för effekten.

Lägestyper

Tabellen här visar lägena för den här effekten. De ekvationer som anges i tabellen använder följande element:

  • O = utdata
  • S = Källa
  • SA = Source Alpha
  • D = Mål
  • DA = Mål alfa
Uppräkning Ekvation Storlek på utdatabitmapp
D2D1_COMPOSITE_MODE_SOURCE_OVER O = S + (1 SA) * D Union av käll- och målbitmappar
D2D1_COMPOSITE_MODE_DESTINATION_OVER O = (1 DA) * S + D Union av käll- och målbitmappar
D2D1_COMPOSITE_MODE_SOURCE_IN O = DA * S Skärningspunkt för käll- och målbitmappar
D2D1_COMPOSITE_MODE_DESTINATION_IN O = SA * D Skärningspunkt för käll- och målbitmappar
D2D1_COMPOSITE_MODE_SOURCE_OUT O = (1 - DA) * S Region för källbitmappen
D2D1_COMPOSITE_MODE_DESTINATION_OUT O = (1 - SA) * D Region för målbitmappen
D2D1_COMPOSITE_MODE_SOURCE_ATOP O = DA * S + (1 - SA) * D Region för målbitmappen
D2D1_COMPOSITE_MODE_DESTINATION_ATOP O = (1 - DA) * S + SA * D Region för källbitmappen
D2D1_COMPOSITE_MODE_XOR O = (1 - DA) * S + (1 - SA) * D Union av käll- och målbitmappar
D2D1_COMPOSITE_MODE_PLUS O = S + D Union av käll- och målbitmappar
D2D1_COMPOSITE_MODE_SOURCE_COPY O = S Region för källbitmappen
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY O = S (endast där källan finns) Union av käll- och målbitmappar. Målet skrivs inte över där källan inte finns.
D2D1_COMPOSITE_MODE_MASK_INVERT O = (1 D) * S + (1 SA) * D Union av käll- och målbitmappar. Alfavärdena är oförändrade.

Bilden här visar ett exempel på var och en av lägena med bilder som har en opacitet på 1,0 eller 0,5.

en exempelbild av var och en av lägena med opacitet inställd på 1,0 eller 0,5.

Exempelkod

Om du vill ha ett exempel på den här effekten laddar du ned exempel på Direct2D-sammansatta effektlägen.

Krav

Krav Värde
Lägsta klient som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Lägsta server som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Rubrik d2d1effects.h
Bibliotek d2d1.lib, dxguid.lib

ID2D1Effect