Partager via


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

Avant
l’image avant l’effet.
Après
l’image après la transformation.
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 :

  1. Convertit les données d’image de l’espace linéaire en espace non linéaire à l’aide de cette équation :fonction d’assistance 1

  2. 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.

  3. Convertit les données d’image en espace linéaire à l’aide de cette équation : fonction d’assistance 2

L’équation de sortie finale et les composants sont présentés ici.

les calculs complets pour l’ajustement de luminosité

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

ID2D1Effect