Freigeben über


Linearer Übertragungseffekt

Verwenden Sie den linearen Übertragungseffekt, um die Farbintensitä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

Vor
das Bild vor dem Effekt.
Nach
das Bild nach der Transformation.
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-Achsenabschnitt für jeden von Ihnen angegebenen Kanal erstellt. Die Ausgabepixelintensität C wird mit der Formel berechnet: C' = mC + B, wobei m die Steigung der linearen Funktion und B der Y-Schnittpunkt der linearen Funktion ist.

Dieser Effekt funktioniert auf geraden und prämultiplizierten Alphabildern. Der Effekt gibt prämultiplizierte Alphabitmaps aus.

Effekteigenschaften

Anmerkung

Für alle Kanäle der linearen Übertragungseigenschaften:

  • Der Y-Schnittpunkt ist nicht begrenzt und ist einheitslos.
  • Die Steigung ist nicht begrenzt und ist einheitenlos.
Anzeigename und Indexenumeration Typ und Standardwert Beschreibung
RedYIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
SCHWEBEN
0.0f
Der Y-Schnittpunkt der linearen Funktion für den roten Kanal.
RedSlope
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
SCHWEBEN
1.0f
Die Steigung der linearen Funktion für den roten Kanal.
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL
FALSCH
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
SCHWEBEN
0.0f
Der Y-Schnittpunkt der linearen Funktion für den grünen Kanal.
GreenSlope
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
SCHWEBEN
1.0f
Die Steigung der linearen Funktion für den grünen Kanal.
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL
FALSCH
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
SCHWEBEN
0.0f
Der Y-Schnittpunkt der linearen Funktion für den blauen Kanal.
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
SCHWEBEN
1.0f
Die Steigung der linearen Funktion für den blauen Kanal.
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL
FALSCH
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
SCHWEBEN
0.0f
Der Y-Schnittpunkt der linearen Funktion für den Alphakanal.
AlphaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
SCHWEBEN
0.0f
Die Steigung der linearen Funktion für den Alphakanal.
AlphaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL
FALSCH
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 Alpha-Kanal angewendet.
ClampOutput
D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT
BOOL
FALSCH
Gibt an, ob der Effekt Farbwerte zwischen 0 und 1 einklammert, bevor der Effekt die Werte an den nächsten Effekt im Diagramm übergibt. Der Effekt klemmt die Werte vor der Multiplikation des Alphas.
Wenn Sie dies auf TRUE festlegen, klammert der Effekt die Werte. Wenn Sie dies auf FALSE festlegen, klammert der Effekt nicht die Farbwerte, aber andere Effekte und die Ausgabeoberfläche können die Werte klammern, wenn sie nicht von hoher Genauigkeit sind.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps]
Mindestens unterstützter Server Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps]
Kopfball d2d1effects.h
Bibliothek d2d1.lib, dxguid.lib

ID2D1Effect-