Effetto luminosità
Usare l'effetto luminosità per controllare la luminosità dell'immagine.
ClSID per questo effetto è CLSID_D2D1Brightness.
Immagine di esempio
Prima |
---|
After |
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.
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:
Converte i dati dell'immagine dallo spazio lineare allo spazio non lineare usando questa equazione:
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.
Converte nuovamente i dati dell'immagine nello spazio lineare usando questa equazione:
L'equazione di output finale e le parti del componente sono visualizzate qui.
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 |