Dela via


Ljushetseffekt

Använd ljusstyrkan för att styra bildens ljusstyrka.

CLSID för den här effekten är CLSID_D2D1Brightness.

Exempelbild

Före
bilden före effekten.
Efter
bilden efter transformen.
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();

Effektegenskaper

Visningsnamn för egenskap Typ- och standardvärde Beskrivning
WhitePoint
D2D1_BRIGHTNESS_PROP_WHITE_POINT
D2D1_VECTOR_2F
{1.0f, 1.0f}
Den övre delen av ljusstyrkans överföringskurva. Den vita punkten justerar utseendet på de ljusare delarna av bilden. Den här egenskapen är för både x-värdet och y-värdet i den ordningen. Vart och ett av värdena för den här egenskapen är mellan 0 och 1, inklusive.
BlackPoint
D2D1_BRIGHTNESS_PROP_BLACK_POINT
D2D1_VECTOR_2F
{0.0f, 0.0f}
Den nedre delen av ljusstyrkans överföringskurva. Den svarta punkten justerar utseendet på de mörkare delarna av bilden. Den här egenskapen är för både x-värdet och y-värdet i den ordningen. Vart och ett av värdena för den här egenskapen är mellan 0 och 1, inklusive.

Den här effekten använder de angivna vita och svarta punkterna för att generera en överföringsfunktion som används för att justera bitmappen. Nästa ekvation beskriver överföringsfunktionen. Indataintensiteterna definieras mellan 0 och 1.

algoritm för ljusstyrka

Effektalgoritmen implementerar en ekvation som skapar överföringsfunktionen. Vi använder den här funktionen för att justera bildpunkterna. X- och y-värdena för den svarta punkten och den vita punkten är koordinaterna i två dimensioner som är anslutna för att bilda transformen. Varje del av den slutliga utdataekvationen:

  1. Konverterar bilddata från linjärt utrymme till icke-linjärt utrymme med hjälp av den här ekvationen:hjälpfunktion 1

  2. Justerar bilden enligt följande värden:

    • indata är bildpunktsintensitetsvärdena för indata från 0 till 1.

    • *Vit pt. (x, y)*platsen för transformeringskurvan för ljusare pixelintensiteter.

    • Svart pt. (x, y) är platsen för transformeringskurvan för dimmerpunktsintensiteter.

  3. Konverterar bilddata tillbaka till linjärt utrymme med hjälp av den här ekvationen: hjälpfunktion 2

Den slutliga utdataekvationen och komponentdelarna visas här.

de fullständiga beräkningarna för justering av ljusstyrka

Utdatabitmapp

Bitmappsstorleken för utdata är samma som bitmappsstorleken för indata.

Krav

Krav Värde
Lägsta klient som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Lägsta server som stöds Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar]
Rubrik d2d1effects.h
Bibliotek d2d1.lib, dxguid.lib

ID2D1Effect