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

O Effect::GetAuxData obtém um ponteiro para um conjunto de tabelas de pesquisa criadas por uma chamada anterior para o método Bitmap::ApplyEffect .

Sintaxe

VOID * GetAuxData();

Valor retornado

Esse método retorna um ponteiro para um conjunto de tabelas de pesquisa criadas por uma chamada anterior para Bitmap::ApplyEffect. Se nenhuma tabela de pesquisa estiver disponível, o valor retornado será NULL.

Comentários

Você pode aplicar um efeito a um bitmap criando uma instância de um dos descendentes da classe Effect e passando o endereço desse descendente para o método Bitmap::ApplyEffect . Para determinados descendentes de Effect, ApplyEffect cria tabelas de pesquisa e retorna o endereço dessas tabelas para o objeto descendente. Por exemplo, você pode recuperar as tabelas de pesquisa de um objeto BrightnessContrast da seguinte maneira:

  1. Crie um objeto BrightnessContrast e chame seu método SetParameters .
  2. Passe TRUE para o método Effect::UseAuxData do objeto BrightnessContrast .
  3. Passe o endereço do objeto BrightnessContrast para o método Bitmap::ApplyEffect .
  4. Chame o método Effect::GetAuxData do objeto BrightnessContrast para obter um ponteiro para as tabelas de pesquisa criadas por ApplyEffect. O buffer para as tabelas de pesquisa é alocado por ApplyEffect; você não é responsável por liberar o buffer.

ApplyEffect pode retornar o endereço das tabelas de pesquisa para os descendentes a seguir da classe Effect .

Para as classes na lista anterior, ApplyEffect cria quatro tabelas de pesquisa: uma para os canais azul, verde, vermelho e alfa. Cada tabela de pesquisa é uma matriz de 256 bytes, portanto, o tamanho de todo o conjunto de tabelas é de 1024 bytes. As tabelas são armazenadas na ordem azul, verde, vermelho, alfa.

Exemplos

O código a seguir passa o endereço de um objeto BrightnessContrast para o método Bitmap::ApplyEffect . Em seguida, o código imprime a tabela de pesquisa de canal azul criada 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 com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho gdipluseffects.h (inclua Gdiplus.h)
Biblioteca Gdiplus.lib
DLL Gdiplus.dll

Confira também

ColorLUTParams

Efeito

Effect::GetAuxDataSize

Effect::UseAuxData