Luminance à effet alpha
Utilisez l’effet luminance sur alpha pour définir le canal alpha sur la luminance 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-transparence basée sur la luminosité de l’image d’entrée. Vous pouvez également l’utiliser pour créer un masque d’image.
Notes
Cet effet n’a aucune propriété.
Le CLSID de cet effet est CLSID_D2D1LuminanceToAlpha.
Exemple d’image
Cet exemple montre la sortie de l’effet luminance vers l’effet alpha composite sur une surface blanche pour afficher l’opacité.
Avant |
---|
After |
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 luminance de l’image d’entrée à l’aide de cette matrice de couleurs.
Cet effet consomme et génère des images alpha prémultipliées. L’effet ne fonctionnera pas sur les images alpha droites, sauf si elles sont entièrement opaques.
Notes
Étant donné que les images sont stockées dans un format compensé par gamma, avant de calculer la luminance d’une image, vous devez d’abord effectuer une correction gamma inverse pour obtenir les valeurs de couleur vraies de 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.
Spécifications
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 |
Bitmap de sortie
La sortie est de la même taille que l’image d’entrée.
Rubriques connexes