Linearer Übertragungseffekt
Verwenden Sie den Linearübertragungseffekt, um die Farbtentitäten eines Bilds mithilfe einer linearen Funktion zuzuordnen, die aus einer Liste von Werten erstellt wird, die Sie für jeden Kanal angeben.
Die CLSID für diesen Effekt ist CLSID_D2D1LinearTransfer.
Beispielbild
Vorher |
---|
Nach |
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();
Die lineare Übertragungsfunktion wird basierend auf der Steigung und dem Y-Abschnitt für jeden von Ihnen angegebenen Kanal erstellt. Die Intensität des Ausgabepixels C wird mit der Gleichung berechnet: C' = mC + B, wobei m die Steigung der linearen Funktion und B der Y-Abschnitt der linearen Funktion ist.
Dieser Effekt funktioniert bei geraden und vormultiplizierten Alphabildern. Der Effekt gibt vorab multiplizierte Alphabitbitbits aus.
Effekteigenschaften
Hinweis
Für alle Kanäle der linearen Übertragungseigenschaften:
- Der Y-Intercept ist nicht begrenzt und ohne Einheit.
- Die Steigung ist nicht begrenzt und einheitslos.
Anzeigename und Indexenumeration | Typ und Standardwert | Beschreibung |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
GLEITKOMMAZAHL 0.0f |
Der Y-Abschnitt der linearen Funktion für den roten Kanal. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
GLEITKOMMAZAHL 1.0f |
Die Steigung der linearen Funktion für den roten Kanal. |
RedDisable D2D1_LINEARTRANSFER_PROP_RED_DISABLE |
BOOL FALSE |
Wenn Sie dies auf TRUE festlegen, wendet der Effekt die Übertragungsfunktion nicht auf den roten Kanal an. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die RedLinearTransfer-Funktion auf den roten Kanal an. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
GLEITKOMMAZAHL 0.0f |
Der Y-Abschnitt der linearen Funktion für den grünen Kanal. |
GreenSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
GLEITKOMMAZAHL 1.0f |
Die Steigung der linearen Funktion für den grünen Kanal. |
GreenDisable D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE |
BOOL FALSE |
Wenn Sie dies auf TRUE festlegen, wendet der Effekt die Übertragungsfunktion nicht auf den grünen Kanal an. Wenn Sie dies auf FALSE festlegen, wird die GreenLinearTransfer-Funktion auf den grünen Kanal angewendet. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
GLEITKOMMAZAHL 0.0f |
Der Y-Abschnitt der linearen Funktion für den blauen Kanal. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
GLEITKOMMAZAHL 1.0f |
Die Steigung der linearen Funktion für den blauen Kanal. |
BlueDisable D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE |
BOOL FALSE |
Wenn Sie dies auf TRUE festlegen, wendet der Effekt die Übertragungsfunktion nicht auf den blauen Kanal an. Wenn Sie dies auf FALSE festlegen, wird die BlueLinearTransfer-Funktion auf den blauen Kanal angewendet. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
GLEITKOMMAZAHL 0.0f |
Der Y-Abschnitt der linearen Funktion für den Alphakanal. |
AlphaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
GLEITKOMMAZAHL 0.0f |
Die Steigung der linearen Funktion für den Alphakanal. |
AlphaDisable D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE |
BOOL FALSE |
Wenn Sie dies auf TRUE festlegen, wendet der Effekt die Übertragungsfunktion nicht auf den Alphakanal an. Wenn Sie dies auf FALSE festlegen, wird die AlphaLinearTransfer-Funktion auf den Alphakanal angewendet. |
ClampOutput D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALSE |
Gibt an, ob der Effekt Farbwerte zwischen 0 und 1 klemmt, bevor der Effekt die Werte an den nächsten Effekt im Diagramm übergibt. Der Effekt klammert die Werte ein, bevor er das Alpha vormultipliziert. Wenn Sie dies auf TRUE festlegen, klammert der Effekt die Werte ein. Wenn Sie dies auf FALSE festlegen, klemmt der Effekt nicht die Farbwerte, sondern andere Effekte, und die Ausgabeoberfläche kann die Werte klammern, wenn sie nicht hoch genug präzise sind. |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Unterstützte Mindestversion (Server) | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Header | d2d1effects.h |
Bibliothek | d2d1.lib, dxguid.lib |