Helligkeitseffekt
Verwenden Sie den Helligkeitseffekt, um die Helligkeit des Bilds zu steuern.
Die CLSID für diesen Effekt ist CLSID_D2D1Brightness.
Beispielbild
Vor |
---|
Danach |
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
Eigenschaftsanzeigename | Typ und Standardwert | BESCHREIBUNG |
---|---|---|
Weißtons 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. Jeder 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. Jeder der Werte dieser Eigenschaft liegt zwischen 0 und 1 (einschließlich). |
Dieser Effekt verwendet die angegebenen Weiß- und Schwarzpunkte, um eine Übertragungsfunktion zum Anpassen der Bitmap zu generieren. Die nächste Gleichung beschreibt die Übertragungsfunktion. Die Eingabetenten sind zwischen 0 und 1 definiert.
Der Effektalgorithmus implementiert eine Gleichung, die die Übertragungsfunktion erstellt. Wir verwenden diese Funktion, um die Bildpixel anzupassen. Die x- und y-Werte des Schwarzen Punkts und des Weißpunkts sind die Koordinaten in zwei Dimensionen, die verbunden sind, um die Transformation zu bilden. Jeder Teil der endgültigen Ausgabegleichung:
Konvertiert die Bilddaten aus dem linearen Raum in den nichtlinearen Raum mithilfe dieser Formel:
Passt das Bild entsprechend den folgenden Werten an:
input ist der Pixelintensitätswert des Eingabebilds von 0 bis 1.
*Weiß pt. (x, y)*Die Position der Transformationskurve für hellere Pixelschärfen.
Black Pt. (x, y) ist die Position der Transformationskurve für Dimmerpixel-Intensitäten.
Konvertiert die Bilddaten mithilfe der folgenden Formel wieder in den linearen Raum:
Die endgültige Ausgabegleichung und die Komponententeile sind hier dargestellt.
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 |