Condividi tramite


Effetto luminosità

Usare l'effetto luminosità per controllare la luminosità dell'immagine.

Il CLSID per questo effetto è CLSID_D2D1Brightness.

Immagine di esempio

Prima
l'immagine prima dell'effetto.
Dopo
'immagine dopo la trasformazione.
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();

Proprietà dell'effetto

Nome visualizzato proprietà Tipo e valore predefinito Descrizione
WhitePoint
D2D1_BRIGHTNESS_PROP_WHITE_POINT
D2D1_VECTOR_2F
{1.0f, 1.0f}
Parte superiore della curva di trasferimento della luminosità. Il punto bianco regola l'aspetto delle parti più luminose dell'immagine. Questa proprietà è sia per il valore x che per il valore y, in tale ordine. Ognuno dei valori di questa proprietà è compreso tra 0 e 1, inclusi.
BlackPoint
D2D1_BRIGHTNESS_PROP_BLACK_POINT
D2D1_VECTOR_2F
{0.0f, 0.0f}
Parte inferiore della curva di trasferimento della luminosità. Il punto nero regola l'aspetto delle parti più scure dell'immagine. Questa proprietà è sia per il valore x che per il valore y, in tale ordine. Ognuno dei valori di questa proprietà è compreso tra 0 e 1, inclusi.

Questo effetto usa i punti bianchi e neri specificati per generare una funzione di trasferimento usata per regolare la bitmap. L'equazione successiva descrive la funzione di trasferimento. Le intensità di input sono definite tra 0 e 1.

algoritmo di luminosità

L'algoritmo di effetto implementa un'equazione che crea la funzione di trasferimento. Questa funzione viene usata per regolare i pixel dell'immagine. I valori x e y del punto nero e il punto bianco sono le coordinate in due dimensioni connesse alla trasformazione. Ogni parte dell'equazione di output finale:

  1. Converte i dati dell'immagine dallo spazio lineare allo spazio non lineare usando questa equazione:funzione helper 1

  2. Regola l'immagine in base ai valori seguenti:

    • input è costituito dai valori di intensità pixel dell'immagine di input da 0 a 1.

    • *Punto bianco. (x, y)*posizione della curva di trasformazione per intensità di pixel più brillanti.

    • Pt nero. (x, y) è la posizione della curva di trasformazione per le intensità di pixel dimmer.

  3. Converte nuovamente i dati dell'immagine in uno spazio lineare usando questa equazione: funzione helper 2

L'equazione di output finale e le parti del componente sono illustrate qui.

i calcoli completi per la regolazione della luminosità

Bitmap di output

Le dimensioni della bitmap di output corrispondono alle dimensioni della bitmap di input.

Fabbisogno

Requisito Valore
Client minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Server minimo supportato Windows 8 e Aggiornamento della piattaforma per Windows 7 [app desktop | App di Windows Store]
Intestazione d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect