Compartir a través de


Método Effect::GetAuxData (gdipluseffects.h)

Effect::GetAuxData obtiene un puntero a un conjunto de tablas de búsqueda creadas por una llamada anterior al método Bitmap::ApplyEffect.

Sintaxis

VOID * GetAuxData();

Valor devuelto

Este método devuelve un puntero a un conjunto de tablas de búsqueda creadas por una llamada anterior a Bitmap::ApplyEffect. Si no hay tablas de búsqueda disponibles, el valor devuelto es NULL.

Comentarios

Puede aplicar un efecto a un mapa de bits creando una instancia de uno de los descendientes de la clase Effect y pasando la dirección de ese descendiente al método Bitmap::ApplyEffect . Para determinados descendientes de Effect, ApplyEffect crea tablas de búsqueda y devuelve la dirección de esas tablas al objeto descendiente. Por ejemplo, puede recuperar las tablas de búsqueda de un objeto BrightnessContrast de la siguiente manera:

  1. Cree un objeto BrightnessContrast y llame a su método SetParameters .
  2. Pase TRUE al método Effect::UseAuxData del objeto BrightnessContrast .
  3. Pase la dirección del objeto BrightnessContrast al método Bitmap::ApplyEffect .
  4. Llame al método Effect::GetAuxData del objeto BrightnessContrast para obtener un puntero a las tablas de búsqueda creadas por ApplyEffect. ApplyEffect asigna el búfer para las tablas de búsqueda; no es responsable de liberar el búfer.

ApplyEffect puede devolver la dirección de las tablas de búsqueda para los siguientes descendientes de la clase Effect .

Para las clases de la lista anterior, ApplyEffect crea cuatro tablas de búsqueda: una para los canales azul, verde, rojo y alfa. Cada tabla de búsqueda es una matriz de 256 bytes, por lo que el tamaño de todo el conjunto de tablas es de 1024 bytes. Las tablas se almacenan en el orden azul, verde, rojo, alfa.

Ejemplos

El código siguiente pasa la dirección de un objeto BrightnessContrast al método Bitmap::ApplyEffect . A continuación, el código imprime la tabla de búsqueda de canal azul creada por 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]);
}

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado gdipluseffects.h (include Gdiplus.h)
Library Gdiplus.lib
Archivo DLL Gdiplus.dll

Consulte también

ColorLUTParams

Efecto

Effect::GetAuxDataSize

Effect::UseAuxData