Effet de luminosité
Utilisez l’effet de luminosité pour contrôler la luminosité de l’image.
Le CLSID de cet effet est CLSID_D2D1Brightness.
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 de l’effet
Nom d’affichage de la propriété | Type et valeur par défaut | Description |
---|---|---|
Point blanc 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 les plus brillantes de l’image. Cette propriété est destinée à 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 les plus sombres de l’image. Cette propriété est destinée à 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.
L’algorithme d’effet implémente une équation qui crée la fonction de transfert. Nous utilisons cette fonction pour ajuster les pixels de l’image. Les valeurs x et y du point noir et du point blanc sont les coordonnées dans deux dimensions qui sont 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 :
input est les valeurs d’intensité du pixel d’image d’entrée comprises entre 0 et 1.
*Pt blanc (x, y)*emplacement de la courbe de transformation pour des intensités de pixels plus vives.
Pt noir (x, y) est l’emplacement de la courbe de transformation pour les intensités de pixels plus faibles.
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 de l’image bitmap de sortie est identique à la taille bitmap d’entrée.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store] |
Serveur minimal 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 |