Delen via


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

In de afbeelding ziet u de invoer en uitvoer van het discrete overdrachtseffect.

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

formule voor het proces.

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].

pixelintensiteitsgrafiek voor de discrete overdrachtsfunctie.

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

ID2D1Effect-