Effet de transfert de table
Utilisez l’effet de transfert de table pour mapper les intensités de couleur d’une image à l’aide d’une fonction de transfert créée à partir de l’interpolation d’une liste de valeurs que vous fournissez.
Le CLSID pour cet effet est CLSID_D2D1TableTransfer.
- Exemple d’image
- propriétés Effect
- Configuration requise
- rubriques connexes
Exemple d’image
L’image montre ici l’entrée et la sortie de l’effet de transfert de table.
Avant |
---|
![]() |
Après |
![]() |
ComPtr<ID2D1Effect> tableTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1TableTransfer, &tableTransferEffect);
tableTransferEffect->SetInput(0, bitmap);
float table[2] = {0.75f, 1.0f};
tableTransferEffect->SetValue(D2D1_TABLETRANSFER_PROP_BLUE_TABLE, table);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(tableTransferEffect.Get());
m_d2dContext->EndDraw();
La fonction de transfert est basée sur une liste d’entrées V=(V0,V1,V2,V3, V ? ,VN) où N est le nombre d’éléments - 1.
L’intensité du pixel d’entrée est représentée en tant que C. L’intensité du pixel de sortie, C peut être calculé avec l’équation.
Pour une valeur C, choisissez une valeur k, de sorte que : k/N = C < (k+1)/N
La sortie C est calculée à l’aide de l’équation suivante : C'= V ? + (C - k/N) * N * (V ??? 1? - V ?)
Cet effet fonctionne sur des images alpha droites et prémultipliées. L’effet génère des bitmaps alpha prémultipliées.
Voici à quoi ressemble le graphique de la fonction de transfert de table si la propriété de table est définie sur [0.0, 0.25, 1.0]
.
Propriétés d’effet
Note
Les valeurs de tous les canaux des propriétés de transfert de table sont sans unité et ont un minimum de 0,0 et un maximum de 1,0.
Nom complet et énumération d’index | Type et valeur par défaut | Description |
---|---|---|
RedTable D2D1_TABLETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f, 1.0f} |
Liste des valeurs utilisées pour définir la fonction de transfert pour le canal Rouge. |
RedDisable D2D1_TABLETRANSFER_PROP_RED_DISABLE |
BOOL FAUX |
Si vous définissez cette valeur sur TRUE, l’effet n’applique pas la fonction de transfert au canal Rouge. Si vous définissez cette valeur sur FALSE, elle applique la fonction RedTableTransfer au canal Rouge. |
GreenTable D2D1_TABLETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
Liste des valeurs utilisées pour définir la fonction de transfert pour le canal vert. |
GreenDisable D2D1_TABLETRANSFER_PROP_GREEN_DISABLE |
BOOL FAUX |
Si vous définissez cette valeur sur TRUE, l’effet n’applique pas la fonction de transfert au canal Vert. Si vous définissez cette valeur sur FALSE, elle applique la fonction GreenTableTransfer au canal Vert. |
BlueTable D2D1_TABLETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
Liste des valeurs utilisées pour définir la fonction de transfert pour le canal Bleu. |
BlueDisable D2D1_TABLETRANSFER_PROP_BLUE_DISABLE |
BOOL FAUX |
Si vous définissez cette valeur sur TRUE, l’effet n’applique pas la fonction de transfert au canal Bleu. Si vous définissez cette valeur sur FALSE, elle applique la fonction BlueTableTransfer au canal Blue. |
AlphaTable D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Liste des valeurs utilisées pour définir la fonction de transfert pour le canal Alpha. |
AlphaDisable D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE |
BOOL FAUX |
Si vous définissez cette valeur sur TRUE, l’effet n’applique pas la fonction de transfert au canal Alpha. Si vous définissez cette valeur sur FALSE, elle applique la fonction AlphaTableTransfer au canal Alpha. |
ClampOutput D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT |
BOOL FAUX |
Indique si l’effet restreint les valeurs de couleur entre 0 et 1 avant que l’effet passe les valeurs à l’effet suivant dans le graphique. L’effet bloque les valeurs avant de prémultiplier l’alpha. Si vous définissez cette valeur sur TRUE, l’effet bloque les valeurs. Si vous définissez cette valeur sur FALSE, l’effet ne serre pas les valeurs de couleur, mais d’autres effets et la surface de sortie peuvent limiter les valeurs si elles ne sont pas suffisamment précises. |
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 |