Diskreter Übertragungseffekt

Verwenden Sie den diskreten Übertragungseffekt, um die Farbintensitäten eines Bilds mithilfe einer Schrittübertragungsfunktion zuzuordnen, die aus einer Liste von von Ihnen angegebenen Werten erstellt wurde.

Die CLSID für diesen Effekt ist CLSID_D2D1DiscreteTransfer.

Beispielbild

Die Abbildung zeigt die Eingabe und Ausgabe des diskreten Übertragungseffekts.

Vorher
das Bild vor dem Effekt.
Nach
das Bild nach der Transformation.
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 - 1 ist.

Die Intensität des Eingabepixels wird als C dargestellt. Die Intensität des Ausgabepixels C wird mit der Gleichung berechnet:

Wählen Sie für einen Wert C einen Wert k aus, sodass:

Formel für den Prozess.

Die Ausgabe C kann mit der Gleichung berechnet werden: C' = V?

Dieser Effekt funktioniert bei geraden und vormultiplizierten Alphabildern. Der Effekt gibt vorab multiplizierte Alpha-Bitmaps aus.

Hier sehen Sie, wie das Diagramm der diskreten Übertragungsfunktion aussieht, wenn die Eingaben sind [0.25, 0.5, 0.75, 1.0].

Pixelintensitätsdiagramm für die diskrete Übertragungsfunktion.

Effekteigenschaften

Hinweis

Die Werte aller Kanäle der diskreten Übertragungseigenschaften sind einheitslos und weisen mindestens 0,0 und maximal 1,0 auf.

Anzeigename und Indexaufzählung Typ und Standardwert BESCHREIBUNG
RedTable
D2D1_DISCRETETRANSFER_PROP_RED_TABLE
FLOAT[]
{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, wendet der Effekt die Übertragungsfunktion nicht auf den roten Kanal an. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die RedDiscreteTransfer-Funktion auf den roten Kanal an.
GreenTable
D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE
FLOAT[]
{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, wendet der Effekt die Übertragungsfunktion nicht auf den grünen Kanal an. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die GreenDiscreteTransfer-Funktion auf den grünen Kanal an.
BlueTable
D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE
FLOAT[]
{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, wendet der Effekt die Übertragungsfunktion nicht auf den blauen Kanal an. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die BlueDiscreteTransfer-Funktion auf den blauen Kanal an.
AlphaTable
D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE
FLOAT[]
{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, wendet der Effekt die Übertragungsfunktion nicht auf den Alphakanal an. Wenn Sie dies auf FALSE festlegen, wendet der Effekt die AlphaDiscreteTransfer-Funktion auf den Alpha-Kanal an.
ClampOutput
D2D1_DISCRETETRANSFER_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 klemmt die Werte, 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 die Farbwerte nicht, aber andere Effekte und die Ausgabeoberfläche können die Werte klammern, wenn sie nicht von hoher Genauigkeit 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

ID2D1Effect