Freigeben über


Helligkeitseffekt

Verwenden Sie den Helligkeitseffekt, um die Helligkeit des Bilds zu steuern.

Die CLSID für diesen Effekt ist CLSID_D2D1Brightness.

Beispielbild

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

Helligkeitsalgorithmus

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:

  1. Konvertiert die Bilddaten aus dem linearen Raum in den nichtlinearen Raum mithilfe dieser Formel:Hilfsfunktion 1

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

  3. Konvertiert die Bilddaten mithilfe der folgenden Formel wieder in den linearen Raum: Hilfsfunktion 2

Die endgültige Ausgabegleichung und die Komponententeile sind hier dargestellt.

die vollständigen Berechnungen zur Helligkeitsanpassung

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