Delen via


Lineair overdrachtseffect

Gebruik het effect lineaire overdracht om de kleurintensiteiten van een afbeelding toe te wijzen met behulp van een lineaire functie die is gemaakt op basis van een lijst met waarden die u voor elk kanaal opgeeft.

De CLSID voor dit effect is CLSID_D2D1LinearTransfer.

Voorbeeldafbeelding

Voor
de afbeelding vóór het effect.
Na
de afbeelding na de transformatie.
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();

De lineaire overdrachtsfunctie wordt gemaakt op basis van de helling en het y-snijpunt voor elk kanaal dat u opgeeft. De intensiteit van de uitvoer pixel C wordt berekend met de vergelijking: C' = mC + B, waarbij m de helling van de lineaire functie is en B het Y-snijpunt van de lineaire functie is.

Dit effect werkt op rechte en vooraf samengestelde alfa-afbeeldingen. Het effect voert vooraf ontwikkelde alfa bitmaps uit.

Effecteigenschappen

Notitie

Voor alle kanalen van de lineaire overdrachtseigenschappen:

  • Het Y-snijpunt is niet gebonden en is unitloos.
  • De helling is niet begrensd en is eenheidsloos.
Weergavenaam en indexenumeratie Type en standaardwaarde Beschrijving
RedYIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
DRIJVEN
0,0f
Het Y-snijpunt van de lineaire functie voor het rode kanaal.
RedSlope
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
DRIJVEN
1,0f
De helling van de lineaire functie voor het rode kanaal.
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL
VALS
Als u dit instelt op TRUE, wordt de overdrachtsfunctie niet toegepast op het rode kanaal. Als u dit instelt op FALSE, past het effect de functie RedLinearTransfer toe op het rode kanaal.
GreenYIntercept
D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT
DRIJVEN
0,0f
Het Y-snijpunt van de lineaire functie voor het Groene kanaal.
GreenSlope
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
DRIJVEN
1,0f
De helling van de lineaire functie voor het Groene kanaal.
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL
VALS
Als u dit instelt op TRUE, past het effect de overdrachtsfunctie niet toe op het Groene kanaal. Als u dit instelt op FALSE, wordt de functie GreenLinearTransfer toegepast op het Groene kanaal.
BlueYIntercept
D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT
DRIJVEN
0,0f
Het Y-snijpunt van de lineaire functie voor het blauwe kanaal.
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
DRIJVEN
1,0f
De helling van de lineaire functie voor het Blauwe kanaal.
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL
VALS
Als u dit instelt op TRUE, past het effect de overdrachtsfunctie niet toe op het Blauwe kanaal. Als u dit instelt op FALSE, wordt de functie BlueLinearTransfer toegepast op het Blauwe kanaal.
AlphaYIntercept
D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT
DRIJVEN
0,0f
Het Y-snijpunt van de lineaire functie voor het Alpha-kanaal.
AlphaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
DRIJVEN
0,0f
De helling van de lineaire functie voor het Alpha-kanaal.
AlphaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL
VALS
Als u dit instelt op TRUE, past het effect de overdrachtsfunctie niet toe op het Alpha-kanaal. Als u dit instelt op FALSE, wordt de functie AlphaLinearTransfer toegepast op het Alpha-kanaal.
ClampOutput
D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT
BOOL
VALS
Of de effectklemmen kleurwaarden tussen 0 en 1 voordat het effect de waarden doorgeeft aan het volgende effect in de grafiek. Het effect klemt de waarden voordat het premultiplt de alfa .
Als u dit instelt op TRUE, zal het effect de waarden vastzetten. Als u dit instelt op ONWAAR, zal het effect de kleurwaarden niet klemen, maar andere effecten en het uitvoeroppervlak de waarden mogelijk vastzetten als ze niet van hoge precisie zijn.

Eisen

Eis Waarde
Minimaal ondersteunde client Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Minimaal ondersteunde server Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Rubriek d2d1effects.h
Bibliotheek d2d1.lib, dxguid.lib

ID2D1Effect-