Freigeben über


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

ID2D1Effect-