Freigeben über


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

ID2D1Effect