Gammaübertragungseffekt
Verwenden Sie den Gammaübertragungseffekt, um die Farbintensitäten eines Bilds mithilfe einer Gammafunktion zuzuordnen, die mit einer Amplitude, einem Exponenten und einem Offset erstellt wurde, 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" zu den Linkerabhängigkeiten hinzu.
Beispielbild
Vor |
---|
![]() |
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 hier Gleichung an.
Die Intensität des Eingabepixels wird als C und die Intensität des Ausgabepixels als C dargestellt. C' = Amplitude * CExponent + Offset
Dieser Effekt funktioniert auf geraden und prämultiplizierten Alphabildern. Der Effekt gibt prämultiplizierte Alphabitmaps aus.
Effekteigenschaften
Anmerkung
Für alle Kanäle der Gammaübertragungseigenschaften:
- Der Amplitudenwert ist nicht begrenzt und ist einheitslos.
- Der Exponentwert ist nicht begrenzt und ohne Einheit.
- Der Offsetwert ist nicht begrenzt und ohne Einheit.
Anzeigename und Indexenumeration | 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. Eine Identitätsübertragungsfunktion wird 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. Eine Identitätsübertragungsfunktion wird 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. Eine Identitätsübertragungsfunktion wird 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. Eine Identitätsübertragungsfunktion wird 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 einklammert, bevor der Effekt die Werte an den nächsten Effekt im Diagramm übergibt. Der Effekt klemmt die Werte vor der Multiplikation des Alphas. Wenn Sie dies auf TRUE festlegen, klammert der Effekt die Werte. Wenn Sie dies auf FALSE festlegen, klammert der Effekt nicht die Farbwerte, aber andere Effekte und die Ausgabeoberfläche können die Werte klammern, wenn sie nicht von hoher Genauigkeit sind. Der Typ ist BOOL. Der Standardwert ist FALSE. |
Ausgabebitmap
Die Größe der Ausgabebitmap entspricht der Größe der Eingabebitmap.
Anforderungen
Anforderung | Wert |
---|---|
Mindestens unterstützter Client | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Mindestens unterstützter Server | Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | Windows Store-Apps] |
Kopfball | d2d1effects.h |
Bibliothek | d2d1.lib, dxguid.lib |