Linearer Übertragungseffekt
Verwenden Sie den linearen Übertragungseffekt, um die Farbdichten eines Bilds mithilfe einer linearen Funktion zuzuordnen, die aus einer Liste von Werten erstellt wurde, 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-Intercept für jeden angegebenen Kanal erstellt. Die Ausgabepixel-Intensität C wird mit der Gleichung C' = mC + B berechnet, wobei m die Steigung der linearen Funktion und B das Y-Intercept der linearen Funktion ist.
Dieser Effekt funktioniert bei geraden und prämultiplizierten Alphabildern. Der Effekt gibt prämultipliierte Alphabitmaps aus.
Effect-Eigenschaften
Hinweis
Für alle Kanäle der linearen Übertragungseigenschaften:
- Der Y-Intercept ist nicht begrenzt und unitlos.
- Die Steigung ist nicht begrenzt und unitlos.
| Anzeigename und Indexenumeration | Typ und Standardwert | BESCHREIBUNG |
|---|---|---|
| RedYIntercept D2D1 _ LINEARTRANSFER _ PROP _ RED _ Y _ INTERCEPT |
GLEITKOMMAZAHL 0.0f |
Das Y-Intercept der linearen Funktion für den roten Kanal. |
| RedShang 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 diese Einstellung auf TRUE festlegen, wendet der Effekt die Übertragungsfunktion nicht auf den roten Kanal an. Wenn Sie diese Einstellung auf FALSE festlegen, wendet der Effekt die RedLinearTransfer-Funktion auf den Red-Kanal an. |
| GreenYIntercept D2D1 _ LINEARTRANSFER _ PROP _ GREEN _ Y _ INTERCEPT |
GLEITKOMMAZAHL 0.0f |
Das Y-Intercept der linearen Funktion für den grünen Kanal. |
| GreenShang 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 diese Einstellung auf TRUE festlegen, wendet der Effekt die Übertragungsfunktion nicht auf den grünen Kanal an. Wenn Sie diese Einstellung auf FALSE festlegen, wird die GreenLinearTransfer-Funktion auf den grünen Kanal angewendet. |
| BlueYIntercept D2D1 _ LINEARTRANSFER _ PROP _ BLUE _ Y _ INTERCEPT |
GLEITKOMMAZAHL 0.0f |
Das Y-Intercept der linearen Funktion für den blauen Kanal. |
| BlueShang 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 diese Einstellung auf TRUE festlegen, wendet der Effekt die Übertragungsfunktion nicht auf den blauen Kanal an. Wenn Sie diese Einstellung auf FALSE festlegen, wird die BlueLinearTransfer-Funktion auf den Blue-Kanal angewendet. |
| AlphaYIntercept D2D1 _ LINEARTRANSFER _ PROP _ ALPHA _ Y _ INTERCEPT |
GLEITKOMMAZAHL 0.0f |
Das Y-Intercept der linearen Funktion für den Alphakanal. |
| AlphaSphas 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 diese Einstellung auf TRUE festlegen, wendet der Effekt die Übertragungsfunktion nicht auf den Alphakanal an. Wenn Sie diese Einstellung auf FALSE festlegen, wird die AlphaLinearTransfer-Funktion auf den Alphakanal angewendet. |
| ClampOutput D2D1 _ LINEARTRANSFER _ PROP _ KLAMMERAUSGABE _ |
BOOL FALSE |
Gibt an, ob der Effekt Farbwerte zwischen 0 und 1 zusammenbindet, bevor der Effekt die Werte an den nächsten Effekt im Diagramm übergibt. Der Effekt klammert die Werte, bevor er das Alpha vormultipliziert. Wenn Sie diese Einstellung auf TRUE festlegen, werden die Werte durch den Effekt klammern. Wenn Sie diese Einstellung auf FALSE festlegen, bindet der Effekt die Farbwerte nicht, aber andere Effekte und die Ausgabeoberfläche können die Werte klammern, wenn sie nicht hoch genug präzise sind. |
Requirements (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 |

