Linjär överföringseffekt
Använd den linjära överföringseffekten för att mappa färgintensiteterna i en bild med hjälp av en linjär funktion som skapats från en lista med värden som du anger för varje kanal.
CLSID för den här effekten är CLSID_D2D1LinearTransfer.
- Exempelbild
- egenskaper för effekt
- Krav
- Relaterade ämnen
Exempelbild
Före |
---|
![]() |
Efter |
![]() |
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);
linearTransferEffect->SetInput(0, bitmap);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(linearTransferEffect.Get());
m_d2dContext->EndDraw();
Den linjära överföringsfunktionen skapas baserat på lutningen och y-intercept för varje kanal som du anger. Utdatapixelintensiteten C beräknas med ekvationen: C' = mC + B, där m är lutningen för den linjära funktionen och B är Y-skärningspunkten för den linjära funktionen.
Den här effekten fungerar på raka och förmultiplierade alfabilder. Effekten matar ut förmultiplied alfa bitmappar.
Effektegenskaper
Not
För alla kanaler i de linjära överföringsegenskaperna:
- Y-skärningspunkten är inte begränsad och är enhetslös.
- Lutningen är inte begränsad och är enhetslös.
Visningsnamn och indexuppräkning | Typ- och standardvärde | Beskrivning |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
FLYTA 0.0f |
Y-skärningspunkten för den linjära funktionen för den röda kanalen. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
FLYTA 1.0f |
Den linjära funktionens lutning för den röda kanalen. |
RedDisable D2D1_LINEARTRANSFER_PROP_RED_DISABLE |
BOOL FALSK |
Om du ställer in detta på TRUE tillämpas inte överföringsfunktionen på den röda kanalen. Om du ställer in detta på FALSE tillämpas funktionen RedLinearTransfer på den röda kanalen. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
FLYTA 0.0f |
Y-skärningspunkten för den linjära funktionen för den gröna kanalen. |
GreenSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
FLYTA 1.0f |
Den linjära funktionens lutning för den gröna kanalen. |
GreenDisable D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE |
BOOL FALSK |
Om du ställer in värdet TRUE tillämpas inte överföringsfunktionen på den gröna kanalen. Om du ställer in detta på FALSE tillämpas funktionen GreenLinearTransfer på den gröna kanalen. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
FLYTA 0.0f |
Y-skärningspunkten för den linjära funktionen för den blå kanalen. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
FLYTA 1.0f |
Den linjära funktionens lutning för den blå kanalen. |
BlueDisable D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE |
BOOL FALSK |
Om du ställer in värdet TRUE tillämpas inte överföringsfunktionen på den blå kanalen. Om du ställer in detta på FALSE tillämpas funktionen BlueLinearTransfer på den blå kanalen. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
FLYTA 0.0f |
Y-skärningspunkten för den linjära funktionen för Alpha-kanalen. |
AlfaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
FLYTA 0.0f |
Lutningen på den linjära funktionen för Alpha-kanalen. |
AlphaDisable D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE |
BOOL FALSK |
Om du ställer in detta på TRUE tillämpas inte överföringsfunktionen på Alpha-kanalen. Om du ställer in detta på FALSE tillämpas funktionen AlphaLinearTransfer på Alpha-kanalen. |
ClampOutput D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALSK |
Om effekten klämmer ihop färgvärden till mellan 0 och 1 innan effekten skickar värdena till nästa effekt i diagrammet. Effekten klämmer fast värdena innan den premultiplies alfa . Om du ställer in detta på TRUE klämmer effekten fast värdena. Om du ställer in detta på FALSE kommer effekten inte att klämma in färgvärdena, men andra effekter och utdataytan kan klämma fast värdena om de inte har tillräckligt hög precision. |
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 |