Effet de luminosité
Utilisez l’effet de luminosité pour contrôler la luminosité de l’image.
Le CLSID pour cet effet est CLSID_D2D1Brightness.
- Exemple d’image
- propriétés Effect
- bitmap de sortie
- Configuration requise
- rubriques connexes
Exemple d’image
Avant |
---|
![]() |
Après |
![]() |
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();
Propriétés d’effet
Nom complet de la propriété | Type et valeur par défaut | Description |
---|---|---|
WhitePoint D2D1_BRIGHTNESS_PROP_WHITE_POINT |
D2D1_VECTOR_2F {1.0f, 1.0f} |
Partie supérieure de la courbe de transfert de luminosité. Le point blanc ajuste l’apparence des parties plus brillantes de l’image. Cette propriété concerne à la fois la valeur x et la valeur y, dans cet ordre. Chacune des valeurs de cette propriété est comprise entre 0 et 1, inclus. |
BlackPoint D2D1_BRIGHTNESS_PROP_BLACK_POINT |
D2D1_VECTOR_2F {0.0f, 0.0f} |
Partie inférieure de la courbe de transfert de luminosité. Le point noir ajuste l’apparence des parties plus sombres de l’image. Cette propriété concerne à la fois la valeur x et la valeur y, dans cet ordre. Chacune des valeurs de cette propriété est comprise entre 0 et 1, inclus. |
Cet effet utilise les points blancs et noirs spécifiés pour générer une fonction de transfert utilisée pour ajuster la bitmap. L’équation suivante décrit la fonction de transfert. Les intensités d’entrée sont définies entre 0 et 1.
algorithme de luminosité
L’algorithme d’effet implémente une équation qui crée la fonction de transfert. Nous utilisons cette fonction pour ajuster les pixels d’image. Les valeurs x et y du point noir et du point blanc sont les coordonnées de deux dimensions connectées pour former la transformation. Chaque partie de l’équation de sortie finale :
Convertit les données d’image de l’espace linéaire en espace non linéaire à l’aide de cette équation :
Ajuste l’image en fonction de ces valeurs :
d’entrée correspond aux valeurs d’intensité des pixels d’entrée comprises entre 0 et 1.
*Pt blanc. (x, y)*l’emplacement de la courbe de transformation pour des intensités de pixels plus brillantes.
Pt noir. (x, y) est l’emplacement de la courbe de transformation pour les intensités de pixels grisants.
Convertit les données d’image en espace linéaire à l’aide de cette équation :
L’équation de sortie finale et les composants sont présentés ici.
Bitmap de sortie
La taille bitmap de sortie est identique à la taille bitmap d’entrée.
Exigences
Exigence | Valeur |
---|---|
Client minimum pris en charge | Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store] |
Serveur minimum pris en charge | Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store] |
En-tête | d2d1effects.h |
Bibliothèque | d2d1.lib, dxguid.lib |