Condividi tramite


Effetto luminosità

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

ClSID per questo effetto è CLSID_D2D1Brightness.

Immagine di esempio

Prima
immagine prima dell'effetto.
After
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 Description
Punto bianco
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, incluso.
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, incluso.

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 è il valore di intensità del pixel dell'immagine di input compreso tra 0 e 1.

    • *Pt bianco. (x, y)*la posizione della curva di trasformazione per le intensità di pixel più luminose.

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

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

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

calcoli completi per la regolazione della luminosità

Bitmap di output

Le dimensioni della bitmap di output sono uguali alle dimensioni della bitmap di input.

Requisiti

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
Libreria d2d1.lib, dxguid.lib

ID2D1Effect