Effet de transfert gamma
Utilisez l’effet de transfert gamma pour mapper les intensités de couleur d’une image à l’aide d’une fonction gamma créée à l’aide d’une amplitude, d’un exposant et d’un décalage que vous fournissez pour chaque canal.
Le CLSID pour cet effet est CLSID_D2D1GammaTransfer. Pour utiliser cet effet, ajoutez dxguid.lib aux dépendances de l’éditeur de liens.
- Exemple d’image
- propriétés Effect
- bitmap de sortie
- Configuration requise
- rubriques connexes
Exemple d’image
Avant |
---|
![]() |
Après |
![]() |
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);
gammaTransferEffect->SetInput(0, bitmap);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();
Cet effet applique une fonction de transfert gamma basée sur l’équation ici.
L’intensité du pixel d’entrée est représentée en C et l’intensité du pixel de sortie en C'. C'= Amplitude * Exposant C + Décalage
Cet effet fonctionne sur des images alpha droites et prémultipliées. L’effet génère des bitmaps alpha prémultipliées.
Propriétés d’effet
Note
Pour tous les canaux des propriétés de transfert gamma :
- La valeur d’amplitude n’est pas limitée et est sans unité.
- La valeur d’exposant n’est pas limitée et est sans unité.
- La valeur de décalage n’est pas limitée et est sans unité.
Nom complet et énumération d’index | Description |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Amplitude de la fonction de transfert gamma pour le canal Rouge. Le type est FLOAT. La valeur par défaut est 1.0f. |
RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Exposant de la fonction de transfert gamma pour le canal Rouge. Le type est FLOAT. La valeur par défaut est 1.0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Décalage de la fonction de transfert gamma pour le canal Rouge. Le type est FLOAT. La valeur par défaut est 0.0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Si vous définissez cette valeur sur TRUE, elle n’applique pas la fonction de transfert au canal Rouge. Une fonction de transfert d’identité est utilisée. Si vous définissez cette valeur sur FALSE, elle applique la fonction de transfert gamma au canal Rouge. Le type est BOOL. La valeur par défaut est FALSE. |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
Amplitude de la fonction de transfert gamma pour le canal vert. Le type est FLOAT. La valeur par défaut est 1.0f. |
GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
Exposant de la fonction de transfert gamma pour le canal vert. Le type est FLOAT. La valeur par défaut est 1.0f. |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
Décalage de la fonction de transfert gamma pour le canal vert. Le type est FLOAT. La valeur par défaut est 0.0f. |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Si vous définissez cette valeur sur TRUE, elle n’applique pas la fonction de transfert au canal Vert. Une fonction de transfert d’identité est utilisée. Si vous définissez cette valeur sur FALSE, elle applique la fonction de transfert gamma au canal Vert. Le type est BOOL. La valeur par défaut est FALSE. |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Amplitude de la fonction de transfert gamma pour le canal Bleu. Le type est FLOAT. La valeur par défaut est 1.0f. |
BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Exposant de la fonction de transfert gamma pour le canal Bleu. Le type est FLOAT. La valeur par défaut est 1.0f. |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Décalage de la fonction de transfert gamma pour le canal Bleu. Le type est FLOAT. La valeur par défaut est 0.0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Si vous définissez cette valeur sur TRUE, elle n’applique pas la fonction de transfert au canal Bleu. Une fonction de transfert d’identité est utilisée. Si vous définissez cette valeur sur FALSE, elle applique la fonction de transfert gamma au canal Bleu. Le type est BOOL. La valeur par défaut est FALSE. |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Amplitude de la fonction de transfert gamma pour le canal alpha. Le type est FLOAT. La valeur par défaut est 1.0f. |
AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Exposant de la fonction de transfert gamma pour le canal alpha. Le type est FLOAT. La valeur par défaut est 1.0f. |
AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Décalage de la fonction de transfert gamma pour le canal alpha. Le type est FLOAT. La valeur par défaut est 0.0f. |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Si vous définissez cette valeur sur TRUE, elle n’applique pas la fonction de transfert au canal alpha. Une fonction de transfert d’identité est utilisée. Si vous définissez cette valeur sur FALSE, elle applique la fonction de transfert gamma au canal alpha. Le type est BOOL. La valeur par défaut est FALSE. |
ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
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. Le type est BOOL. La valeur par défaut est FALSE. |
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 |