Diskreter Übertragungseffekt
Verwenden Sie den diskreten Übertragungseffekt, um die Farbstärken eines Bilds mithilfe einer Schrittübertragungsfunktion zu zuordnen, die aus einer Liste der von Ihnen angegebenen Werte erstellt wurde.
Die CLSID für diesen Effekt ist CLSID _ D2D1DiscreteTransfer.
Beispielbild
Die Abbildung zeigt die Ein- und Ausgabe des diskreten Übertragungseffekts.
| Vorher |
|---|
![]() |
| Nach |
![]() |
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();
Die Übertragungsfunktion basiert auf der Liste der Eingaben: V=(V0, V1, V2, V3, V? ,VN), wobei N die Anzahl der Elemente ist – 1.
Die Intensität des Eingabepixels wird als C dargestellt. Die Ausgabepixelstärke C wird mit der Gleichung berechnet:
Wählen Sie für einen Wert C einen Wert k aus, damit:

Die Ausgabe C kann mit der folgenden Gleichung berechnet werden: C' = V?
Dieser Effekt funktioniert bei geraden und prämultipliierten Alphabildern. Der Effekt gibt prämultipliierte Alphabitmaps aus.
So sieht das Diagramm der diskreten Übertragungsfunktion aus, wenn die Eingaben [0.25, 0.5, 0.75, 1.0] sind.

Effect-Eigenschaften
Hinweis
Die Werte aller Kanäle der diskreten Übertragungseigenschaften sind einheitslos und haben mindestens 0,0 und maximal 1,0.
| Anzeigename und Indexenumeration | Typ und Standardwert | BESCHREIBUNG |
|---|---|---|
| RedTable D2D1 _ DISCRETETRANSFER _ PROP _ RED _ TABLE |
SCHWEBEN[] {0.0f, 1.0f} |
Die Liste der Werte, die zum Definieren der Übertragungsfunktion für den roten Kanal verwendet werden. |
| RedDisable D2D1 _ DISCRETETRANSFER _ PROP _ RED _ DISABLE |
BOOL FALSE |
Wenn Sie dies auf TRUE festlegen, wird die Übertragungsfunktion nicht auf den roten Kanal angewendet. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die RedDiscreteTransfer-Funktion auf den roten Kanal an. |
| GreenTable D2D1 _ DISCRETETRANSFER _ PROP _ GREEN _ TABLE |
SCHWEBEN[] {0.0f, 1.0f} |
Die Liste der Werte, die die Übertragungsfunktion für den grünen Kanal definieren. |
| GreenDisable D2D1 _ DISCRETETRANSFER _ PROP _ GREEN _ DISABLE |
BOOL FALSE |
Wenn Sie dies auf TRUE festlegen, wird die Übertragungsfunktion nicht auf den grünen Kanal angewendet. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die GreenDiscreteTransfer-Funktion auf den Green-Kanal an. |
| BlueTable D2D1 _ DISCRETETRANSFER _ PROP _ BLUE _ TABLE |
SCHWEBEN[] {0.0f, 1.0f} |
Die Liste der Werte, die die Übertragungsfunktion für den blauen Kanal definieren. |
| BlueDisable D2D1 _ DISCRETETRANSFER _ PROP _ BLUE _ DISABLE |
BOOL FALSE |
Wenn Sie dies auf TRUE festlegen, wird die Übertragungsfunktion nicht auf den blauen Kanal angewendet. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die BlueDiscreteTransfer-Funktion auf den blauen Kanal an. |
| AlphaTable D2D1 _ DISCRETETRANSFER _ PROP _ ALPHA _ TABLE |
SCHWEBEN[] {0.0f, 1.0f} |
Die Liste der Werte, die die Übertragungsfunktion für den Alphakanal definieren. |
| AlphaDisable D2D1 _ DISCRETETRANSFER _ PROP _ ALPHA _ DISABLE |
BOOL FALSE |
Wenn Sie dies auf TRUE festlegen, wird die Übertragungsfunktion nicht auf den Alphakanal angewendet. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die AlphaDiscreteTransfer-Funktion auf den Alphakanal an. |
| ClampOutput D2D1 _ DISCRETETRANSFER _ _ PROP-KLAMMERAUSGABE _ |
BOOL FALSE |
Gibt an, ob der Effekt Farbwerte auf zwischen 0 und 1 klammert, bevor der Effekt die Werte an den nächsten Effekt im Diagramm übergibt. Der Effekt klammert die Werte, bevor er das Alpha prämultipliert. Wenn Sie dies auf TRUE festlegen, klammert der Effekt die Werte. Wenn Sie dies auf FALSE festlegen, klammert der Effekt die Farbwerte nicht, aber andere Effekte und die Ausgabeoberfläche können die Werte klammern, wenn sie nicht hoch genug 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 |

