Condividi tramite


Metodo Effect::GetAuxData (gdipluseffects.h)

Effect ::GetAuxData ottiene un puntatore a un set di tabelle di ricerca create da una chiamata precedente al metodo Bitmap::ApplyEffect .

Sintassi

VOID * GetAuxData();

Valore restituito

Questo metodo restituisce un puntatore a un set di tabelle di ricerca create da una chiamata precedente a Bitmap::ApplyEffect. Se non sono disponibili tabelle di ricerca, il valore restituito è NULL.

Commenti

È possibile applicare un effetto a una bitmap creando un'istanza di uno dei discendenti della classe Effect e passando l'indirizzo di tale discendente al metodo Bitmap::ApplyEffect . Per alcuni discendenti di Effect, ApplyEffect crea tabelle di ricerca e restituisce l'indirizzo di tali tabelle all'oggetto discendente. Ad esempio, è possibile recuperare le tabelle di ricerca per un oggetto BrightnessContrast come indicato di seguito:

  1. Creare un oggetto BrightnessContrast e chiamare il metodo SetParameters .
  2. Passare TRUE al metodo Effect::UseAuxData dell'oggetto BrightnessContrast .
  3. Passare l'indirizzo dell'oggetto BrightnessContrast al metodo Bitmap::ApplyEffect .
  4. Chiamare il metodo Effect::GetAuxData dell'oggetto BrightnessContrast per ottenere un puntatore alle tabelle di ricerca create da ApplyEffect. Il buffer per le tabelle di ricerca viene allocato da ApplyEffect; non è responsabile della liberazione del buffer.

ApplyEffect può restituire l'indirizzo delle tabelle di ricerca per i discendenti seguenti della classe Effect .

Per le classi nell'elenco precedente, ApplyEffect crea quattro tabelle di ricerca: ognuna per i canali blu, verde, rosso e alfa. Ogni tabella di ricerca è una matrice di 256 byte, pertanto le dimensioni dell'intero set di tabelle sono 1024 byte. Le tabelle vengono archiviate nell'ordine blu, verde, rosso, alfa.

Esempio

Il codice seguente passa l'indirizzo di un oggetto BrightnessContrast al metodo Bitmap::ApplyEffect . Il codice stampa quindi la tabella di ricerca del canale blu creata da 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]);
}

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdipluseffects.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

ColorLUTParams

Effetto

Effetto::GetAuxDataSize

Effect::UseAuxData