Discrete overdrachtseffect
Gebruik het discrete overdrachtseffect om de kleurintensiteiten van een afbeelding toe te wijzen met behulp van een stapoverdrachtfunctie die is gemaakt op basis van een lijst met waarden die u opgeeft.
De CLSID voor dit effect is CLSID_D2D1DiscreteTransfer.
- voorbeeldafbeelding
- eigenschappen van effect
- vereisten
- Verwante onderwerpen
Voorbeeldafbeelding
In de afbeelding ziet u de invoer en uitvoer van het discrete overdrachtseffect.
Voor |
---|
![]() |
Na |
![]() |
ComPtr<ID2D1Effect> discreteTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DiscreteTransfer, &discreteTransferEffect);
discreteTransferEffect->SetInput(0, bitmap);
float table[3] = {0.0f, 0.5f, 1.0f};
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_RED_TABLE, table);
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE, table);
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE, table);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(discreteTransferEffect.Get());
m_d2dContext->EndDraw();
De overdrachtsfunctie is gebaseerd op de lijst met invoerwaarden: V=(V0,V1,V2,V3,V? ,VN) waarbij N het aantal elementen is - 1.
De intensiteit van de invoer pixel wordt weergegeven als C. De intensiteit van de uitvoer pixel, C wordt berekend met de vergelijking:
Kies voor een waarde C een waarde k, zodat:
De uitvoer C kan worden berekend met behulp van de vergelijking: C' = V?
Dit effect werkt op rechte en vooraf samengestelde alfa-afbeeldingen. Het effect voert vooraf ontwikkelde alfa bitmaps uit.
Hier ziet u hoe de grafiek van de discrete overdrachtsfunctie eruitziet als de invoer [0.25, 0.5, 0.75, 1.0]
.
Effecteigenschappen
Notitie
De waarden van alle kanalen van de discrete overdrachtseigenschappen zijn eenheidsloos en hebben minimaal 0,0 en maximaal 1,0.
Weergavenaam en indexenumeratie | Type en standaardwaarde | Beschrijving |
---|---|---|
RedTable D2D1_DISCRETETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f, 1.0f} |
De lijst met waarden die worden gebruikt om de overdrachtsfunctie voor het rode kanaal te definiëren. |
RedDisable D2D1_DISCRETETRANSFER_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 RedDiscreteTransfer toe op het rode kanaal. |
GreenTable D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
De lijst met waarden waarmee de overdrachtsfunctie voor het Groene kanaal wordt gedefinieerd. |
GreenDisable D2D1_DISCRETETRANSFER_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, past het effect de functie GreenDiscreteTransfer toe op het Groene kanaal. |
BlueTable D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
De lijst met waarden waarmee de overdrachtsfunctie voor het blauwe kanaal wordt gedefinieerd. |
BlueDisable D2D1_DISCRETETRANSFER_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, past het effect de functie BlueDiscreteTransfer toe op het Blauwe kanaal. |
AlfaTabel D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
De lijst met waarden waarmee de overdrachtsfunctie voor het Alpha-kanaal wordt gedefinieerd. |
AlphaDisable D2D1_DISCRETETRANSFER_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, past het effect de functie AlphaDiscreteTransfer toe op het Alpha-kanaal. |
ClampOutput D2D1_DISCRETETRANSFER_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 deze de alfa premultipleert. 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 |