Gammaübertragungseffekt
Verwenden Sie den Gammaübertragungseffekt, um die Farbintensitäten eines Bilds mithilfe einer Gammafunktion zuzuordnen, die mithilfe einer Amplitude, eines Exponenten und eines Offsets erstellt wird, die Sie für jeden Kanal bereitstellen.
Die CLSID für diesen Effekt ist CLSID_D2D1GammaTransfer. Um diesen Effekt zu verwenden, fügen Sie dxguid.lib den Linkerabhängigkeiten hinzu.
Beispielbild
Vorher |
---|
Nach |
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);
gammaTransferEffect->SetInput(0, bitmap);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();
Dieser Effekt wendet eine Gammaübertragungsfunktion basierend auf der Gleichung an.
Die Intensität des Eingabepixels wird als C und die Ausgabepixelintensität als C' dargestellt. C' = Amplitude * CExponent + Offset
Dieser Effekt funktioniert bei geraden und vormultiplizierten Alphabildern. Der Effekt gibt vorab multiplizierte Alpha-Bitmaps aus.
Effekteigenschaften
Hinweis
Für alle Kanäle der Gammaübertragungseigenschaften:
- Der Amplitudenwert ist nicht begrenzt und ist einheitslos.
- Der Exponentenwert ist nicht begrenzt und ist einheitslos.
- Der Offsetwert ist nicht begrenzt und ist einheitslos.
Anzeigename und Indexaufzählung | BESCHREIBUNG |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Die Amplitude der Gammaübertragungsfunktion für den roten Kanal. Der Typ ist FLOAT. Der Standardwert ist 1.0f. |
RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Der Exponent der Gammaübertragungsfunktion für den roten Kanal. Der Typ ist FLOAT. Der Standardwert ist 1.0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Der Offset der Gammaübertragungsfunktion für den roten Kanal. Der Typ ist FLOAT. Der Standardwert ist 0.0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Wenn Sie dies auf TRUE festlegen, wird die Übertragungsfunktion nicht auf den roten Kanal angewendet. Es wird eine Identitätsübertragungsfunktion verwendet. Wenn Sie dies auf FALSE festlegen, wird die Gammaübertragungsfunktion auf den roten Kanal angewendet. Der Typ ist BOOL. Der Standardwert ist FALSE. |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
Die Amplitude der Gammaübertragungsfunktion für den grünen Kanal. Der Typ ist FLOAT. Der Standardwert ist 1.0f. |
GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
Der Exponent der Gammaübertragungsfunktion für den grünen Kanal. Der Typ ist FLOAT. Der Standardwert ist 1.0f. |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
Der Offset der Gammaübertragungsfunktion für den grünen Kanal. Der Typ ist FLOAT. Der Standardwert ist 0.0f. |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Wenn Sie dies auf TRUE festlegen, wird die Übertragungsfunktion nicht auf den grünen Kanal angewendet. Es wird eine Identitätsübertragungsfunktion verwendet. Wenn Sie dies auf FALSE festlegen, wird die Gammaübertragungsfunktion auf den grünen Kanal angewendet. Der Typ ist BOOL. Der Standardwert ist FALSE. |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Die Amplitude der Gammaübertragungsfunktion für den Blauen Kanal. Der Typ ist FLOAT. Der Standardwert ist 1.0f. |
BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Der Exponent der Gammaübertragungsfunktion für den Blauen Kanal. Der Typ ist FLOAT. Der Standardwert ist 1.0f. |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Der Offset der Gammaübertragungsfunktion für den Blauen Kanal. Der Typ ist FLOAT. Der Standardwert ist 0.0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Wenn Sie dies auf TRUE festlegen, wird die Übertragungsfunktion nicht auf den blauen Kanal angewendet. Es wird eine Identitätsübertragungsfunktion verwendet. Wenn Sie dies auf FALSE festlegen, wird die Gammaübertragungsfunktion auf den blauen Kanal angewendet. Der Typ ist BOOL. Der Standardwert ist FALSE. |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Die Amplitude der Gammaübertragungsfunktion für den Alphakanal. Der Typ ist FLOAT. Der Standardwert ist 1,0f. |
AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Der Exponent der Gammaübertragungsfunktion für den Alphakanal. Der Typ ist FLOAT. Der Standardwert ist 1,0f. |
AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Der Offset der Gammaübertragungsfunktion für den Alphakanal. Der Typ ist FLOAT. Der Standardwert ist 0,0f. |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Wenn Sie dies auf TRUE festlegen, wird die Übertragungsfunktion nicht auf den Alphakanal angewendet. Es wird eine Identitätsübertragungsfunktion verwendet. Wenn Sie dies auf FALSE festlegen, wird die Gammaübertragungsfunktion auf den Alphakanal angewendet. Der Typ ist BOOL. Der Standardwert ist FALSE. |
ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
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. Der Typ ist BOOL. Der Standardwert ist FALSE. |
Ausgabebitbitbit
Die Größe der Ausgabebits entspricht der Größe der Eingabebits.
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 |