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

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.

Helligkeitsalgorithmus

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:

  1. Konvertiert die Bilddaten aus dem linearen Raum mithilfe dieser Formel in einen nicht linearen Raum:Hilfsfunktion 1

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

  3. Konvertiert die Bilddaten mithilfe dieser Formel wieder in einen linearen Raum: Hilfsfunktion 2

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

die vollständigen Berechnungen für die Helligkeitsanpassung

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-