Effect::GetAuxData, méthode (gdipluseffects.h)
Effect::GetAuxData obtient un pointeur vers un ensemble de tables de choix créées par un appel précédent à la méthode Bitmap::ApplyEffect.
Syntaxe
VOID * GetAuxData();
Valeur de retour
Cette méthode retourne un pointeur vers un ensemble de tables de recherche créées par un appel précédent à Bitmap::ApplyEffect. Si aucune table de choix n’est disponible, la valeur de retour est NULL.
Notes
Vous pouvez appliquer un effet à une bitmap en créant un instance de l’un des descendants de la classe Effect et en transmettant l’adresse de ce descendant à la méthode Bitmap::ApplyEffect. Pour certains descendants d’Effect, ApplyEffect crée des tables de recherche et retourne l’adresse de ces tables à l’objet descendant. Par exemple, vous pouvez récupérer les tables de recherche pour un objet BrightnessContrast comme suit :
- Créez un objet BrightnessContrast et appelez sa méthode SetParameters .
- Passez TRUE à la méthode Effect::UseAuxData de l’objet BrightnessContrast .
- Passez l’adresse de l’objet BrightnessContrast à la méthode Bitmap::ApplyEffect .
- Appelez la méthode Effect::GetAuxData de l’objet BrightnessContrast pour obtenir un pointeur vers les tables de choix créées par ApplyEffect. La mémoire tampon pour les tables de recherche est allouée par ApplyEffect ; vous n’êtes pas responsable de la libération de la mémoire tampon.
ApplyEffect peut retourner l’adresse des tables de recherche pour les descendants suivants de la classe Effect .
Pour les classes de la liste précédente, ApplyEffect crée quatre tables de choix : une pour les canaux bleu, vert, rouge et alpha. Chaque table de choix étant un tableau de 256 octets, la taille de l’ensemble des tables est de 1 024 octets. Les tables sont stockées dans l’ordre bleu, vert, rouge, alpha.Exemples
Le code suivant transmet l’adresse d’un objet BrightnessContrast à la méthode Bitmap::ApplyEffect . Ensuite, le code imprime la table de recherche de canal bleu créée par ApplyEffect.
Bitmap bm(L"Picture.bmp");
BrightnessContrastParams briConParams;
briConParams.brightnessLevel = 0;
briConParams.contrastLevel = 25;
BrightnessContrast briCon;
briCon.SetParameters(&briConParams);
briCon.UseAuxData(TRUE);
bm.ApplyEffect(&briCon, NULL);
VOID* data = briCon.GetAuxData();
// You know the size is 1024, but check to make sure.
INT size = briCon.GetAuxDataSize();
if(1024 != size || NULL == data)
return;
// Cast the data pointer as a ColorLUTParams pointer so that it
// will be easy to examine the individual tables.
ColorLUTParams* tables = (ColorLUTParams*)data;
// Print the lookup table for the blue channel.
for(UINT j = 0; j < 256; ++j)
{
printf("%u, %u\n", j, tables->lutB[j]);
}
Configuration requise
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | gdipluseffects.h (include Gdiplus.h) |
Bibliothèque | Gdiplus.lib |
DLL | Gdiplus.dll |