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
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 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:

Formel für den Prozess.

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.

Pixel-Intensitätsdiagramm für die diskrete Übertragungsfunktion.

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

ID2D1Effect