Helligkeitseffekt
Verwenden Sie den Helligkeitseffekt, um die Helligkeit des Bilds zu steuern.
Die CLSID für diesen Effekt ist CLSID_D2D1Brightness.
Beispielbild
Vor |
---|
![]() |
Nach |
![]() |
ComPtr<ID2D1Effect> brightnessEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Brightness, &brightnessEffect);
brightnessEffect->SetValue(D2D1_BRIGHTNESS_PROP_BLACK_POINT, D2D1::Vector2F(0.0f, 0.2f));
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(brightnessEffect.Get());
m_d2dContext->EndDraw();
Effekteigenschaften
Anzeigename der Eigenschaft | Typ und Standardwert | Beschreibung |
---|---|---|
WhitePoint D2D1_BRIGHTNESS_PROP_WHITE_POINT |
D2D1_VECTOR_2F {1.0f, 1.0f} |
Der obere Teil der Helligkeitsübertragungskurve. Der weiße Punkt passt die Darstellung der helleren Teile des Bilds an. Diese Eigenschaft gilt sowohl für den x-Wert als auch für den y-Wert in dieser Reihenfolge. Jede der Werte dieser Eigenschaft liegt zwischen 0 und 1 einschließlich. |
BlackPoint D2D1_BRIGHTNESS_PROP_BLACK_POINT |
D2D1_VECTOR_2F {0.0f, 0.0f} |
Der untere Teil der Helligkeitsübertragungskurve. Der schwarze Punkt passt die Darstellung der dunkleren Teile des Bilds an. Diese Eigenschaft gilt sowohl für den x-Wert als auch für den y-Wert in dieser Reihenfolge. Jede der Werte dieser Eigenschaft liegt zwischen 0 und 1 einschließlich. |
Dieser Effekt verwendet die angegebenen weißen und schwarzen Punkte, um eine Übertragungsfunktion zu generieren, die zum Anpassen der Bitmap verwendet wird. Die nächste Formel beschreibt die Übertragungsfunktion. Die Eingabeintensitäten werden zwischen 0 und 1 definiert.
Der Effektalgorithmus implementiert eine Formel, die die Übertragungsfunktion erstellt. Wir verwenden diese Funktion, um die Bildpixel anzupassen. Die x- und y-Werte des schwarzen Punkts und der weiße Punkt sind die Koordinaten in zwei Dimensionen, die mit der Transformation verbunden sind. Jeder Teil der endgültigen Ausgabegleichung:
Konvertiert die Bilddaten aus dem linearen Raum mithilfe dieser Formel in einen nicht linearen Raum:
Passt das Bild entsprechend den folgenden Werten an:
Eingabe- sind die Intensitätswerte des Eingabebildpixels von 0 bis 1.
*Weiß Pt. (x, y)*die Position der Transformationskurve für hellere Pixelintensitäten.
Schwarz Pt. (x, y) ist die Position der Transformationskurve für Dimmerpixelintensitäten.
Konvertiert die Bilddaten mithilfe dieser Formel wieder in einen linearen Raum:
Die endgültige Ausgabegleichung und die Komponententeile sind hier dargestellt.
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 |