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
- eigenschappen van effect
- vereisten
- Verwante onderwerpen
Voorbeeldafbeelding
Voor |
---|
![]() |
Na |
![]() |
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 |