Luminance à effet alpha
Utilisez la luminance pour l’effet alpha pour définir le canal alpha sur la luminosité de l’image et définir les canaux de couleur sur 0. Vous pouvez utiliser la sortie de cet effet pour créer une superposition semi-transparente basée sur la luminosité de l’image d’entrée. Vous pouvez également l’utiliser pour créer un masque d’image.
Note
Cet effet n’a aucune propriété.
Le CLSID pour cet effet est CLSID_D2D1LuminanceToAlpha.
Exemple d’image
Cet exemple montre la sortie de la luminance en effet alpha composite sur une surface blanche pour afficher l’opacité.
Avant |
---|
![]() |
Après |
![]() |
ComPtr<ID2D1Effect> luminanceToAlphaEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LuminanceToAlpha, &luminanceToAlphaEffect);
luminanceToAlphaEffect->SetInput(0, bitmap);
// LuminanceToAlpha result is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);
floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, luminanceToAlphaEffect.Get());
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
Cet effet définit le canal alpha de la sortie sur la luminosité de l’image d’entrée à l’aide de cette matrice de couleur.
Cet effet consomme et génère des images alpha prémultipliées. L’effet ne fonctionnera pas sur des images alpha droites, sauf si elles sont entièrement opaques.
Note
Étant donné que les images sont stockées dans un format compensé par gamma, avant de calculer la luminosité d’une image, vous devez d’abord effectuer une correction gamma inverse pour obtenir les valeurs de couleur vraies pour l’image. Étant donné que les images sont normalement stockées à 2,2 gamma, vous pouvez utiliser l’effet de transfert Gamma avec un exposant de (1/2.2), puis utiliser la sortie de cet effet.
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 |
Bitmap de sortie
La sortie est de la même taille que l’image d’entrée.
Rubriques connexes