Effekt der Tabellenübertragung
Verwenden Sie den Tabellenübertragungseffekt, um die Farbtentitäten eines Bilds mithilfe einer Übertragungsfunktion zuzuordnen, die aus der Interpolierung einer Liste der von Ihnen bereitgestellten Werte erstellt wurde.
Die CLSID für diesen Effekt ist CLSID_D2D1TableTransfer.
Beispielbild
Die abbildung zeigt die Eingabe und Ausgabe des Tabellenübertragungseffekts.
Vorher |
---|
Nach |
ComPtr<ID2D1Effect> tableTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1TableTransfer, &tableTransferEffect);
tableTransferEffect->SetInput(0, bitmap);
float table[2] = {0.75f, 1.0f};
tableTransferEffect->SetValue(D2D1_TABLETRANSFER_PROP_BLUE_TABLE, table);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(tableTransferEffect.Get());
m_d2dContext->EndDraw();
Die Übertragungsfunktion basiert auf einer Liste von 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 kann mit der Gleichung berechnet werden.
Wählen Sie für einen Wert C einen Wert k aus, sodass: k/N = C < (k+1)/N
Die Ausgabe C wird mit der folgenden Gleichung berechnet: C' = V? + (C - k/N) * N * (V??? 1? - V?)
Dieser Effekt funktioniert bei geraden und vormultiplizierten Alphabildern. Der Effekt gibt vorab multiplizierte Alphabitbitbits aus.
Das Diagramm der Tabellenübertragungsfunktion sieht wie folgt aus, wenn die Tabelleneigenschaft auf [0.0, 0.25, 1.0]
festgelegt ist.
Effekteigenschaften
Hinweis
Die Werte aller Kanäle der Tabellenübertragungseigenschaften sind einheitslos und weisen mindestens 0,0 und maximal 1,0 auf.
Anzeigename und Indexenumeration | Typ und Standardwert | BESCHREIBUNG |
---|---|---|
RedTable D2D1_TABLETRANSFER_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_TABLETRANSFER_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, wird die RedTableTransfer-Funktion auf den roten Kanal angewendet. |
GreenTable D2D1_TABLETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
Die Liste der Werte, die zum Definieren der Übertragungsfunktion für den grünen Kanal verwendet werden. |
GreenDisable D2D1_TABLETRANSFER_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, wird die GreenTableTransfer-Funktion auf den grünen Kanal angewendet. |
BlueTable D2D1_TABLETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
Die Liste der Werte, die zum Definieren der Übertragungsfunktion für den blauen Kanal verwendet werden. |
BlueDisable D2D1_TABLETRANSFER_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, wird die BlueTableTransfer-Funktion auf den Blauen Kanal angewendet. |
AlphaTable D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Die Liste der Werte, die zum Definieren der Übertragungsfunktion für den Alphakanal verwendet werden. |
AlphaDisable D2D1_TABLETRANSFER_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, wird die AlphaTableTransfer-Funktion auf den Alphakanal angewendet. |
ClampOutput D2D1_TABLETRANSFER_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 klammert die Werte ein, 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 nicht die Farbwerte, sondern andere Effekte, und die Ausgabeoberfläche kann die Werte klammern, wenn sie nicht hoch genug präzise 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 |