Partager via


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 :

  1. Créez un objet BrightnessContrast et appelez sa méthode SetParameters .
  2. Passez TRUE à la méthode Effect::UseAuxData de l’objet BrightnessContrast .
  3. Passez l’adresse de l’objet BrightnessContrast à la méthode Bitmap::ApplyEffect .
  4. 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

Voir aussi

ColorLUTParams

Effet

Effect::GetAuxDataSize

Effect::UseAuxData